Windows-cl.cmake 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:")
  2. SET(CMAKE_LINK_LIBRARY_FLAG "")
  3. SET(CMAKE_START_TEMP_FILE "@<<\n")
  4. SET(CMAKE_END_TEMP_FILE "\n<<")
  5. # uncomment these out to debug makefiles
  6. #SET(CMAKE_START_TEMP_FILE "")
  7. #SET(CMAKE_END_TEMP_FILE "")
  8. #SET(CMAKE_VERBOSE_MAKEFILE 1)
  9. # create a shared C++ library
  10. SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
  11. "link /nologo ${CMAKE_START_TEMP_FILE} /out:<TARGET> /dll <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
  12. SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
  13. # create a C shared library
  14. SET(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
  15. # create a C shared module just copy the shared library rule
  16. SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY})
  17. # create a C++ static library
  18. SET(CMAKE_CXX_CREATE_STATIC_LIBRARY "lib /nologo <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
  19. # create a C static library
  20. SET(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY})
  21. # compile a C++ file into an object file
  22. SET(CMAKE_CXX_COMPILE_OBJECT
  23. "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} /nologo /TP -DWIN32 /Fo<OBJECT> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
  24. # compile a C file into an object file
  25. SET(CMAKE_C_COMPILE_OBJECT
  26. "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} /nologo -DWIN32 /Fo<OBJECT> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
  27. SET(CMAKE_C_LINK_EXECUTABLE
  28. "<CMAKE_C_COMPILER> /nologo ${CMAKE_START_TEMP_FILE} <FLAGS> <OBJECTS> /Fe<TARGET> -link <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
  29. SET(CMAKE_COMPILE_RESOURCE "rc <FLAGS> /fo<OBJECT> <SOURCE>")
  30. SET(CMAKE_CXX_LINK_EXECUTABLE
  31. "<CMAKE_CXX_COMPILER> /nologo ${CMAKE_START_TEMP_FILE} <FLAGS> <OBJECTS> /Fe<TARGET> -link <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
  32. SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows)
  33. SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console)
  34. # default to Debug builds
  35. SET(CMAKE_BUILD_TYPE_INIT Debug)
  36. SET (CMAKE_CXX_FLAGS_INIT "/W3 /Zm1000 /GX /GR")
  37. SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/MDd /Zi /Od /GZ")
  38. SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MD /O1")
  39. SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MD /O2")
  40. SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2")
  41. SET (CMAKE_C_FLAGS_INIT "/W3 /Zm1000")
  42. SET (CMAKE_C_FLAGS_DEBUG_INIT "/MDd /Zi /Od /GZ")
  43. SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MD /O1")
  44. SET (CMAKE_C_FLAGS_RELEASE_INIT "/MD /O2")
  45. SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2")
  46. SET (CMAKE_STANDARD_LIBRARIES "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib" CACHE STRING
  47. "Libraries linked by defalut with all applications.")
  48. MARK_AS_ADVANCED(CMAKE_STANDARD_LIBRARIES)
  49. IF(CMAKE_GENERATOR MATCHES "Visual Studio 6")
  50. SET (CMAKE_NO_BUILD_TYPE 1)
  51. ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6")
  52. IF(CMAKE_GENERATOR MATCHES "Visual Studio 7")
  53. SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING
  54. "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.")
  55. SET (CMAKE_CXX_WARNING_LEVEL "3" CACHE STRING
  56. "Size of stack for programs.")
  57. SET (CMAKE_CXX_STACK_SIZE "10000000" CACHE STRING
  58. "Size of stack for programs.")
  59. MARK_AS_ADVANCED(CMAKE_CONFIGURATION_TYPES CMAKE_CXX_STACK_SIZE CMAKE_CXX_WARNING_LEVEL)
  60. SET (CMAKE_NOT_USING_CONFIG_FLAGS 1)
  61. ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7")
  62. # does the compiler support pdbtype
  63. SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 1)
  64. IF(CMAKE_GENERATOR MATCHES "NMake Makefiles")
  65. EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
  66. ARGS /nologo -EP ${CMAKE_ROOT}/Modules/CMakeTestNMakeCLVersion.c
  67. OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT
  68. RETURN_VALUE CMAKE_COMPILER_RETURN
  69. )
  70. IF(NOT CMAKE_COMPILER_RETURN)
  71. IF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*VERSION=1[3-9][0-9][0-9].*" )
  72. SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 0)
  73. ENDIF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*VERSION=1[3-9][0-9][0-9].*" )
  74. ENDIF(NOT CMAKE_COMPILER_RETURN)
  75. ENDIF(CMAKE_GENERATOR MATCHES "NMake Makefiles")
  76. # executable linker flags
  77. SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
  78. SET (CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /machine:I386 /INCREMENTAL:YES")
  79. IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
  80. SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept")
  81. SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept")
  82. ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
  83. SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug")
  84. SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug")
  85. ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
  86. SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
  87. SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
  88. SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
  89. SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS})
  90. SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_MODULE_LINKER_FLAGS_DEBUG})
  91. SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})