Hi, On Tuesday 05 August 2008, Phil Smith wrote: > Next issue: linking. I have a toolchain file now that looks like this: > > ------------------------------------------------------------ > # Tell CMAKE the target system name > SET(CMAKE_SYSTEM_NAME "ZOS") > > # Specify the cross-compilers > SET(CMAKE_C_COMPILER "c:/progra~1/dignus/cc.bat") > SET(CMAKE_CXX_COMPILER "c:/progra~1/dignus/cxx.bat") > > # Linker > SET(CMAKE_CXX_LINK_EXECUTABLE "c:/progra~1/dignus/linkit.bat") > SET(CMAKE_C_LINK_EXECUTABLE "c:/progra~1/dignus/linkit.bat")
These two variables should contain the full command to link an executable, not only the actual tool, see e.g. Modules/Platform/eCos.cmake for an example with a quite custom link command or Modules/CMakeCInformation.cmake for the default settings > INCLUDE (CMakeForceCompiler) > CMAKE_FORCE_C_COMPILER (c:/progra~1/dignus/cc.bat Dignus) > CMAKE_FORCE_CXX_COMPILER (c:/progra~1/dignus/cxx.bat Dignus) > ------------------------------------------------------------ > > (I'm actually likely to change all "ZOS" to "DIGNUS", since it's really not > specific to z/OS, but rather to System z -- but that's for later.) Well, the initial tests for the compiler should work without the CMakeForceCompiler stuff. If this works, then CMakeC[XX]CompilerId.c.in cmake should be able to detect that it's the Dignus compiler, and set CMAKE_C_COMPILER_ID to "Dignus". Once this is works, it then tries to load Modules/Platform/ZOS-Dignus-C.cmake (and ZOS-Dignus-CXX.cmake). These files should then contain the settings which are specific for that combination of operating system, and compiler. E.g CMAKE_C_LINK_EXECUTABLE and maybe more. > CMAKE calls cc.bat correctly for CheckInclude and CheckTypeSizeC. But then > it calls linkit.bat with NO operands -- so linkit has no idea what it's > supposed to linkedit! What am I missing? See above. Alex _______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
