Intel.cmake 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file Copyright.txt or https://cmake.org/licensing for details.
  3. # This module is shared by multiple languages; use include blocker.
  4. if(__COMPILER_INTEL)
  5. return()
  6. endif()
  7. set(__COMPILER_INTEL 1)
  8. include(Compiler/CMakeCommonCompilerMacros)
  9. if(CMAKE_HOST_WIN32)
  10. # MSVC-like
  11. macro(__compiler_intel lang)
  12. set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror-all")
  13. endmacro()
  14. else()
  15. # GNU-like
  16. macro(__compiler_intel lang)
  17. set(CMAKE_${lang}_VERBOSE_FLAG "-v")
  18. string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
  19. string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g")
  20. string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os")
  21. string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3")
  22. string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
  23. set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror-all")
  24. set(CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "${CMAKE_${lang}_COMPILER}")
  25. if(CMAKE_${lang}_COMPILER_ARG1)
  26. separate_arguments(_COMPILER_ARGS NATIVE_COMMAND "${CMAKE_${lang}_COMPILER_ARG1}")
  27. list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND ${_COMPILER_ARGS})
  28. unset(_COMPILER_ARGS)
  29. endif()
  30. list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-QdM" "-P" "-Za" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
  31. if(NOT "x${lang}" STREQUAL "xFortran")
  32. # Precompile Headers
  33. set(CMAKE_PCH_EXTENSION .pchi)
  34. set(CMAKE_LINK_PCH ON)
  35. set(CMAKE_PCH_EPILOGUE "#pragma hdrstop")
  36. set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
  37. set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Wno-pch-messages -pch-use <PCH_FILE> -include <PCH_HEADER>)
  38. set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Wno-pch-messages -pch-create <PCH_FILE> -include <PCH_HEADER>)
  39. endif()
  40. endmacro()
  41. endif()