On 20/10/14 15:52, Brad King wrote: > On 10/16/2014 11:26 AM, Daniele E. Domenichelli wrote: >> # [CMAKE_ARGS args...] # Arguments to CMake command line >> # [CMAKE_CACHE_ARGS args...] # Initial cache arguments, of the form >> -Dvar:string=on >> >> So, from what I understand, The first arguments are passed to the cmake >> command line, and from the second it is created a a cache file that is >> passed to cmake using -C. If the same variable is in both, CMAKE_ARGS >> wins over CMAKE_CACHE_ARGS. > [snip] >> This makes impossible to change a value later, and in my opinion makes >> one of the 2 arguments redundant, since the final effect of the 2 >> variables is exactly the same. > > CMAKE_CACHE_ARGS was added here: > > Added CMAKE_CACHE_ARGS to ExternalProject. > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=68cd3fe0 > > to overcome command line length limits. CMAKE_ARGS can contain > arguments other than cache values. Therefore they are not fully > redundant although there is overlap.
Ok, I see. I would like to be able to set some some variables (for example CMAKE_BUILD_TYPE) for all the "external project" according to the value in the "super-project", but the same time I would like to be able to change them (for example change CMAKE_BUILD_TYPE to Debug if I'm building in Release mode) for just one external project without changing it in all of them, and having to rebuild everything. But actually I don't like the idea that all of them could be modified, for example in my case the user should not have the control over the CMAKE_INSTALL_PREFIX variable... Maybe, since the "-D" is actually a convention to match the CMAKE_ARGS argument that does some sort of conversion from "-Dvar:type=value" to a "set(var value CACHE type "Initial cache" FORCE)" command, it could be possible to accept some other form of string, maybe "+D", or "-<some other uppercase letter>", so that: -Dvar:type=value -> set(var value CACHE type "Initial cache" FORCE) +Dvar:type=value -> set(var value CACHE type "Initial cache" ) This would ensure backwards compatibility, with no extra arguments and could allow a quick switch from forced to non-forced, just by changing one character. Would you accept something like this? Cheers, Daniele -- 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-developers
