| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- ********************************************
- * COMPILATION WITH CMAKE *
- * *
- * Last modification: 10/02/2014 (DGM) *
- * *
- ********************************************
- For the latest version (version 2.7 and later) refer to the http://github.com/cloudcompare/trunk/blob/master/BUILD.md file.
- Instructions below are for the 2.6 versions and earlier.
- 0) Prerequisites
- - Checkout the sources from the Github repository:
- https://github.com/cloudcompare/trunk
- - Install CMake (2.8 or newer)
- - Install all necessary dependencies:
- - [WINDOWS] Qt (version 4.7 or newer)
- - [LINUX] qt-dev, opengl
- (refer to section A0 if your version of Qt is older than 4.7)
- 1) Generating the project
- - Launch CMake (GUI)
- - Make the 'Where is the source code' field point to your local CloudCompare SVN repository.
- - Make the 'Where to build the binaries' field point to ... almost anywhere you want (apart from the same folder as above!)
- - Click on the "Configure" button
- - Select your generator [already tested: Visual 2008 (32 & 64 bits), Visual 2010 Express (64 bits - see appendix), Visual 2012, Code::Blocks (Linux & Windows 32 bits), gcc (Linux 32 & 64 bits)]
- - Wait for CMake configuration/tests to finish...
- 2) Before clicking on the 'Generate' button, you may set some options:
- - if you expand the "OPTION" group, you'll be able to set some general options:
- - OPTION_BUILD_CC_VIEWER: whether to build or not the ccViewer side project (activated by default)
- - OPTION_LP_PCL_PATCH_ENABLED: see section 2-5
- - OPTION_MP_BUILD: for MSVC only (mutli-process build --> much faster, but takes almost all available CPU)
- - OPTION_SUPPORT_3D_CONNEXION_DEVICES: for 3D mouses handling
- - OPTION_SUPPORT_MAC_PDMS_FORMAT: to activate support for PDMS .mac scripts in qCC (CAD)
- - OPTION_USE_DXFLIB: to activate support for DXF files in qCC (and ccViewer) with dxflib - see below
- - OPTION_USE_LIBE57: to activate support for E57 files in qCC (and ccViewer) with libE57- see below
- - OPTION_USE_LIBLAS: to activate support for LAS files in qCC (and ccViewer) with libLAS - see below
- - OPTION_USE_QUICKHULL: to use the Qhull library (necessary for the qHPR plugin)
- - if you expand the "INSTALL" group, you'll be able to select the plugin(s) you want to compile (NO PLUGIN IS REQUIRED TO USE CLOUDCOMPARE)
- - qBlur
- - qDummy (warning: does nothing, template for developers)
- - qEDL
- - qHPR
- - qKinect (only tested on Windows for the moment) - see below
- - qPCL (requires PCL - see below)
- - qPCV
- - qPoissonRecon
- - qRansacSD (SD = Shape Detection)
- - qSSAO
- - qCork (CSG)
- - eventually the "CMAKE" group contains a CMAKE_INSTALL_PREFIX which is where qCC (CloudCompare) and ccViewer will be installed (with the 'install' build configuration in your project)
- Note: On Linux, default install dir is /usr/local (be sure to have administrative rights if you want to install CloudCompare there - or change the default path)
- On Windows Seven, you may not have the right to 'install' files in Program Files (x86)
- 2-1) [Optional] Setup for LibLAS support
- If you want to compile CloudCompare (and ccViewer) with LAS files support, you'll need:
- - LibLAS (last tested version: 1.7 on Windows)
- - Boost multi-thread shared libraries
- * make the BOOST_ROOT environment variable point to your Boost installation before launching CMake in order for the automatic 'find_package' script to work properly
- * otherwise refer to LibLAS documentation for more directions
- The CMake project will request you to set the 3 following variables:
- - LIBLAS_INCLUDE_DIR: LibLAS include directory (pretty straightforward ;)
- - LIBLAS_RELEASE_LIBRARY_FILE: main LibLAS release library (the .lib or .a file itself!)
- - [Windows] LIBLAS_SHARED_LIBRARY_FILE: full path to the liblas.dll file
- Note: For the moment, only the release version of CloudCompare supports LibLAS files
- 2-2) [Optional] Setup for LibE57 support
- If you want to compile CloudCompare (and ccViewer) with E57 files support, you'll need:
- - LibE57 (last tested version: 1.0.224 on Windows)
- - Boost multi-thread static libraries (same as libLAS)
- - Xerces-C++ multi-thread static libraries
- * only the XercesLib project must be compiled
- * eventually, CMake will look for the resulting files in '/include' (instead of /src)
- and /lib (instead of /Build/Win32/VCX/Static Debug or Release)
- WARNING: on Microsoft Visual (at least), you'll need the libraries compiled with /MD (=DLL Multithreaded)
- in release mode and /MDd in debug mode. You may have to change this in both Xerces (change
- XercesLib project's options 'C/C++ > Code Generation > Runtime Library') as well as in libE57
- root CMake file (replace all '/MT' by '/MD' in it)
- The CloudCompare CMake project will only require that you set the path where libE57 has been installed (LIBE57_INSTALL_DIR)
- 2-3) [Optional] Setup for libfreenect support
- If you want to compile qKinect you'll need:
- - OpenKinect / libfreenect (last tested version: trunk @ 03/22/2012, compiled on Windows XP 32 & 64bits)
- The CloudCompare CMake project will request you to set the 3 following variables:
- - LIBFREENECT_INCLUDE_DIR: libfreenect include directory (pretty straightforward ;)
- - LIBFREENECT_LIBRARY_FILE: main libfreenect library (the freenect.lib or libfreenect.a file itself!)
- - [Windows] LIBFREENECT_SHARED_LIBRARY_FILE: full path to the freenect.dll file
- 2-4) [Optional] Setup for XIOT support
- (NOT SUPPORTED ANYMORE)
- 2-5) [Optional] Setup for PCL support
- If you want to compile qPCL you'll need:
- - PCL (http://pointclouds.org/ - last tested version: 1.5.1 on Windows 32 & 64 bits)
- Follow the online instructions/tutorials. Basically, you'll need Boost, Qt, Flann and Eigen.
- Once properly installed, the CloudCompare CMake script should automatically find PCL definitions.
- However, you'll have to set again the parameters related to Flann and Eigen.
- Note: if you have applied Luca Penasa' PCL patch (http://dev.pointclouds.org/issues/845), you must check the OPTION_LP_PCL_PATCH_ENABLED
- option in CMake gui (otherwise just ignore this option).
- 2-6) [Optional] Setup for Qhull support
- If you want to compile qHPR you'll need:
- - Qhull (http://www.qhull.org/)
- The CMake project will request you to set the 3 following variables:
- - QHULL_INCLUDE_DIRS: qHull include directory (pretty straightforward ;)
- - QHULL_LIBRARY: main (release) qHull library (the qhull.lib or libqhull.a file itself!)
- - QHULL_LIBRARY_DEBUG: debug qHull library (the qhulld.lib or libqhulld.a file for instance)
- 2-7) [Optional] Setup for dxflib support
- If you want to compile CloudCompare (and ccViewer) with DXF files support, you'll need:
- - Ribbonsoft's dxflib (http://www.ribbonsoft.com/en/dxflib-downloads - last tested version: v2.5.0.0-1 on Windows)
- WARNING: on Microsoft Visual (at least), you'll need to edit the file 'dl_writer.h':
- - comment the "#include <strings.h>" line (29)
- - comment the 'strcasecmp' definition block (35-37)
- The CMake project will only require that you set the path where dxflib sources are (DXF_LIB_SRC_DIR)
- 2-8) [Optional] Setup for Cork + MPIR support (qCork plugin)
- If you want to compile the qCork plugin (on Windows only for now), you'll need
- - MPIR 2.6.0 (http://www.mpir.org/)
- - the forked version of the Cork library for CC: https://github.com/cloudcompare/cork
- (see the VS2010 and VS2012 projects shipped with this fork)
- 3) Generate the project files
- - Click multiple times on 'Configure' (and correct any error if necessary) until all red items have disappeared.
- - Click on the 'Generate' button to create the corresponding project files
- 4) Compiling the project
- - Open the resulting project with the generator you have previously chosen (the file(s) should be where you told CMake to build the binaries).
- - You should (always?) found the two following configuration/sub-projects:
- - 'build all' should do all the compilation work (in the right order) but the binaries and libraries will be generated (by default) among all the other compilation files, in a somewhat complicated folder tree structure.
- - 'install' should export all these files to the CMAKE_INSTALL_PREFIX folder, placing everything where it should be (and almost exactly as the official binary build)
- --- Appendix ---
- A0) On Linux, you may encounter issues:
- - with shared libraries (.so files). In this case you can:
- - set the LD_LIBRARY_PATH variable so that it points to the qCC and ccViewer installation folders (export LD_LIBRARY_PATH=...)
- - or call 'sudo /sbin/ldconfig -v' once with admin rights
- - with QElapsedTimer on older versions of Qt (for instance with Ubuntu Lucid or Scientific Linux). In this case you'll have to replace the "#include <QElapsedTimer>" lines by:
- //#include <QElapsedTimer>
- #include <QTime>
- typedef QTime QElapsedTimer;
- (in cloudcompare/libs/qCC_db/ccTimer.h , after //Qt
- in cloudcompare/libs/qCC/ccCommandLineParse.cpp , after #include <QDateTime>
- in cloudcompare/libs/qCC/ccComparisonDlg.cpp , after //Qt
- in cloudcompare/libs/qCC/ccGLWindow.cpp , after #include <QWheelEvent>
- in cloudcompare/libs/qCC/ccSubsamplingDlg.cpp , after //Qt
- in cloudcompare/libs/qCC/mainwindow.cpp , after #include <QMessageBox>)
- A1) Compiling the 64 bits version on Windows
- Here are several "hints" regarding the compilation on Windows 64 bits:
- * if only Visual 2010 Express is installed, Cmake will require you to install Microsoft Windows SDK 7.1 (quite redundant?!)
- * to compile with Visual 2010 on a 64 bits architecture you must then apply the following patch: http://support.microsoft.com/kb/2280741
- (this solves a bug from the MSVC 2010 compiler that prevents Qt from running correctly in release mode)
- * you'll also have to compile Qt yourself, as Nokia doesn't provide the corresponding binaries:
- - download and decompress the Qt sources
- - start the Microsoft Windows SDK 7.1 command line mode with the dedicated shortcut
- (you'll have to add "/Release" at the end of the shortcut - edit the shortcut properties for that).
- Something like: << C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release >>
- - if you don't have perl installed, just delete the "bin/syncqt.bat" file
- - follow the instruction to compile Qt (rather easy --> configure, nmake, then nmake install --> just wait for a few hours ;)
|