SunPro-CXX.cmake 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. set(CMAKE_CXX_VERBOSE_FLAG "-v")
  2. set(CMAKE_CXX_COMPILE_OPTIONS_PIC -KPIC)
  3. set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-KPIC")
  4. set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-G")
  5. set(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-R")
  6. set(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":")
  7. set(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h")
  8. set(CMAKE_CXX_FLAGS_INIT "")
  9. set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
  10. set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG")
  11. set(CMAKE_CXX_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG")
  12. set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g -xO2 -DNDEBUG")
  13. # Initialize C link type selection flags. These flags are used when
  14. # building a shared library, shared module, or executable that links
  15. # to other libraries to select whether to use the static or shared
  16. # versions of the libraries.
  17. foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
  18. set(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Bstatic")
  19. set(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Bdynamic")
  20. endforeach()
  21. set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
  22. set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
  23. # Create archives with "CC -xar" in case user adds "-instances=extern"
  24. # so that template instantiations are available to archive members.
  25. set(CMAKE_CXX_CREATE_STATIC_LIBRARY
  26. "<CMAKE_CXX_COMPILER> -xar -o <TARGET> <OBJECTS> "
  27. "<CMAKE_RANLIB> <TARGET> ")
  28. if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)
  29. set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
  30. set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=c++11")
  31. endif()
  32. if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)
  33. if (NOT CMAKE_CXX_COMPILER_FORCED)
  34. if (NOT CMAKE_CXX_STANDARD_COMPUTED_DEFAULT)
  35. message(FATAL_ERROR "CMAKE_CXX_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) version ${CMAKE_CXX_COMPILER_VERSION}")
  36. endif()
  37. set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT})
  38. elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT)
  39. # Compiler id was forced so just guess the default standard level.
  40. set(CMAKE_CXX_STANDARD_DEFAULT 98)
  41. endif()
  42. endif()
  43. macro(cmake_record_cxx_compile_features)
  44. macro(_get_solaris_studio_features std_version list)
  45. record_compiler_features(CXX "${std_version}" ${list})
  46. endmacro()
  47. set(_result 0)
  48. if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)
  49. _get_solaris_studio_features(${CMAKE_CXX11_STANDARD_COMPILE_OPTION} CMAKE_CXX11_COMPILE_FEATURES)
  50. if (_result EQUAL 0)
  51. _get_solaris_studio_features("" CMAKE_CXX98_COMPILE_FEATURES)
  52. endif()
  53. endif()
  54. endmacro()