summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-09-14 17:59:23 (GMT)
committerBrad King <brad.king@kitware.com>2011-09-14 18:06:02 (GMT)
commit67fcc838d9e857de2697c2fbe34e40ac095973dc (patch)
tree5ac12c3aa4e4315aafd40a198a47cc4aaa477158 /Modules
parenta7ce26d837b1c6465c995519ee91e3e0d9190826 (diff)
downloadCMake-67fcc838d9e857de2697c2fbe34e40ac095973dc.zip
CMake-67fcc838d9e857de2697c2fbe34e40ac095973dc.tar.gz
CMake-67fcc838d9e857de2697c2fbe34e40ac095973dc.tar.bz2
Simplify IntelVSImplicitPath detection project
Use the ENV{LIB} variable directly instead of parsing the output of the whole environment from "set". Store the output in a .cmake script and include it from CMakeDetermineCompilerABI instead of using file(READ).
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CMakeDetermineCompilerABI.cmake5
-rw-r--r--Modules/IntelVSImplicitPath/CMakeLists.txt14
-rw-r--r--Modules/IntelVSImplicitPath/detect.cmake9
-rw-r--r--Modules/IntelVSImplicitPath/extract.cmake12
4 files changed, 15 insertions, 25 deletions
diff --git a/Modules/CMakeDetermineCompilerABI.cmake b/Modules/CMakeDetermineCompilerABI.cmake
index 6792b7a..a808a28 100644
--- a/Modules/CMakeDetermineCompilerABI.cmake
+++ b/Modules/CMakeDetermineCompilerABI.cmake
@@ -98,13 +98,10 @@ FUNCTION(CMAKE_DETERMINE_COMPILER_ABI lang src)
CMAKE_FLAGS
"-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}"
OUTPUT_VARIABLE _output)
- FILE(READ
- ${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath/implict_link.txt
- dir)
- LIST(APPEND implicit_dirs "${dir}")
FILE(WRITE
"${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath/output.txt"
"${_output}")
+ INCLUDE(${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath/output.cmake OPTIONAL)
SET(_desc "Determine Intel Fortran Compiler Implicit Link Path -- done")
MESSAGE(STATUS "${_desc}")
ENDIF()
diff --git a/Modules/IntelVSImplicitPath/CMakeLists.txt b/Modules/IntelVSImplicitPath/CMakeLists.txt
index e2a4b3f..96dc4e6 100644
--- a/Modules/IntelVSImplicitPath/CMakeLists.txt
+++ b/Modules/IntelVSImplicitPath/CMakeLists.txt
@@ -1,11 +1,7 @@
cmake_minimum_required (VERSION 2.8)
project(IntelFortranImplicit Fortran)
-add_custom_command(OUTPUT ${IntelFortranImplicit_BINARY_DIR}/env.txt
- COMMAND set > ${IntelFortranImplicit_BINARY_DIR}/env.txt)
-add_library(FortranLib hello.f
- ${IntelFortranImplicit_BINARY_DIR}/env.txt)
-add_custom_target(ExtractLibPath ALL
- COMMAND ${CMAKE_COMMAND} -P ${IntelFortranImplicit_SOURCE_DIR}/extract.cmake
- WORKING_DIRECTORY ${IntelFortranImplicit_BINARY_DIR}
-)
-add_dependencies(ExtractLibPath FortranLib)
+add_custom_command(
+ OUTPUT output.cmake
+ COMMAND ${CMAKE_COMMAND} -P ${IntelFortranImplicit_SOURCE_DIR}/detect.cmake
+ )
+add_library(FortranLib hello.f output.cmake)
diff --git a/Modules/IntelVSImplicitPath/detect.cmake b/Modules/IntelVSImplicitPath/detect.cmake
new file mode 100644
index 0000000..20753be
--- /dev/null
+++ b/Modules/IntelVSImplicitPath/detect.cmake
@@ -0,0 +1,9 @@
+# look at each path and try to find ifconsol.lib
+set(LIB "$ENV{LIB}")
+foreach(dir ${LIB})
+ file(TO_CMAKE_PATH "${dir}" dir)
+ if(EXISTS "${dir}/ifconsol.lib")
+ file(WRITE output.cmake "list(APPEND implicit_dirs \"${dir}\")\n")
+ break()
+ endif()
+endforeach()
diff --git a/Modules/IntelVSImplicitPath/extract.cmake b/Modules/IntelVSImplicitPath/extract.cmake
deleted file mode 100644
index 055247c..0000000
--- a/Modules/IntelVSImplicitPath/extract.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-file(STRINGS env.txt LIB REGEX "^LIB=.*$")
-string(REPLACE "LIB=" "" LIB "${LIB}" )
-# change LIB from a string to a ; separated list of paths
-set(LIB ${LIB})
-# look at each path and try to find ifconsol.lib
-foreach( dir ${LIB})
- file(TO_CMAKE_PATH "${dir}" dir)
- if(EXISTS "${dir}/ifconsol.lib")
- file(WRITE implict_link.txt ${dir})
- return()
- endif()
-endforeach()