Sorry I got confused in what you were trying to say. It indeed seems to be an error, as checking if a compiler supports some defines does not make sense. Might be that an error occurred when COMPILE_FLAGS became COMPILE_OPTIONS or something. I would suggest opening an issue on cmake gitlab about it. (I also added the cmake-dev list to cc)
However, it does indeed work for me, the script I linked before really tries to use the - -coverage, and fails accordingly when using msvc, and works with GCC. It wouldn't surprise me if cmake had some fallback when detecting options in the definition variable. I still think that checking the CMakeError.log to see what command is used for the test in your case would be interesting to know what really happens in your case. Regards, Lectem. Le jeu. 7 déc. 2017 à 22:04, Damien R <damienrg+l...@gmail.com> a écrit : > check_cxx_compiler_flag uses CMAKE_REQUIRED_DEFINITIONS. For me its means > that only "-DSOME_FLAG=VALUE" should be tested with this macro and I think > that the name is misleading. > Some people define CMAKE_REQUIRED_FLAGS / CMAKE_REQUIRED_LIBRARIES before > invoking check_cxx_compiler_flag but I think that they should use > check_cxx_source_compiles. > In your case I would use CMAKE_REQUIRED_FLAGS and > check_cxx_source_compiles. > > But as I am not the developer which has written this cmake code there may > be some points that invalidate what I just said. > > Regards, > > Damien R. > > > On 7 December 2017 at 15:13, Clément Gregoire <lec...@gmail.com> wrote: > >> Your usage of check_cxx_compiler_flag is correct, it's probably just >> missing link flags or something. >> Can you check the error log of cmake to know why it fails to compile ? It >> is in your buildfolder : CMakeFiles/CMakeError.log >> >> Here's how I did it for coverage by the way (not perfect, but was enough >> for my usage): >> >> >> https://github.com/Lectem/cpp-boilerplate/blob/master/cmake/Coverage.cmake#L42 >> >> >> >> >> 2017-12-07 14:31 GMT+01:00 Damien R <damienrg+l...@gmail.com>: >> >>> Thank you for pointing that. It increments the number of people using >>> CMAKE_REQUIRED_FLAGS "trick" to make it working with >>> check_cxx_compiler_flag. >>> >>> But my question is more about : >>> - why they coded CHECK_CXX_COMPILER_FLAG this way? >>> - is my usage valid or not? If not what should I do? If yes, is it a >>> bug? >>> >>> Regards, >>> >>> Damien R. >>> >>> >>> >>> On 7 December 2017 at 10:35, Eric Noulard <eric.noul...@gmail.com> >>> wrote: >>> >>>> >>>> Not really answering the question but >>>> did you try to use an existing CMake module for handling sanitizers >>>> config? >>>> >>>> I find this one https://github.com/arsenm/sanitizers-cmake very >>>> effective, with >>>> modern CMake target oriented features. >>>> >>>> >>>> >>>> >>>> 2017-12-07 9:24 GMT+01:00 Damien R <damienrg+l...@gmail.com>: >>>> >>>>> Hi, >>>>> >>>>> I am trying to use CHECK_CXX_COMPILER_FLAG with cmake 3.9 to check if >>>>> the compiler supports asan. >>>>> The CMakeLists.txt is: >>>>> cmake_minimum_required(VERSION 3.9) >>>>> include(CheckCXXCompilerFlag) >>>>> check_cxx_compiler_flag("-fsanitize=address" COMPILER_SUPPORT_FLAG) >>>>> >>>>> I always got: >>>>> -- Performing Test COMPILER_SUPPORT_FLAG - Failed >>>>> >>>>> Even if the documentation say that CHECK_CXX_COMPILER_FLAG sets >>>>> CMAKE_REQUIRED_DEFINITIONS by the name of the macro I thought that it >>>>> would >>>>> work. >>>>> Can you tell me why CHECK_CXX_COMPILER_FLAG use >>>>> CMAKE_REQUIRED_DEFINITIONS instead of CMAKE_REQUIRED_FLAGS >>>>> and what is the official way for checking this flag? >>>>> >>>>> Regards, >>>>> >>>>> Damien R. >>>>> >>>>> >>>>> -- >>>>> >>>>> 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 >>>>> >>>> >>>> >>>> >>>> -- >>>> Eric >>>> >>> >>> >>> -- >>> >>> 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 >>> >> >> >
-- 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