CloudComPy icon indicating copy to clipboard operation
CloudComPy copied to clipboard

CloudComPy Install

Open ghost opened this issue 3 years ago • 45 comments

Hello! I'm having a lot of issues getting CloudComPy to work, iwanted to use it for my master thesis, i need to visualize and maybe do "queries" on a classified pointcloud that i classified in cloudcompare using .las 1.4 and then saving everything in ASCII format.

Can anyone give me a easier to understand method to get CLoudComPy to work? i have install evertything needed.

ghost avatar Jul 14 '21 10:07 ghost

Hello, are you trying to use the Windows 10 / Anaconda binary, or are you looking to rebuild CloudComPy, and on what platform? Can you describe specifically the problems you are having? You can find instructions, reference documentation, and the most recent binary here. The project is new, the interface does not yet cover all the features of CloudCompare, so feel free to tell us what specific features you are missing.

prascle avatar Jul 16 '21 10:07 prascle

Hi,

I am also having issues with the installation process. I am running a macOS and have trouble following the installation instructions. Cloning the git repository there are no files within CloudCompare directory. I gathered you then download the binary .7z file into a directory - which I have done in the CloudCompare directory. I followed the instructions in creating a new conda environment CloudCompy37 and installing packages. Here is where I get lost. I have then tried to follow the build instructions for Ubuntu since I do not have Windows. I've installed qt with homebrew as I can't use apt-get. For using cmake how do I change the settings? Are these in the .json files and if so which one?

Appreciate any help! Thanks :)

kepra3 avatar Aug 06 '21 04:08 kepra3

Hello, are you trying to use the Windows 10 / Anaconda binary, or are you looking to rebuild CloudComPy, and on what platform? Can you describe specifically the problems you are having? You can find instructions, reference documentation, and the most recent binary here. The project is new, the interface does not yet cover all the features of CloudCompare, so feel free to tell us what specific features you are missing.

I wanted to use the CloudComPy only to view parts of the point cloud by especific values of a classification that i've added trough cloudcompare, by adding a new scalar field. - I dont know if there is another way to do this

I'm trying to install these tools in a machine with windows 10, i already have anaconda, visual studio and cloud compare and i was able to intall all the packages in the enviroment (cloudcompy37) that i've created. I can't get passed that, i'm not sure if i'm missing something. I'm not able to run the tests that are suggested.

ghost avatar Aug 06 '21 08:08 ghost

Hi,

I am also having issues with the installation process. I am running a macOS and have trouble following the installation instructions. Cloning the git repository there are no files within CloudCompare directory. I gathered you then download the binary .7z file into a directory - which I have done in the CloudCompare directory. I followed the instructions in creating a new conda environment CloudCompy37 and installing packages. Here is where I get lost. I have then tried to follow the build instructions for Ubuntu since I do not have Windows. I've installed qt with homebrew as I can't use apt-get. For using cmake how do I change the settings? Are these in the .json files and if so which one?

Appreciate any help! Thanks :)

Hi, I realize that the instructions are a bit brief and probably not clear enough. The .7z binary I am proposing only works on Windows 10, in the precise Anaconda3 environment described in the Readme. Then there is no need for anything else to run CloudComPy and CloudCompare. In any other configuration, so especially on MacOS or Linux, this binary does not work, and is useless. You have to rebuild CloudComPy from source, by cloning the git repository. CloudCompare itself is seen as a git sub-module of CloudCompy. The clone is done with the --recurse-submodules option. CloudCompare itself has many sub-modules. I can't give more details about the construction on MacOS, I didn't do it, because I don't have a machine under this OS. I think I will do it this fall! Under Linux, I did not use the Anaconda environment, but only the native Ubuntu packages (20.04 in my case). CloudCompare requires many packages if you want to use all the features and file formats. Without apt-get, it is difficult. I haven't provided the full list of packages needed to build and run, I'm in the process of determining the minimum list. To build with CMake, the easiest way is to use cmake-gui (or ccmake) to interactively determine what is missing. Then, you have to find the package that provides the missing library or includes, you can for example find them with https://packages.ubuntu.com/. There, without apt-get, it becomes more complicated.

I hope this will help you a little. Regards

prascle avatar Aug 06 '21 13:08 prascle

