123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- if(__cmake_craype_crayprgenv)
- return()
- endif()
- set(__cmake_craype_crayprgenv 1)
- cmake_policy(PUSH)
- cmake_policy(SET CMP0057 NEW)
- function(__cmake_craype_setupenv)
- if(NOT DEFINED __cmake_craype_setupenv_done)
- set(__cmake_craype_setupenv_done 1 PARENT_SCOPE)
- unset(__cmake_check)
- set(CMAKE_CRAYPE_LINKTYPE "$ENV{CRAYPE_LINK_TYPE}" CACHE STRING
- "saved value of CRAYPE_LINK_TYPE environment variable")
- set(CMAKE_CRAYPE_LOADEDMODULES "$ENV{LOADEDMODULES}" CACHE STRING
- "saved value of LOADEDMODULES environment variable")
- mark_as_advanced(CMAKE_CRAYPE_LINKTYPE CMAKE_CRAYPE_LOADEDMODULES)
- if (NOT "${CMAKE_CRAYPE_LINKTYPE}" STREQUAL "$ENV{CRAYPE_LINK_TYPE}")
- string(APPEND __cmake_check "CRAYPE_LINK_TYPE ")
- endif()
- if (NOT "${CMAKE_CRAYPE_LOADEDMODULES}" STREQUAL "$ENV{LOADEDMODULES}")
- string(APPEND __cmake_check "LOADEDMODULES ")
- endif()
- if(DEFINED __cmake_check)
- message(STATUS "NOTE: ${__cmake_check}changed since initial config!")
- message(STATUS "NOTE: this may cause unexpected build errors.")
- endif()
-
- foreach(pkgcfgvar PKG_CONFIG_PATH PKG_CONFIG_PATH_DEFAULT
- PE_PKG_CONFIG_PATH)
- file(TO_CMAKE_PATH "$ENV{${pkgcfgvar}}" pkgcfg)
- foreach(path ${pkgcfg})
- string(REGEX REPLACE "(.*)/lib[^/]*/pkgconfig$" "\\1" path "${path}")
- if(NOT "${path}" STREQUAL "" AND
- NOT "${path}" IN_LIST CMAKE_SYSTEM_PREFIX_PATH)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH "${path}")
- endif()
- endforeach()
- endforeach()
-
- set(CMAKE_SYSTEM_PREFIX_PATH "${CMAKE_SYSTEM_PREFIX_PATH}" PARENT_SCOPE)
- endif()
- endfunction()
- function(__cmake_craype_linktype lang rv)
-
- if(("$ENV{CRAYPE_VERSION}" STREQUAL "") OR
- ("$ENV{CRAYPE_VERSION}" VERSION_LESS "2.6"))
- if("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic")
- set(linktype dynamic)
- else()
- set(linktype static)
- endif()
- else()
- if("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "static")
- set(linktype static)
- else()
- set(linktype dynamic)
- endif()
- endif()
-
- set(linkflags "${CMAKE_${lang}_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
- string(REPLACE " " ";" linkflags "${linkflags}")
- foreach(flag IN LISTS linkflags)
- if("${flag}" STREQUAL "-dynamic")
- set(linktype dynamic)
- elseif("${flag}" STREQUAL "-static")
- set(linktype static)
- endif()
- endforeach()
- set(${rv} ${linktype} PARENT_SCOPE)
- endfunction()
- macro(__CrayPrgEnv_setup lang)
- if(DEFINED ENV{CRAYPE_VERSION})
- message(STATUS "Cray Programming Environment $ENV{CRAYPE_VERSION} ${lang}")
- elseif(DEFINED ENV{ASYNCPE_VERSION})
- message(STATUS "Cray XT Programming Environment $ENV{ASYNCPE_VERSION} ${lang}")
- else()
- message(STATUS "Cray Programming Environment (unknown version) ${lang}")
- endif()
-
- __cmake_craype_setupenv()
-
- set(CMAKE_STATIC_LIBRARY_LINK_${lang}_FLAGS "-static")
- set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
- set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-dynamic")
-
- __cmake_craype_linktype(${lang} __cmake_craype_${lang}_linktype)
-
- if("${__cmake_craype_${lang}_linktype}" STREQUAL "static")
- set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
- set(BUILD_SHARED_LIBS FALSE CACHE BOOL "")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
- set(CMAKE_LINK_SEARCH_START_STATIC TRUE)
- endif()
- endmacro()
- cmake_policy(POP)
|