[CMake] Setting properties to interface

Tiago Macarios tiagomacarios at gmail.com
Sun Apr 16 15:04:33 EDT 2017


Thanks Craig! That works. Just to confirm, there is no way to disable
extensions for a single interface?

On Sun, Apr 16, 2017 at 1:51 AM, Craig Scott <craig.scott at crascit.com>
wrote:

> As per my other email just now, you should be able to achieve what you
> want with the new CMake 3.8.0 release:
>
> add_library(a_lib INTERFACE)
> target_compile_features(a_lib INTERFACE cxx_std_11)
>
> I did a quick test with the above just now and it seems to work as
> expected. You may, however, still want to set the CXX_EXTENSIONS target
> property (or set it project wide with CMAKE_CXX_EXTENSIONS) to control
> whether or not compiler extensions are enabled too.
>
>
>
> On Sun, Apr 16, 2017 at 12:45 PM, Tiago Macarios <tiagomacarios at gmail.com>
> wrote:
>
>> Hi,
>>
>> Given a template-only library exposed throw an interface is it possible
>> to set the necessary CXX_STANDARD necessary to use the library? The code
>> below would be what I am trying to do.
>>
>> add_library(a_lib INTERFACE)
>>
>> set_property(TARGET a_lib
>>     PROPERTY CXX_STANDARD 11
>>     PROPERTY CXX_STANDARD_REQUIRED ON
>> )
>>
>> target_compile_definitions(a_lib INTERFACE
>>     SOME_DEF
>> )
>>
>>
>> Unfortunately, this does not work and fails with:
>>
>>   INTERFACE_LIBRARY targets may only have whitelisted properties.
>>   The property "CXX_STANDARD_REQUIRED" is not allowed.
>>
>> Any ideas?
>>
>> Tiago
>>
>> --
>>
>> 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
>>
>
>
>
> --
> Craig Scott
> Melbourne, Australia
> https://crascit.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20170416/7fdace3c/attachment.html>


More information about the CMake mailing list