summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorChuck Atkins <chuck.atkins@kitware.com>2015-12-18 15:27:55 (GMT)
committerChuck Atkins <chuck.atkins@kitware.com>2015-12-18 15:27:55 (GMT)
commit928d2085d8ebeadc498e9e9f884b8adabf3346c3 (patch)
tree8fa1f4b0c4a47d3c79245cbf763bb7ac81bd616a /Modules
parent614c8a1c920083c3ae76ff035168f7096db6c510 (diff)
downloadCMake-928d2085d8ebeadc498e9e9f884b8adabf3346c3.zip
CMake-928d2085d8ebeadc498e9e9f884b8adabf3346c3.tar.gz
CMake-928d2085d8ebeadc498e9e9f884b8adabf3346c3.tar.bz2
CrayPrgEnv: Don't use absolute paths for imlicit libraries
When parsing implicit include dirs, link dirs, and link libs, all arguments are resolved to absolute paths instead of relative paths. This is correct for link and include directories but link libraries should only include the library name, not it's path.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/Compiler/CrayPrgEnv.cmake17
1 files changed, 11 insertions, 6 deletions
diff --git a/Modules/Compiler/CrayPrgEnv.cmake b/Modules/Compiler/CrayPrgEnv.cmake
index c3e7b73..61daa0f 100644
--- a/Modules/Compiler/CrayPrgEnv.cmake
+++ b/Modules/Compiler/CrayPrgEnv.cmake
@@ -4,12 +4,14 @@ if(__craylinux_crayprgenv)
endif()
set(__craylinux_crayprgenv 1)
-macro(__cray_extract_args cmd tag_regex out_var)
+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}")
- get_filename_component(param_abs "${param}" ABSOLUTE)
- list(APPEND ${out_var} ${param_abs})
+ if(make_absolute)
+ get_filename_component(param "${param}" ABSOLUTE)
+ endif()
+ list(APPEND ${out_var} ${param})
endforeach()
endmacro()
@@ -21,15 +23,18 @@ function(__cray_extract_implicit src compiler_cmd link_cmd lang include_dirs_var
OUTPUT_VARIABLE output
ERROR_VARIABLE error
)
+ 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)
+ __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)
- __cray_extract_args("${line}" " -(l ?)([^ ]*)" link_libs)
+ __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)