[CMake] Adding definitions to compile one file ?

Vania Joloboff vania.joloboff at inria.fr
Thu Jan 21 09:26:58 EST 2016


HI Petr

Thanks for the suggestion.
But this will erase the existing compile definitions, won't it ?
So may be I should do a get_property first,
append my new definitions and reset the property ?
I'll try anyway...

Vania

On 01/21/2016 03:21 PM, Petr Kmoch wrote:
> Hi Vania.
>
> For your case, it's best to forget about the 
> not-as-convenient-as-they-could-be convenience functions 
> set_*_properties, and just invoke set_property:
>
> set_property(
>   SOURCE source.cpp
>   PROPERTY COMPILE_DEFINITIONS
>     VAR1=${MY_VAR1} VAR2=${MY_VAR2}
> )
>
> Petr
>
> On Thu, Jan 21, 2016 at 3:14 PM, Vania Joloboff 
> <vania.joloboff at inria.fr <mailto:vania.joloboff at inria.fr>> wrote:
>
>     Hi
>
>     I want to add two definitions to compile one specific files
>     in addition to the global definitions.
>     I have the following problem. If I use
>
>     set_source_files_properties(source.cpp
>     PROPERTIES
>     COMPILE_DEFINITIONS VAR1=${MY_VAR1} VAR2=${MY_VAR2} )
>
>     then I get error message incorrect number of arguments for
>     set_source_files_properties
>
>     If I put
>     set_source_files_properties(source.cpp
>     PROPERTIES COMPILE_DEFINITIONS "VAR1=${MY_VAR1} VAR2=${MY_VAR2}" )
>
>     then it generates strangely enough the compile command
>
>     /usr/bin/c++ -DVAR1="path1 VAR2=path2" ... source.cpp
>
>     with the double quotes as above, which gives a weird value to VAR1
>     and no value to VAR2
>
>     If I use twice set_source_files_properties
>     the first one is overwritten by the second
>     and I only get the definition of VAR2
>
>     What am I supposed to do ?
>
>     Thankx
>
>     PS I am using cmake 3.2.2 on Linux Mint.
>
>     -- 
>
>     Powered by www.kitware.com <http://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
>
>



More information about the CMake mailing list