I think I find something to explain this: the config.cmake(the CMAKE_TOOLCHAIN_FILE) is reloaded several times. on first-load, the A is set, but on second-load and later-load, the A is not set. I think I can get around this problem when A is kept set. However, I don't know how can I keep the value set in cmake. Could anyone give me some suggestion? Thanks!
On Mon, Apr 1, 2013 at 7:47 PM, Ashi <ashi08...@gmail.com> wrote: > Hi all, I've a problem in using else() in CMAKE_TOOLCHAIN_FILE, all files > are: > > #==CMakeLists.txt== > message("TEST") > > #==config.cmake== > if(A) > message("A") > elseif(B) > message("B") > elseif(C) > message("C") > else() > message(FATAL_ERROR "NONE") > endif() > > and I run the cmake: > $ cmake -DCMAKE_TOOLCHAIN_FILE=./config.cmake -DA=true . > > cmake returns: > > A > A > -- The C compiler identification is GNU 4.7.2 > -- The CXX compiler identification is GNU 4.7.2 > -- Check for working C compiler: /I usr/bin/gcc > CMake Error at /home/zhongwei/projects/cmake_test/config.cmake:8 (message): > NONE > Call Stack (most recent call first): > /home/zhongwei/projects/cmake_test/build/CMakeFiles/CMakeSystem.cmake:1 > (INCLUDE) > CMakeLists.txt:2 (PROJECT) > > > CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage > CMake Error: Internal CMake error, TryCompile configure of cmake failed > -- Configuring incomplete, errors occurred! > > My problem is why the else() statement is still run when A=true? > > Thanks, > ashi >
-- 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