On Wednesday 06 July 2011, Jerry Gagelman wrote: > I'm redistributing a library for which the original authors have hand coded > their own Makefile, but I would like to streamline everything with CMake. > Their Makefile provides for Debug and Release flavored configurations, each > has its own set of CFLAGS, and for consistency I would like to incorporate > the same set of flags. > > Using the following commands, the configuration can be selected in the > cache: > > if( DEFINED CMAKE_BUILD_TYPE ) > > set( CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Options are: Debug > Release") > > else( DEFINED CMAKE_BUILD_TYPE ) > > set(CMAKE_BUILD_TYPE Debug CACHE STRING "Options are: Debug Release") > > endif( DEFINED CMAKE_BUILD_TYPE ) > > > That works. Next, I tried to update the C_FLAGS : > > > set( CMAKE_C_FLAGS_DEBUG "-Wall -Wno-format -g -DDEBUG" CACHE STRING > "Recommended debug flags." ) > > set( CMAKE_C_FLAGS_RELEASE "-Wall -Wno-unknown-pragmas -Wno-format -O3" > CACHE STRING "Recommended release flags." )
If these variables exist already in the cache, then a simple set(... CACHE ...) does not override the value which is already in the cache. You can only override a value in the cache from a CMakeLists.txt by using set(... CACHE... FORCE) This will put the given value always in the cache. Which also means if the user changes the value using "make edit_cache", the set(...CACHE ... FORCE) will override his changes again. Is this the behaviour you are seeing ? Alex _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake