Hello everyone, I try to append a string (target name) on a list inside a function called in other CMakeLists.
I have the following project’s tree: ├── CMakeLists.txt ├── test ├── CMakeLists.txt └── app ├── CMakeLists.txt ├── appA │ ├── CMakeLists.txt │ └── main.cpp └── appB ├── CMakeLists.txt └── main.cpp Inside the test/CMakeLists.txt, I defined an internal variable like this: set(allTestsList "" CACHE INTERNAL "All executable tests.'') And my function: function(addTest targetName) # create the executable with all the souces add_executable(${targetName} ${ARGN}) list(APPEND allTestsList ${targetName}) message("inside addTestFunction. allTestsList: " ${allTestsList}) endfunction() I call this function inside the test/app/appA and test/app/appB CMakeLists.txt like this: addTest(appA main.cpp) addTest(appB main.cpp) I expected to have as final result: inside addTestFunction. allTestsList: appA;appB But I only have: inside addTestFunction. allTestsList: appB I suspect that a new variable is created at each call of the function. Is it possible to use a global variable? (I tried to use PARENT_SCOPE with no success). Thank you, Romain -- 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