Hello, are you trying to use the Windows 10 / Anaconda binary, or are you looking to rebuild CloudComPy, and on what platform? Can you describe specifically the problems you are having? You can find instructions, reference documentation, and the most recent binary here. The project is new, the interface does not yet cover all the features of CloudCompare, so feel free to tell us what specific features you are missing.

I wanted to use the CloudComPy only to view parts of the point cloud by especific values of a classification that i've added trough cloudcompare, by adding a new scalar field. - I dont know if there is another way to do this

I'm trying to install these tools in a machine with windows 10, i already have anaconda, visual studio and cloud compare and i was able to intall all the packages in the enviroment (cloudcompy37) that i've created. I can't get passed that, i'm not sure if i'm missing something. I'm not able to run the tests that are suggested.

Here are already maybe some precisions in my answer to kepra3, I will see if I can give you more information.

prascle avatar Aug 06 '21 13:08 prascle

Hi, I am also having issues with the installation process. I am running a macOS and have trouble following the installation instructions. Cloning the git repository there are no files within CloudCompare directory. I gathered you then download the binary .7z file into a directory - which I have done in the CloudCompare directory. I followed the instructions in creating a new conda environment CloudCompy37 and installing packages. Here is where I get lost. I have then tried to follow the build instructions for Ubuntu since I do not have Windows. I've installed qt with homebrew as I can't use apt-get. For using cmake how do I change the settings? Are these in the .json files and if so which one? Appreciate any help! Thanks :)

Hi, I realize that the instructions are a bit brief and probably not clear enough. The .7z binary I am proposing only works on Windows 10, in the precise Anaconda3 environment described in the Readme. Then there is no need for anything else to run CloudComPy and CloudCompare. In any other configuration, so especially on MacOS or Linux, this binary does not work, and is useless. You have to rebuild CloudComPy from source, by cloning the git repository. CloudCompare itself is seen as a git sub-module of CloudCompy. The clone is done with the --recurse-submodules option. CloudCompare itself has many sub-modules. I can't give more details about the construction on MacOS, I didn't do it, because I don't have a machine under this OS. I think I will do it this fall! Under Linux, I did not use the Anaconda environment, but only the native Ubuntu packages (20.04 in my case). CloudCompare requires many packages if you want to use all the features and file formats. Without apt-get, it is difficult. I haven't provided the full list of packages needed to build and run, I'm in the process of determining the minimum list. To build with CMake, the easiest way is to use cmake-gui (or ccmake) to interactively determine what is missing. Then, you have to find the package that provides the missing library or includes, you can for example find them with https://packages.ubuntu.com/. There, without apt-get, it becomes more complicated.

I hope this will help you a little. Regards

Hi prascle,

I've been attempting to get these settings right but I fall into an issue with boost_python. Perhaps, there are some other installation issues that are getting in the way - building with cmake settings is very new to me.

I've had to provide all the *Config.cmake paths for all the Qt5 DIR paths. But, I do not have this for boost_python39... I have installed boost_python3 with brew but it doesn't provide the configuration files. Cmake finds Boost 1.70 but installed with conda instead of brew. Additionally, I activated Cmake using the python37 conda environment but it seems to default to finding my python39 in my (base) environment. So, I think these need to be better configured as well.

This is the error message I get:

# Python3 and BoostPython processing
#   python prefered version: 3.8
#   python executable: /usr/local/Frameworks/Python.framework/Versions/3.9/bin/python3.9
#   python version: 3.9.6
#   check match for 3.8.x
# CMake Error at boostPython/CMakeLists.txt:33 (message):
#   no Python found matching 3.8.x
# Python3_VERSION_MAJOR: 3
# Python3_VERSION_MINOR: 9
# Found Boost 1.70.0 at /Users/kprata/anaconda3/lib/cmake/Boost-1.70.0
#   Requested configuration: QUIET REQUIRED COMPONENTS python39;numpy39
# Found boost_headers 1.70.0 at /Users/kprata/anaconda3/lib/cmake/boost_headers-1.70.0
# CMake Error at /Users/kprata/anaconda3/lib/cmake/Boost-1.70.0/BoostConfig.cmake:95 (find_package):
#   Could not find a package configuration file provided by "boost_python39"
#   (requested version 1.70.0) with any of the following names:

 #    boost_python39Config.cmake
  #   boost_python39-config.cmake
  
