>> foreach(x IN LISTS mysrcs) >> message("at ${x}") >> set_property(SOURCE x APPEND PROPERTY COMPILE_DEFINITIONS >> "TEST1;TEST2;") > > almost there but you forgot to take value of 'x' > > set_property(SOURCE ${x} APPEND PROPERTY COMPILE_DEFINITIONS "TEST1;TEST2;") > > works for me.
Thank you very much, now it indeed works. FTR, extracted into a separate 'add_library_with_defs' function in the toplevel CMakeLists.txt function(add_library_with_defs libname libtype) math(EXPR endindex "${ARGC}-1") set(files) foreach(index RANGE 2 ${endindex}) list(GET ARGV ${index} arg) list(APPEND files ${arg}) endforeach() add_library("${libname}" "${libtype}" "${files}") get_property(mysrcs TARGET "${libname}" PROPERTY SOURCES) foreach(x IN LISTS mysrcs) # message("${libname}: at ${x}") set_property(SOURCE ${x} APPEND PROPERTY COMPILE_DEFINITIONS TEST1 TEST2) endforeach() endfunction() so now it is simplified to: add_library_with_defs(mylib SHARED file1.c file2.c) -- 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: https://cmake.org/mailman/listinfo/cmake