c++cmakepoint-cloud-library

How to handle with 'Policy CMP0074 is not set' warning while using Cmake to build PCL tutorials?


I want to complete this basic tutorial: http://pointclouds.org/documentation/tutorials/writing_pcd.php#writing-pcd

Its very simple. When I prepare CMakeLists.txt and .cpp file, I run them with CMake GUI and I get this warning. I installed PCL 1.9.1 so I build file for Visual Studio 2017 64x.

Selecting Windows SDK version 10.0.17134.0 to target Windows 10.0.17763.
The C compiler identification is MSVC 19.15.26726.0
The CXX compiler identification is MSVC 19.15.26726.0
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:5(find_package):
  Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
  Run "cmake --help-policy CMP0074" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

    Environment variable PCL_ROOT is set to:

      C:\libraries\PCL 1.9.1

   For compatibility, CMake is ignoring the variable. This warning is for project developers.  Use -Wno-dev to suppress it.

Found Eigen: C:/libraries/PCL 1.9.1/3rdParty/Eigen/eigen3
Eigen found (include: C:/libraries/PCL 1.9.1/3rdParty/Eigen/eigen3, version: 3.3.5)
Looking for pthread.h
Looking for pthread.h - not found
Found Threads: TRUE
Found Boost: C:/libraries/PCL 1.9.1/3rdParty/Boost/include/boost-1_68 (found suitable version "1.68.0", minimum required is "1.40.0") found components: system filesystem thread date_time iostreams serialization chrono atomic regex
Found FLANN: C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s.lib   FLANN found (include: C:/libraries/PCL 1.9.1/3rdParty/FLANN/include, lib: optimized;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s-gd.lib)
FLANN found (include: C:/libraries/PCL 1.9.1/3rdParty/FLANN/include, lib: optimized;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s-gd.lib)
Found OpenNI2: C:/libraries/OpenNI2/Lib/OpenNI2.lib
OpenNI2 found (include: C:/libraries/OpenNI2/Include, lib: C:/libraries/OpenNI2/Lib/OpenNI2.lib)
OpenNI2 found (include: C:/libraries/OpenNI2/Include, lib: C:/libraries/OpenNI2/Lib/OpenNI2.lib)
Found Qhull: optimized;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic_d.lib
QHULL found (include: C:/libraries/PCL 1.9.1/3rdParty/Qhull/include, lib: optimized;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic_d.lib)
looking for PCL_COMMON
Found PCL_COMMON: C:/libraries/PCL 1.9.1/lib/pcl_common_release.lib  
looking for PCL_KDTREE
Found PCL_KDTREE: C:/libraries/PCL 1.9.1/lib/pcl_kdtree_release.lib   looking for PCL_OCTREE
Found PCL_OCTREE: C:/libraries/PCL 1.9.1/lib/pcl_octree_release.lib  
looking for PCL_SEARCH
Found PCL_SEARCH: C:/libraries/PCL 1.9.1/lib/pcl_search_release.lib
looking for PCL_SAMPLE_CONSENSUS
Found PCL_SAMPLE_CONSENSUS: C:/libraries/PCL 1.9.1/lib/pcl_sample_consensus_release.lib
looking for PCL_FILTERS
Found PCL_FILTERS: C:/libraries/PCL 1.9.1/lib/pcl_filters_release.lib 
looking for PCL_2D
Found PCL_2D: C:/libraries/PCL 1.9.1/include/pcl-1.9
looking for PCL_GEOMETRY
Found PCL_GEOMETRY: C:/libraries/PCL 1.9.1/include/pcl-1.9
looking for PCL_IO
Found PCL_IO: C:/libraries/PCL 1.9.1/lib/pcl_io_release.lib
looking for PCL_FEATURES
Found PCL_FEATURES: C:/libraries/PCL 1.9.1/lib/pcl_features_release.lib   looking for PCL_ML
Found PCL_ML: C:/libraries/PCL 1.9.1/lib/pcl_ml_release.lib
looking for PCL_SEGMENTATION
Found PCL_SEGMENTATION: C:/libraries/PCL 1.9.1/lib/pcl_segmentation_release.lib
looking for PCL_VISUALIZATION
Found PCL_VISUALIZATION: C:/libraries/PCL 1.9.1/lib/pcl_visualization_release.lib
looking for PCL_SURFACE
Found PCL_SURFACE: C:/libraries/PCL 1.9.1/lib/pcl_surface_release.lib 
looking for PCL_REGISTRATION
Found PCL_REGISTRATION: C:/libraries/PCL 1.9.1/lib/pcl_registration_release.lib
looking for PCL_KEYPOINTS
Found PCL_KEYPOINTS: C:/libraries/PCL 1.9.1/lib/pcl_keypoints_release.lib
looking for PCL_TRACKING
Found PCL_TRACKING: C:/libraries/PCL 1.9.1/lib/pcl_tracking_release.lib  
looking for PCL_RECOGNITION
Found PCL_RECOGNITION: C:/libraries/PCL 1.9.1/lib/pcl_recognition_release.lib
looking for PCL_STEREO
Found PCL_STEREO: C:/libraries/PCL 1.9.1/lib/pcl_stereo_release.lib  
looking for PCL_OUTOFCORE
Found PCL_OUTOFCORE: C:/libraries/PCL 1.9.1/lib/pcl_outofcore_release.lib
looking for PCL_PEOPLE
Found PCL_PEOPLE: C:/libraries/PCL 1.9.1/lib/pcl_people_release.lib
Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_outofcore;pcl_people;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_system-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_system-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_filesystem-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_filesystem-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_thread-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_thread-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_date_time-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_date_time-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_iostreams-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_iostreams-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_serialization-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_serialization-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_chrono-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_chrono-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_atomic-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_atomic-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_regex-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_regex-vc141-mt-gd-x64-1_68.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic_d.lib;C:/libraries/OpenNI2/Lib/OpenNI2.lib;optimized;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s-gd.lib;vtksys;vtkCommonCore;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonDataModel;vtkCommonColor;vtkCommonExecutionModel;vtkCommonComputationalGeometry;vtkFiltersCore;vtkFiltersGeneral;vtkImagingCore;vtkImagingFourier;vtkalglib;vtkFiltersStatistics;vtkFiltersExtraction;vtkInfovisCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingCore;vtkzlib;vtkfreetype;vtkRenderingFreeType;vtkRenderingContext2D;vtkChartsCore;vtkDICOMParser;vtklz4;vtkIOCore;vtkIOLegacy;vtkexpat;vtkIOXMLParser;vtkDomainsChemistry;vtkIOXML;vtkParallelCore;vtkFiltersAMR;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkImagingSources;vtkFiltersHybrid;vtkFiltersHyperTree;vtkImagingGeneral;vtkFiltersImaging;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersPoints;vtkFiltersProgrammable;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersTexture;vtkFiltersTopology;verdict;vtkFiltersVerdict;vtkmetaio;vtkjpeg;vtkpng;vtktiff;vtkIOImage;vtkImagingHybrid;vtkInfovisLayout;vtkInteractionStyle;vtkImagingColor;vtkRenderingAnnotation;vtkRenderingVolume;vtkInteractionWidgets;vtkViewsCore;vtkproj4;vtkGeovisCore;vtkhdf5_hl;vtkhdf5;vtkIOAMR;vtkIOEnSight;vtkNetCDF;vtkexoIIc;vtkIOExodus;vtkRenderingOpenGL;vtkRenderingContextOpenGL;vtkgl2ps;vtkRenderingGL2PS;vtklibharu;vtkIOExport;vtkRenderingLabel;vtkIOExportOpenGL;vtkIOGeometry;vtkIOImport;vtklibxml2;vtkIOInfovis;vtkIOLSDyna;vtkIOMINC;vtkoggtheora;vtkIOMovie;vtknetcdfcpp;vtkIONetCDF;vtkIOPLY;vtkjsoncpp;vtkIOParallel;vtkIOParallelXML;vtksqlite;vtkIOSQL;vtkIOTecplotTable;vtkIOVideo;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingVolumeOpenGL;vtkViewsContext2D;vtkViewsInfovis (Required is at least version "1.2")
Configuring done
Generating done

After build, when I click open project and run it, I get this error.

enter image description here

Any solution for it?


Solution

  • The CMP0074 warning is not really a problem you as a user need to worry about. It's a warning for the developer of the CMakeLists.txt that a behavior in CMake has changed.

    https://cmake.org/cmake/help/latest/policy/CMP0074.html

    In CMake 3.12 and above the find_package() command now searches prefixes specified by the _ROOT CMake variable and the ROOT environment variable. Package roots are maintained as a stack so nested calls to all find* commands inside find modules also search the roots as prefixes. This policy provides compatibility with projects that have not been updated to avoid using _ROOT variables for other purposes.

    The OLD behavior for this policy is to ignore _ROOT variables. The NEW behavior for this policy is to use _ROOT variables.

    Basically the warning is that the developers of the CMakeLists.txt have not set the policy to enable the new behavior or to keep the old behavior however the PCL_ROOT was defined. CMake will not automatically use it because the new behavior is not enabled.

    The ALL_BUILD error message is because the ALL_BUILD target / project is not an executable target. It's purpose is to force building of all projects in the solution. To fix that part you need to right click on an executable project / target in the Solution Explorer and click "Set this project as the startup project"