#Add the installation prefix of "boost_python39" to CMAKE_PREFIX_PATH or set
#   "boost_python39_DIR" to a directory containing one of the above files.  If
#   "boost_python39" provides a separate development package or SDK, be sure it
#   has been installed.

Here is my configuration settings:

BUILD_PY_TESTING                 ON                                           
 BUILD_QPCL_PLUGIN_DOCUMENTATIO   OFF                                          
 BUILD_TESTING                    ON                                           
 CCACHE_PROGRAM                   CCACHE_PROGRAM-NOTFOUND                      
 CCCORELIB_SCALAR_DOUBLE          OFF                                          
 CCCORELIB_SHARED                 ON                                           
 CCCORELIB_USE_CGAL               OFF                                          
 CCCORELIB_USE_QT_CONCURRENT      ON                                           
 CCCORELIB_USE_TBB                OFF                                          
 CMAKE_BUILD_TYPE                 RelWithDebInfo                               
 CMAKE_EXECUTABLE_FORMAT          MACHO                                        
 CMAKE_INSTALL_PREFIX             /usr/local/CloudComPy                        
 CMAKE_OSX_ARCHITECTURES                                                       
 CMAKE_OSX_DEPLOYMENT_TARGET      10.15                                        
 CMAKE_OSX_SYSROOT                /Applications/Xcode.app/Contents/Developer/Pl
 COMPILE_QMPLANE_PLUGIN_TESTS     OFF                                          
 DXF_LIB_DIR                      extern/dxflib                                
 E57_BUILD_SHARED                 OFF                                          
 E57_CLANG_FORMAT_EXE             /Users/kprata/anaconda3/bin/clang-format     
 FLANN_INCLUDE_DIR                /Users/kprata/anaconda3/envs/CloudComPy37/inc
 FLANN_LIBRARY                    /Users/kprata/anaconda3/envs/CloudComPy37/lib
 FLANN_LIBRARY_DEBUG              FLANN_LIBRARY_DEBUG-NOTFOUND                 
 INSTALL_PREREQUISITE_LIBRARIES   ON                                           
 OPTION_BUILD_CCVIEWER            ON                                           
 OPTION_GL_QUAD_BUFFER_SUPPORT    OFF                                          
 OPTION_SUPPORT_GAMEPADS          OFF                                          
 OPTION_USE_DXF_LIB               ON                                           
 OPTION_USE_GDAL                  ON                                           
 OPTION_USE_OCULUS_SDK            OFF                                          
 OPTION_USE_SHAPE_LIB             ON                                           
 PCL_DIR                          /Users/kprata/anaconda3/envs/CloudComPy37/sha
 PLUGIN_EXAMPLE_GL                ON                                           
 PLUGIN_EXAMPLE_IO                ON                                           
 PLUGIN_EXAMPLE_STANDARD          ON                                           
 PLUGIN_GL_QEDL                   ON                                           
 PLUGIN_GL_QSSAO                  ON                                           
 PLUGIN_IO_QADDITIONAL            ON                                           
 PLUGIN_IO_QCORE                  ON                                           
 PLUGIN_IO_QCSV_MATRIX            ON                                           
 PLUGIN_IO_QE57                   ON                                           
 PLUGIN_IO_QFBX                   OFF                                          
 PLUGIN_IO_QPDAL                  OFF                                          
 PLUGIN_IO_QPHOTOSCAN             ON                                           
 PLUGIN_IO_QRDB                   OFF                                          
 PLUGIN_IO_QSTEP                  OFF                                          
 PLUGIN_STANDARD_MASONRY_QAUTO_   OFF                                          
 PLUGIN_STANDARD_MASONRY_QMANUA   OFF                                          
 PLUGIN_STANDARD_QANIMATION       OFF                                          
 PLUGIN_STANDARD_QBROOM           ON                                           
 PLUGIN_STANDARD_QCANUPO          OFF                                          
 PLUGIN_STANDARD_QCOLORIMETRIC_   OFF                                          
 PLUGIN_STANDARD_QCOMPASS         ON                                           
 PLUGIN_STANDARD_QCORK            OFF                                          
 PLUGIN_STANDARD_QCSF             OFF                                          
 PLUGIN_STANDARD_QFACETS          OFF                                          
 PLUGIN_STANDARD_QHOUGH_NORMALS   OFF                                          
 PLUGIN_STANDARD_QHPR             OFF                                          
 PLUGIN_STANDARD_QJSONRPC         OFF                                          
 PLUGIN_STANDARD_QM3C2            ON                                           
 PLUGIN_STANDARD_QMPLANE          ON                                           
 PLUGIN_STANDARD_QPCL             ON                                           
 PLUGIN_STANDARD_QPCV             OFF                                          
 PLUGIN_STANDARD_QPOISSON_RECON   ON                                           
 PLUGIN_STANDARD_QRANSAC_SD       ON                                           
 PLUGIN_STANDARD_QSRA             OFF                                          
 POISSON_RECON_WITH_OPEN_MP       OFF                                          
 PYTHONAPI_TRACES                 ON                                           
 PYTHON_PREFERED_VERSION          3.8                                          
 QHULL_LIBRARY                    QHULL_LIBRARY-NOTFOUND                       
 QHULL_LIBRARY_DEBUG              QHULL_LIBRARY_DEBUG-NOTFOUND                 
 QT5_ROOT_PATH                                                                 
 Qt5Concurrent_DIR                /Users/kprata/anaconda3/lib/cmake/Qt5Concurre
 Qt5Core_DIR                      /Users/kprata/anaconda3/lib/cmake/Qt5Core    
 Qt5Gui_DIR                       /Users/kprata/anaconda3/lib/cmake/Qt5Gui     
 Qt5LinguistTools_DIR             /Users/kprata/anaconda3/lib/cmake/Qt5Linguist
 Qt5OpenGLExtensions_DIR          /Users/kprata/anaconda3/lib/cmake/Qt5OpenGLEx
 Qt5OpenGL_DIR                    /Users/kprata/anaconda3/lib/cmake/Qt5OpenGL  
 Qt5PrintSupport_DIR              /Users/kprata/anaconda3/lib/cmake/Qt5PrintSup
 Qt5Svg_DIR                       /Users/kprata/anaconda3/lib/cmake/Qt5Svg     
 Qt5Test_DIR                      /Users/kprata/anaconda3/lib/cmake/Qt5Test    
 Qt5Widgets_DIR                   /Users/kprata/anaconda3/lib/cmake/Qt5Widgets 
 Qt5_DIR                          /Users/kprata/anaconda3/lib/cmake/Qt5        
 SHAPELIB_LIB_DIR                 extern/shapelib                              
 boost_headers_DIR                /Users/kprata/anaconda3/lib/cmake/boost_heade
 boost_python39_DIR               boost_python39_DIR-NOTFOUND                  
 mac_deploy_qt                    /Users/kprata/anaconda3/bin/macdeployqt 

