Windows-IntelLLVM-Fortran.cmake 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. include(Platform/Windows-IntelLLVM)
  2. set(CMAKE_BUILD_TYPE_INIT Debug)
  3. set(_COMPILE_Fortran " /fpp")
  4. set(CMAKE_Fortran_MODDIR_FLAG "-module:")
  5. set(CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib")
  6. __windows_compiler_intel(Fortran)
  7. if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
  8. set(_LIBSDLL "")
  9. set(_DBGLIBS "")
  10. set(_THREADS "")
  11. else()
  12. set(_LIBSDLL " /libs:dll")
  13. set(_DBGLIBS " /dbglibs")
  14. set(_THREADS " /threads")
  15. endif()
  16. cmake_policy(GET CMP0092 _cmp0092)
  17. if(NOT _cmp0092 STREQUAL "NEW")
  18. string(APPEND CMAKE_Fortran_FLAGS_INIT " /W1")
  19. endif()
  20. unset(_cmp0092)
  21. string(APPEND CMAKE_Fortran_FLAGS_INIT " /nologo /fpp${_LIBSDLL}${_THREADS}")
  22. string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " /Od /debug:full${_DBGLIBS}")
  23. string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " /O1 /DNDEBUG")
  24. string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " /O2 /DNDEBUG")
  25. string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT " /O2 /debug:full /DNDEBUG")
  26. unset(_LIBSDLL)
  27. unset(_DBGLIBS)
  28. unset(_THREADS)
  29. # icx accepts -RTC* flags but ignores them. ifx accepts -RTCu only.
  30. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_CHECKS_PossibleDataLoss "")
  31. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_CHECKS_StackFrameErrorCheck "")
  32. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_CHECKS_UninitializedVariable -RTCu)
  33. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_CHECKS_RTCsu "")
  34. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -threads -libs:static)
  35. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -threads -libs:dll)
  36. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -threads -libs:static -dbglibs)
  37. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -threads -libs:dll -dbglibs)
  38. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_Embedded -Z7)
  39. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_ProgramDatabase -Zi)
  40. # Intel Fortran for Windows supports single-threaded RTL but it is
  41. # not implemented by the Visual Studio integration.
  42. if(NOT CMAKE_GENERATOR MATCHES "Visual Studio")
  43. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_SingleThreaded -libs:static)
  44. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_SingleThreadedDLL -libs:dll)
  45. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_SingleThreadedDebug -libs:static -dbglibs)
  46. set(CMAKE_Fortran_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_SingleThreadedDebugDLL -libs:dll -dbglibs)
  47. endif()