diff options
Diffstat (limited to 'share/cmake-3.6/Modules/Compiler/CrayPrgEnv.cmake')
-rw-r--r-- | share/cmake-3.6/Modules/Compiler/CrayPrgEnv.cmake | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/share/cmake-3.6/Modules/Compiler/CrayPrgEnv.cmake b/share/cmake-3.6/Modules/Compiler/CrayPrgEnv.cmake deleted file mode 100644 index fa39b00..0000000 --- a/share/cmake-3.6/Modules/Compiler/CrayPrgEnv.cmake +++ /dev/null @@ -1,91 +0,0 @@ -# Guard against multiple inclusions -if(__craylinux_crayprgenv) - return() -endif() -set(__craylinux_crayprgenv 1) - -macro(__cray_extract_args cmd tag_regex out_var make_absolute) - string(REGEX MATCHALL "${tag_regex}" args "${cmd}") - foreach(arg IN LISTS args) - string(REGEX REPLACE "^${tag_regex}$" "\\2" param "${arg}") - if(make_absolute) - get_filename_component(param "${param}" ABSOLUTE) - endif() - list(APPEND ${out_var} ${param}) - endforeach() -endmacro() - -function(__cray_extract_implicit src compiler_cmd link_cmd lang include_dirs_var link_dirs_var link_libs_var) - set(BIN "${CMAKE_PLATFORM_INFO_DIR}/CrayExtractImplicit_${lang}.bin") - execute_process( - COMMAND ${CMAKE_${lang}_COMPILER} ${CMAKE_${lang}_VERBOSE_FLAG} -o ${BIN} - RESULT_VARIABLE result - OUTPUT_VARIABLE output - ERROR_VARIABLE error - ) - if(EXISTS "${BIN}") - file(REMOVE "${BIN}") - endif() - set(include_dirs) - set(link_dirs) - set(link_libs) - string(REGEX REPLACE "\r?\n" ";" output_lines "${output}\n${error}") - foreach(line IN LISTS output_lines) - if("${line}" MATCHES "${compiler_cmd}") - __cray_extract_args("${line}" " -(I ?|isystem )([^ ]*)" include_dirs 1) - set(processed_include 1) - endif() - if("${line}" MATCHES "${link_cmd}") - __cray_extract_args("${line}" " -(L ?)([^ ]*)" link_dirs 1) - __cray_extract_args("${line}" " -(l ?)([^ ]*)" link_libs 0) - set(processed_link 1) - endif() - if(processed_include AND processed_link) - break() - endif() - endforeach() - - set(${include_dirs_var} "${include_dirs}" PARENT_SCOPE) - set(${link_dirs_var} "${link_dirs}" PARENT_SCOPE) - set(${link_libs_var} "${link_libs}" PARENT_SCOPE) - set(CRAY_${lang}_EXTRACTED_IMPLICIT 1 CACHE INTERNAL "" FORCE) -endfunction() - -macro(__CrayPrgEnv_setup lang test_src compiler_cmd link_cmd) - 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}") - endif() - - # Flags for the Cray wrappers - set(CMAKE_STATIC_LIBRARY_LINK_${lang}_FLAGS "-static") - set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "") - set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared") - set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-dynamic") - - # If the link type is not explicitly specified in the environment then - # the Cray wrappers assume that the code will be built staticly so - # we check the following condition(s) are NOT met - # Compiler flags are explicitly dynamic - # Env var is dynamic and compiler flags are not explicitly static - if(NOT (((CMAKE_${lang}_FLAGS MATCHES "(^| )-dynamic($| )") OR - (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-dynamic($| )")) - OR - (("$ENV{CRAYPE_LINK_TYPE}" STREQUAL "dynamic") AND - NOT ((CMAKE_${lang}_FLAGS MATCHES "(^| )-static($| )") OR - (CMAKE_EXE_LINKER_FLAGS MATCHES "(^| )-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() - if(NOT CRAY_${lang}_EXTRACTED_IMPLICIT) - __cray_extract_implicit( - ${test_src} ${compiler_cmd} ${link_cmd} ${lang} - CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES - CMAKE_${lang}_IMPLICIT_LINK_DIRECTORIES - CMAKE_${lang}_IMPLICIT_LINK_LIBRARIES - ) - endif() -endmacro() |