Apologies for these issues. I am completing my PhD in coral population genomics and I am using CloudCompare to annotate 3D reconstructions of reefs. I would really love to use python to calculate some metrics!

Cheers, Kat

kepra3 avatar Aug 10 '21 05:08 kepra3

Hi Kepra3, Python 3.9 was not in the list of supported versions in CloudComPy, I just added it in the git repository. You should update your sources with a pull (git pull origin master), and change the CMake PYTHON_PREFERED_VERSION option to 3.9 instead of 3.8. I had problems with boost versions greater than or equal to 1.70. Can you try to set a lower version? ("boost<1.70" in the conda configuration) This is probably necessary, but I don't know if it will be enough. I have not tested this configuration. Don't hesitate to give me error messages after this modification! Regards, Paul

prascle avatar Aug 12 '21 09:08 prascle

Hi prascle,

I'm trying to install the Windows 10 binary by creating the conda environment as specified in the instructions, but I'm having an issue where the cloudComPy module is not importing in the test scripts.

I first downloaded and extracted the December 5 version of the .7z file, created a conda environment in Python 3.9 and successfully installed the other packages, then ran the environment variable script. Then when I run the first test script, I get an error on the first attempt to import the cloudComPy module: "DLL load failed while importing cloudComPy: The specified module could not be found".

I looked at the dependencies within the "cloudComPy.pyd" file and it showed that it wasn't able to find several dependencies (see below): image

I was however able to open Spyder within the environment and import other packages like numpy, and running CloudCompare from within the environment also worked.

