Use APPEND keyword: set_property( SOURCE source.cpp APPEND PROPERTY COMPILE_DEFINITIONS VAR1=${MY_VAR1} VAR2=${MY_VAR2} )
On 21/01/16 15:26, "CMake on behalf of Vania Joloboff" <cmake-boun...@cmake.org on behalf of vania.jolob...@inria.fr> wrote: >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.jolob...@inria.fr <mailto:vania.jolob...@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 >> >> > >-- > >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