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