Any ideas as to how to fix this? I am a total Python noob so I figured trying to build the package using CMake would probably be even more error prone for me. Thanks, Luke

lmweidner avatar Jan 03 '22 04:01 lmweidner

Hi Luke, I tried to reproduce your problem. in your screenshot of dependencies, Conda libraries are not found as well as VCRUNTIME140_1.dll When I run DependencyGUI in the terminal with Conda and CloudComPy environment, I see where the dlls come from. image I think in your case, it is VCRUNTIME140_1.dll that is missing. A quick search indicates that this file is installed when updating windows or installing the Microsoft Visual C++ Redistributable package: see Microsoft Visual C++ Redistributable Latest Supported Downloads and try to install vc_redist.x64.exe. Let me know if this solution works for you, I will add installation instructions according to your feedback. Thanks, Paul

prascle avatar Jan 03 '22 10:01 prascle

Hi Paul,

It didn't occur to me to run Dependencies from within the environment. When I do that, the VCRUNTIME140_1.dll is found, but the boost-python39.dll and boost_numpy39.dll were still missing.

After this, it was clear that there was a problem with my boost install. I compared my conda-list to yours and found that you had boost and boost-cpp but I had only boost-cpp. I recreated the whole environment, being sure to install boost first, then cc was able to import!

However, you may be interested to know that tests 7, 20, and 21 failed, for the following reasons:

test 7 : AttributeError: 'NoneType' object has no attribute 'computeLength'

test 20: AttributeError: 'NoneType' object has no attribute 'size'

test 21: AttributeError: 'NoneType' object has no attribute 'setClosed'

This should probably be sufficient for me to get started using it however. Thanks for the help and for your work on this project!

Edit: actually the 'NoneType' issue might be a bigger problem than I thought... not sure how to proceed haha. Edit2: It looks like the loadPointCloud function is finnicky with filenames. Perhaps NoneType is returned when the cloud fails to load? Regardless, I'm guessing it's a separate issue from the installation.

Luke

lmweidner avatar Jan 03 '22 18:01 lmweidner

That's right, if the cloud is not loaded, the returned object is of type None.

I am surprised about the discrepancies on the package list. More missing packages could explain the error tests.

I wonder if an incremental update of Conda packages leads to the same result as an installation from scratch.

When I recreate the Conda CloudComPy39 environment, I install all the packages at once, after completely cleaning up the existing environment (to be sure that all packages are up to date). I execute the following instruction block in the conda prompt (copy and paste the whole block, -y options force yes answers)

conda activate
conda create -y --name CloudComPy39 python=3.9
   # --- erase previous env if existing
conda activate CloudComPy39
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install -y boost cgal cmake ffmpeg gdal jupyterlab matplotlib mysql numpy opencv openmp pcl pdal psutil qt scipy sphinx_rtd_theme spyder tbb tbb-devel xerces-c

Paul

prascle avatar Jan 03 '22 20:01 prascle

Hello Paul, I am trying to install CloudComPy in Windows 11 using Anaconda. I read the above questions and answers, and I am trying to follow both instructions links (see below -despite having minor differences) https://github.com/CloudCompare/CloudComPy/blob/master/doc/UseWindowsCondaBinary.md and https://github.com/CloudCompare/CloudComPy/blob/master/doc/BuildWindowsConda.md

The first link refers to downloading CloudComPy, the second link entirely skips this step. I am confused about where is the CloudComPy binary actually built in both links. I am confused at the "It is necessary to configure Visual Studio 2019 with CMake. It is unclear what is the next step once the Visual Studio Gui is open as seen below. visual_sutio_opened Thanks

snowman907 avatar Nov 16 '22 08:11 snowman907

In none of the links BuildWindowsConda.md and BuildWindowsConda.md does it describe using cmake to compile/build the CloudComPy binary file. Am I missing anything?

snowman907 avatar Nov 16 '22 20:11 snowman907

From Cmake documentation, https://www.simulation.openfields.fr/documentation/CloudComPy/html/userIntro.html#windows Do I need `cd some_software-1.4.2

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/the/prefix

cmake --build .

