I would really appreciate anyone who can throw more light to explain the role of the PROJECT command.
Here is why. I have a CMakeLists.txt in top level source tree and it contains: MESSAGE("CMAKE_C_LINK_EXECUTABLE = ${CMAKE_C_LINK_EXECUTABLE} FLAGS = ${FLAGS} CMAKE_C_LINK_FLAGS = ${CMAKE_C_LINK_FLAGS} LINK_FLAGS = ${LINK_FLAGS} LINK_LIBRARIES = ${LINK_LIBRARIES}") PROJECT(myProj) MESSAGE("CMAKE_C_LINK_EXECUTABLE = ${CMAKE_C_LINK_EXECUTABLE} FLAGS = ${FLAGS} CMAKE_C_LINK_FLAGS = ${CMAKE_C_LINK_FLAGS} LINK_FLAGS = ${LINK_FLAGS} LINK_LIBRARIES = ${LINK_LIBRARIES}") At the point where I set cross-compiler (in a sub directory) if I set CMAKE_C_LINK_EXECUTABLE like this: SET(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>") I get the following output: CMAKE_C_LINK_EXECUTABLE = <CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_ FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> FLAGS = CMAKE_C_LINK_FLAGS = LINK_FLAGS = LINK_LIBRARIES = CMAKE_C_LINK_EXECUTABLE = <CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_ FLAGS> <OBJECTS> -o <TARGET> -Wl,--major-image-version,<TARGET_VERSION_MAJOR>,- -minor-image-version,<TARGET_VERSION_MINOR> <LINK_LIBRARIES> FLAGS = CMAKE_C_LINK_FLAGS = LINK_FLAGS = LINK_LIBRARIES = I do not want the "-Wl,--major-image-version,<TARGET_VERSION_MAJOR>,- -minor-image-version,<TARGET_VERSION_MINOR>" flags. If I do the set operation after declaring project, it works as expected. I cannot remove the project command because if I do that for some reason cmake won't take my cross-compiler. How can I avoid it system wide? For the sake of cross-compiling and variation between linkers, I want to set CMAKE_C_LINK_EXECUTABLE along with the compiler settings and I need to declare project after setting the cross-compiler or it won't take effect. Warm regards, Kishore _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake