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

Reply via email to