Windows-Intel.cmake 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #=============================================================================
  2. # Copyright 2002-2010 Kitware, Inc.
  3. #
  4. # Distributed under the OSI-approved BSD License (the "License");
  5. # see accompanying file Copyright.txt for details.
  6. #
  7. # This software is distributed WITHOUT ANY WARRANTY; without even the
  8. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  9. # See the License for more information.
  10. #=============================================================================
  11. # (To distribute this file outside of CMake, substitute the full
  12. # License text for the above reference.)
  13. # This module is shared by multiple languages; use include blocker.
  14. if(__WINDOWS_INTEL)
  15. return()
  16. endif()
  17. set(__WINDOWS_INTEL 1)
  18. # make sure to enable languages after setting configuration types
  19. ENABLE_LANGUAGE(RC)
  20. SET(CMAKE_COMPILE_RESOURCE "rc <FLAGS> /fo<OBJECT> <SOURCE>")
  21. SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:")
  22. SET(CMAKE_LINK_LIBRARY_FLAG "")
  23. SET(WIN32 1)
  24. IF(CMAKE_VERBOSE_MAKEFILE)
  25. SET(CMAKE_CL_NOLOGO)
  26. ELSE(CMAKE_VERBOSE_MAKEFILE)
  27. SET(CMAKE_CL_NOLOGO "/nologo")
  28. ENDIF(CMAKE_VERBOSE_MAKEFILE)
  29. SET(CMAKE_COMPILE_RESOURCE "rc <FLAGS> /fo<OBJECT> <SOURCE>")
  30. SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows)
  31. SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console)
  32. # default to Debug builds
  33. #SET(CMAKE_BUILD_TYPE_INIT Debug)
  34. SET(CMAKE_BUILD_TYPE_INIT Release)
  35. SET(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib")
  36. SET(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
  37. # executable linker flags
  38. SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
  39. IF(MSVC_C_ARCHITECTURE_ID)
  40. SET(_MACHINE_ARCH_FLAG "/machine:${MSVC_C_ARCHITECTURE_ID}")
  41. ELSEIF(MSVC_CXX_ARCHITECTURE_ID)
  42. SET(_MACHINE_ARCH_FLAG "/machine:${MSVC_CXX_ARCHITECTURE_ID}")
  43. ELSEIF(MSVC_Fortran_ARCHITECTURE_ID)
  44. SET(_MACHINE_ARCH_FLAG "/machine:${MSVC_Fortran_ARCHITECTURE_ID}")
  45. ENDIF()
  46. SET (CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:YES ${_MACHINE_ARCH_FLAG}")
  47. SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug")
  48. SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug")
  49. SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
  50. SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
  51. SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
  52. SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT})
  53. SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT})
  54. SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})
  55. INCLUDE("${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake" OPTIONAL)
  56. IF(NOT _INTEL_XILINK_TEST_RUN)
  57. EXECUTE_PROCESS(COMMAND xilink /?
  58. ERROR_VARIABLE _XILINK_ERR
  59. OUTPUT_VARIABLE _XILINK_HELP)
  60. IF(_XILINK_HELP MATCHES MANIFEST)
  61. SET(_INTEL_COMPILER_SUPPORTS_MANIFEST 1)
  62. ENDIF(_XILINK_HELP MATCHES MANIFEST)
  63. IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake")
  64. FILE(WRITE ${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake
  65. "
  66. SET(_INTEL_XILINK_TEST_RUN 1)
  67. SET(_INTEL_COMPILER_SUPPORTS_MANIFEST ${_INTEL_COMPILER_SUPPORTS_MANIFEST})
  68. ")
  69. ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake")
  70. ENDIF(NOT _INTEL_XILINK_TEST_RUN)
  71. macro(__windows_compiler_intel lang)
  72. set(CMAKE_${lang}_COMPILE_OBJECT
  73. "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} /Fo<OBJECT> <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
  74. set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
  75. "<CMAKE_${lang}_COMPILER> > <PREPROCESSED_SOURCE> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <FLAGS> -E <SOURCE>${CMAKE_END_TEMP_FILE}")
  76. set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
  77. set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
  78. set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
  79. "xilink ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
  80. set(CMAKE_${lang}_CREATE_SHARED_MODULE "${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
  81. set(CMAKE_${lang}_LINK_EXECUTABLE
  82. "<CMAKE_${lang}_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> <OBJECTS> /Fe<TARGET> -link /implib:<TARGET_IMPLIB> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
  83. set(CMAKE_${lang}_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000${_FLAGS_${lang}}")
  84. set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Od /GZ")
  85. set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/DNDEBUG /MD /O1")
  86. set(CMAKE_${lang}_FLAGS_RELEASE_INIT "/DNDEBUG /MD /O2")
  87. set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "/DNDEBUG /MD /Zi /O2")
  88. if(_INTEL_COMPILER_SUPPORTS_MANIFEST)
  89. SET(CMAKE_${lang}_LINK_EXECUTABLE
  90. "<CMAKE_COMMAND> -E vs_link_exe ${CMAKE_${lang}_LINK_EXECUTABLE}")
  91. SET(CMAKE_${lang}_CREATE_SHARED_LIBRARY
  92. "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
  93. SET(CMAKE_${lang}_CREATE_SHARED_MODULE
  94. "<CMAKE_COMMAND> -E vs_link_dll ${CMAKE_${lang}_CREATE_SHARED_MODULE}")
  95. endif()
  96. endmacro()