cmake --build . --target install`

snowman907 avatar Nov 16 '22 20:11 snowman907

Hello @snowman907 I will try to answer all your questions. The Windows construction documentation only gives general ideas and is probably not up to date. My Windows procedure is a bit complicated and homemade, I know Linux better than Windows. I will try to update this documentation.

the first link (https://github.com/CloudCompare/CloudComPy/blob/master/doc/UseWindowsCondaBinary.md) indicates how to get and use the CloudComPy binaries I built (C++ libraries). There is no need for the sources nor for visual Studio in this case. You only need Anaconda or miniconda.

The second link (https://github.com/CloudCompare/CloudComPy/blob/master/doc/BuildWindowsConda.md) explains how to build CloudComPy from C++ sources. There, you need Visual Studio, git (to clone the sources) the conda environment, etc. This part is complicated and not quite up to date.

In my configuration of Visual Studio 2019 (Visual Studio Installer: menu Tools / Get Tools and Features... ), I need C++, CMake, Git. Python is probably not necessary here, I use the Python provided with conda.

image (Sorry, my original configuration is in French, some screens are not translated when I change language...)

You have to install the conda CloudComPy310 environment

I do all the building process with the Visual Studio GUI. In Visual Studio, the first step is to clone the git repository (https://github.com/CloudCompare/CloudComPy.git) Visual tries to generate the project right away and fails. You have to modify the CMakeSettings.json file with the right paths, and disable the plugins that need to build prerequisite libraries (I haven't documented this part). You can see the CloudCompare build documentation to help you. Disable as many plugins as possible to start, and introduce them afterwards, as you go along.

When you have modified the file CMakeSettings.json, the sequence is as follows

  • Delete Cache (menu Project / Cmake Cache...)
  • Configure CloudCompareProjects (menu Project)
  • Build all (Build menu)
  • Install CloudCompareProjects (Build menu) image

image

You can use command lines and scripts instead of the Visual Studio GUI, but I find it much more complicated on Windows than on Linux... I haven't taken that step on Windows yet.

I hope this answers some of your questions.

Regards, Paul

prascle avatar Nov 16 '22 23:11 prascle

Thanks, I think I am starting to understand. I am running the Visual Studios from cloudcompy_env During the cloning, does the Path need to link to the CloudCoPy310 environment? clone

snowman907 avatar Nov 17 '22 07:11 snowman907

It is not necessary to launch Visual Studio from the conda CloudComPy310 environment. This can make the configure step easier (several paths can be found automatically, without the need to specify them in CMakeSettings.json). I avoid doing it now, I have the impression that Visual Studio is less robust when its environment is modified. I manage to configure the project with Visual Studio in its native environment by specifying all the paths in CMakeSettings.json and I now have a reliable build process.

To clone the git repository, there is no need for the CloudComPy310 environment. The repository location is https://github.com/CloudCompare/CloudComPy.git (don't forget .git). The path of the clone is whatever you want. The default is fine.

prascle avatar Nov 17 '22 10:11 prascle

Paul, I am making progress, and once I am successful, I will be happy to type updated instructions in English and share them with you or post them here on Github.

A few further questions.

  1. QT is installed when setting the anaconda env environment, do I still need QT also to be installed in my C drive?
  2. In the JSON file in the example https://github.com/CloudCompare/CloudComPy/blob/master/doc/BuildWindowsConda.md , the path of { "name": "GDAL_INCLUDE_DIR", "value": "C:/Users/paulr/anaconda3/envs/CloudComPy37/Library/include", "type": "PATH" }, a. the value jas "anaconda3/envs/CloudComPy37" is that not necessary anymore, and instead, I should just refer to the Visual Studio clone C:\Users\Eyal\source\repos\CloudComPy? b. In the clone `C:\Users\Eyal\source\repos\CloudComPy, there is no "Library" clone

Last, the JSON file is very long (500 lines) can you highlight only the lines that need to be changed? Is it easier to edit the JSON file in the text editor or in the VS GUI?

snowman907 avatar Nov 17 '22 21:11 snowman907

