SunPro-CXX.cmake 2.2 KB

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