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. 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-developers