Hello, On 26/02/16 00:00, Andrew Hundt wrote: > I believe check_cxx_compiler_flags is failing due to a long/complicated > compiler path. > > Specifically my compiler is set to: > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ > > CMake version: 3.4.3 > > Full trace output in gist where you can see lines warning of regex failure: > https://gist.github.com/ahundt/88ce65bcc3c268acdd94 > > > Here is the code snippet that fails: > > include(CheckCXXCompilerFlag) >> check_cxx_compiler_flag(-std=c++11 COMPILER_SUPPORTS_CXX11) >> check_cxx_compiler_flag(-std=c++0x COMPILER_SUPPORTS_CXX0X) >> message(STATUS <<<<<<<<COMPILER_SUPPORTS_CXX11:${COMPILER_SUPPORTS_CXX11})
The problem is not compiler path related but related to the additional warnings that are enabled: https://github.com/code-iai/iai_kinect2/blob/master/kinect2_calibration/CMakeLists.txt#L4 > set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBT_USE_DOUBLE_PRECISION -Wall") > # Unused warnings > set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wuninitialized -Winit-self > -Wunused-function -Wunused-label -Wunused-variable -Wunused-but-set-variable > -Wunused-but-set-parameter") > # Additional warnings > set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Warray-bounds -Wtype-limits > -Wreturn-type -Wsequence-point -Wparentheses -Wmissing-braces > -Wchar-subscripts -Wswitch -Wwrite-strings -Wenum-compare -Wempty-body > -Wlogical-op") Those cause clang to emit a warning about unknown warnings: > clang -c -DBT_USE_DOUBLE_PRECISION -Wall -Wuninitialized -Winit-self > -Wunused-function -Wunused-label -Wunused-variable -Wunused-but-set-variable > -Wunused-but-set-parameter -Warray-bounds -Wtype-limits -Wreturn-type > -Wsequence-point -Wparentheses -Wmissing-braces -Wchar-subscripts -Wswitch > -Wwrite-strings -Wenum-compare -Wempty-body foo.cpp > warning: unknown warning option '-Wunused-but-set-variable'; did you mean > '-Wunused-const-variable'? [-Wunknown-warning-option] > warning: unknown warning option '-Wunused-but-set-parameter'; did you mean > '-Wunused-parameter'? [-Wunknown-warning-option] > 2 warnings generated. Those warnings are interpreted by check_cxx_compiler_flag as failure (this is the regex you observed [1]) which leads to a negative setting of the variable. I see three possible solutions: 1) Move the check before touching the CMAKE_CXX_FLAGS. 2) Require a more modern CMake (3.3) and set CMAKE_CXX_STANDARD to 11 CMAKE_CXX_STANDARD_REQUIRED to TRUE 3) Use modern CMake with target compile features: https://cmake.org/cmake/help/v3.3/manual/cmake-compile-features.7.html Thanks, Gregor [1] https://github.com/Kitware/CMake/blob/master/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake#L25 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake