2010/9/7 Stefan Köhnen <[email protected]>:
> 2010/9/6 Alexander Neundorf <[email protected]>:
>> On Monday 06 September 2010, Stefan Köhnen wrote:
>>> Ah, okay.
>>>
>>> Thanks for your fast reply.
>>>
>>> Is there a way to change the value in the cache?
>>
>> set(... FORCE)
>>
>> Alex
>>
>
> Hello Alex,
>
> thanks again for your reply. I tried to use set with FORCE but it didn't work.
>
> My CMakeLists.txt looks like this:
>
> PROJECT(CMakeTest)
>
> SET(VAR_FOR_TEST "firstValue" CACHE STRING "Just for testing")
>
> set(VAR_FOR_TEST "secondValue" FORCE)
This second command also needs to set the cache value:
set(VAR_FOR_TEST "secondValue" CACHE STRING "Just for testing" FORCE)
Keep in mind, that this will prevent the user from changing this value
from the GUI, since you are forcing it.
An alternative that I've employed with FindCUDA is to set the variable
*before* calling find_package(CUDA).
set(VAR_FOR_TEST "secondValue" CACHE STRING "Just for testing" FORCE)
find_package(CUDA)
The first set(CACHE) command wins and the one in the FindCUDA script
doesn't take effect.
A second alternative that I've employed is to keep a flag called
PASSED_FIRST_CONFIGURE that is set to ON at the end of the top level
CMakeLists.txt file:
set(PASSED_FIRST_CONFIGURE ON CACHE INTERNAL "Already Configured once?")
During execution of the CMake scripts, I can check for this flag and
only do set(CACHE FORCE) commands if PASSED_FIRST_CONFIGURE evaluates
to false:
if(NOT PASSED_FIRST_CONFIGURE)
set(flag "--use_fast_math")
list(FIND CUDA_NVCC_FLAGS ${flag} index)
if(index EQUAL -1)
list(APPEND CUDA_NVCC_FLAGS ${flag})
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} CACHE LIST "Semi-colon
delimit multiple arguments." FORCE)
endif()
endif()
James
_______________________________________________
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