Hello, It's good to know that you are making progress.

  • The version of Qt provided in the conda CloudComPy310 environment is now correct, it is not necessary to install another version of Qt.
  • Don't refer to the json file described in the build document , it's not up to date anymore, while the CMakeSettings.json file at the root is the one I use to build, it should be enough to update some path (and disable the plugins that don't compile).
  • I use the text editor rather than the GUI.
  • Look for lines containing C:/Users/paulr to correct them with your path. Some of these lines correspond to a library or include path for a plugin. You have to disable the corresponding plugin (replace "True" by "False" in the "PLUGIN_XXX" block), while waiting to build or install the prerequisite library. We can deal with this part later if you manage to build without the plugins!

Paul

prascle avatar Nov 17 '22 22:11 prascle

Great, more progress! In the JSON file you refer to C:\Users\Eyal\anaconda3\Library\lib\zlib.lib, should it not be C:\Users\Eyal\anaconda3\envs\CloudComPy310\Library\lib\zlib.lib In fact, you don't refer at all to the CloudComPy310 env in the JSON file. Some paths like "name": "LASLIB_INCLUDE_DIR", "value": "C:/Users/paulr/CloudComPy/lasTools/LAStools/LASlib/inc", "type": "PATH" ... LASTools is not a plugin, so I cannot turn it off (I cannot add False). Is this http://www.cloudcompare.org/doc/wiki/index.php/Compilation#.5BOptional.5D_Setup_for_LibLAS_support the most recent documentation to add LAS capability? Do I need to compile/build CloudComPy every time I want to add plugins or features (LAS)?

Again stuff like /cork/win/VS2013/x64/Release/wincork2013.lib" is not in the clone. Why are all these folders not in the clone? Am I supposed to add them to the clone before I build? Thaanks

snowman907 avatar Nov 18 '22 07:11 snowman907

Hello,

  • For zlib.lib, both paths are valid, but you are right, it is clearer to use ${anacondaRoot}/Library/lib/zlib.lib.
  • By the way, ${anacondaRoot} is defined as "C:/Users/paulr/anaconda3/envs/CloudComPy310" (line 10) so I refer to the CloudComPy310 environment very often in the CMakeSettings.json file!
  • LASlib is a library required by the LAS FWF plugin PLUGIN_IO_QLAS_FWF.
  • The wiki build page gives you a lot of advice but it is a bit old (last edited on July 22, 2016) and several things are outdated: for example, the addition of LAS capability has changed: the qPDALIO PLUGIN_IO_QPDAL plugin provides a first way to read and write LAS files, but the LAS FWF plugin offers a newer version of the las/laz reader/writer (1.4 instead of 1.2). There are some very recent changes in CloudCompare regarding LAS, which are not yet integrated in CloudComPy.
  • About Cork, CloudCompare relies on some pre-requisite libraries for itself and its plugins: neither the source code of these libraries nor their binaries are included in the git repository and you have to provide these libraries outside. The conda environment provides many libraries, but for those that are not in the conda packages, you either find a binary package of the library or you rebuild it (in a separate Visual Studio project)...
  • In theory, you can add plugins to CloudCompare without recompiling everything (plugins are discovered dynamically at runtime), and same thing for CloudComPy. In practice I never tried: rebuilding CloudCompy from scratch takes less than 5 minutes (once CMakeSettings.json is correct!).

Paul

prascle avatar Nov 18 '22 11:11 prascle

Thanks for the above. My questions were in the case where I don't have Cork and LAS support; these are not plugins. How do I disable them so I can continue with the build? In other words, the JSON file { "name": "CORK_INCLUDE_DIR", "value": "C:/Users/paulr/CloudComPy/cork/src", "type": "PATH" do I only replace paulr with my name, and keep the path even without having cork and LAStools in the clone?

  1. Are the "buildRoot" and "installRoot" refer to the clone folder?
  2. In the clone, I don’t have a "build2019" in "buildRoot": "C:/Users/Eyal/CloudComPy/build2019/${name}", do I keep it and continue with the build? Again thanks for all the help, best, Eyal

snowman907 avatar Nov 18 '22 18:11 snowman907

  • CORK is a plugin (PLUGIN_STANDARD_QCORK line 223) so you can disable the use of Cork. You can keep the lines defining the path for libraries and includes in the json file for future use.
  • If you want LAS support, enable PLUGIN_IO_QPDAL which only requires libraries provided in the Conda CloudComPy310 environment. You will not have the latest driver for LAS, which is provided by the PLUGIN_IO_QLAS_FWF plugin.
  • buildRoot` must be a separate directory from the source directory (the git clone). Do not define a path inside the source directory.
  • same for installRoot.
  • The build and install directories are automatically created during build and install.
  • You must have 3 separate directories : source code, build, install.

prascle avatar Nov 18 '22 19:11 prascle

So in the JSON file, for now, I am switching all the plugins BOOL from TRUE to FALSE ( from line 104 to the end# except PLUGIN_IO_QPDAL), right? How Do I install the M3C2 plugin? (For simplicity, I can do that after I got the first build complete) What do I do with the four OPENCASCADE FILE PATHS (495-509 lines) Does CloudPy only support python 3.7 and 3.8? And not 3.9?

*Moving past editing the JSON file I completed the delete cache: Delete Cache (menu Project / Cmake Cache...) But both Configure CloudComp missing_Configure CloudCompareProjects areProjects (menu Project) and Build all (Build menu) were grey! What am I missing? build_is_greyed

snowman907 avatar Nov 18 '22 22:11 snowman907

  • OK to deactivate all plugins except PLUGIN_IO_QPDAL
  • When you have successfully built, installed and done a first test, you can try to activate the other plugins.
  • OpenCascade is used by PLUGIN_IO_QSTEP.
  • CloudCompPy must be built with Python 3.10 (provided in the conda CloudComPy310 environment): see line 24.
  • Generate Cache is not active ? You must do it now. The Build menu is grey until the cache is generated.
  • I suggest you to activate the folder view, it's easier to see and edit the files... image

prascle avatar Nov 18 '22 23:11 prascle

Perhaps there is something confusing: after clearing the cache, you have the Generate Cache menu. After the cache is generated, this menu is replaced by Configure CloudCompareProjects but it is the same action...

prascle avatar Nov 18 '22 23:11 prascle

OK! I missed the step: Generate Cache

  • Delete Cache (menu Project / Cmake Cache...) - Generate Cache
  • Configure CloudCompareProjects (menu Project)
  • Build all (Build menu)
  • Install CloudCompareProjects (Build menu) During the Generate Cache and Configure steps I got one warning CGAL_DATA_DIR cannot be deduced set the variable CGDAL_DATA_DIR to the set default value of CGAL::data_file_path() Otherwise I got: Build All succeeded! Install succeeded I am not sure why the output call C:\Users\paulr\anaconda3\Scripts\activate.bat C:\Users\paulr\anaconda3 # that is not in the JSON file? Why do I still have "paul"? Also, I will fix the path variable and try again. The environment seems to be incorrect! You need to set the conda environment for cloudComPy before running this script! generate_cache_error instaall_output

snowman907 avatar Nov 19 '22 08:11 snowman907

Also, do I need to clone the source everytime I want to build from scratch? Is there an unbuild option?

snowman907 avatar Nov 19 '22 08:11 snowman907

Great!

  • The warnings during the Generate Cache an Configure steps are OK.
  • I forgot to correct a path in sphinxDoc/genSphinxDocWindowsBat.in. Just edit it before generate, build, install. This script is used for the generation of the documentation. image
  • Of course, you don't need to clone the source every time! When you delete the cache, the build directory is cleared.
  • You clone the sources once, then modify them to suit your needs (I assume that if you want to build CloudComPy, it's to make some modifications on your end, otherwise you could have just downloaded the Windows binaries instead of the sources! ).
  • When you modify the sources, use the sequence Delete Cache Generate Cache Build all Install CloudCompareProjects
  • Depending on your modifcation, you may skip the Delete Cache step, and just execute Configure CloudCompareProjects Build all Install CloudCompareProjects but sometimes Visual Studio or CMake gets confused and it is necessary to clear the build.
  • After that, it' time to test! Follow the instructions for using CloudCompare and CloudComPy.

Paul

prascle avatar Nov 19 '22 12:11 prascle

Hello Paul, I was working on a proposal in the past few weeks and took a break from working on this. So I was hoping to review the last steps I took by "delete Cache" but that options was not available. Unfortunately, when I opened Microsoft Visual Studios, the only option I had under Project was Rescan Solution Under Build I have Build All, Rebuild All, and Install CloudCompareProjects

Then I ran the Install CloudCompareProjects (output copied to the attached txt) and got two error messages ("paulr") that I don't think are because of the json file. Why can I not clear the cache anymore and start all over? Build

rescan_solution Visual_Studio_Install CloudCompareProjects_12_12_22.txt

Thanks!

snowman907 avatar Dec 13 '22 08:12 snowman907