diff options
author | Alexander Neundorf <neundorf@kde.org> | 2007-05-21 14:15:42 (GMT) |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2007-05-21 14:15:42 (GMT) |
commit | 3b4aa3bf3581dc81fbdd307b9ed432a8a306a514 (patch) | |
tree | e05b2dfe3fe0083091afaeb93adfc0ed78a957af | |
parent | a7a1e40afadc4e464053da7b604ed707889919d3 (diff) | |
download | CMake-3b4aa3bf3581dc81fbdd307b9ed432a8a306a514.zip CMake-3b4aa3bf3581dc81fbdd307b9ed432a8a306a514.tar.gz CMake-3b4aa3bf3581dc81fbdd307b9ed432a8a306a514.tar.bz2 |
BUG: always search for ar, ranlib, etc. except under MSVC -> this should fix the mingw fortran test
-also generate the fortran test with the kdevelop generator
Alex
-rw-r--r-- | Modules/CMakeFindBinUtils.cmake | 32 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 6 |
2 files changed, 22 insertions, 16 deletions
diff --git a/Modules/CMakeFindBinUtils.cmake b/Modules/CMakeFindBinUtils.cmake index 8eb1fa2..0527397 100644 --- a/Modules/CMakeFindBinUtils.cmake +++ b/Modules/CMakeFindBinUtils.cmake @@ -15,7 +15,22 @@ # CMAKE_INSTALL_NAME_TOOL # on UNIX, cygwin and mingw -IF(UNIX OR CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + + +# if it's the MS C/CXX compiler, search for link +IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC") + FIND_PROGRAM(CMAKE_LINKER NAMES link PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) + FIND_PROGRAM(CMAKE_LINKER NAMES link) + + IF(NOT CMAKE_LINKER) + MESSAGE(FATAL_ERROR "Could not find link, please check your installation.") + ENDIF(NOT CMAKE_LINKER) + + MARK_AS_ADVANCED(CMAKE_LINKER) + +# in all other cases search for ar, ranlib, etc. +ELSE("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC") + FIND_PROGRAM(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) FIND_PROGRAM(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar) @@ -32,9 +47,10 @@ IF(UNIX OR CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) FIND_PROGRAM(CMAKE_LINKER NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ld) MARK_AS_ADVANCED(CMAKE_AR CMAKE_RANLIB CMAKE_STRIP CMAKE_LINKER) +ENDIF("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC") -ENDIF(UNIX OR CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) +# on Apple there really should be install_name_tool IF(APPLE) FIND_PROGRAM(CMAKE_INSTALL_NAME_TOOL NAMES install_name_tool PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) FIND_PROGRAM(CMAKE_INSTALL_NAME_TOOL NAMES install_name_tool) @@ -46,15 +62,3 @@ IF(APPLE) MARK_AS_ADVANCED(CMAKE_INSTALL_NAME_TOOL) ENDIF(APPLE) -IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC") - FIND_PROGRAM(CMAKE_LINKER NAMES link PATHS ${_CMAKE_TOOLCHAIN_LOCATION} NO_DEFAULT_PATH) - FIND_PROGRAM(CMAKE_LINKER NAMES link) - - IF(NOT CMAKE_LINKER) - MESSAGE(FATAL_ERROR "Could not find link, please check your installation.") - ENDIF(NOT CMAKE_LINKER) - - MARK_AS_ADVANCED(CMAKE_LINKER) -ENDIF("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC") - -# maybe check for more tools ? diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 59f5c08..8b6fb87 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -670,7 +670,8 @@ IF(BUILD_TESTING) # fortran does not work for IDE builds because # CMAKE_STANDARD_LIBRARIES needs to be per language - IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles") + IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" + OR CMAKE_TEST_GENERATOR MATCHES "KDevelop") # see if we can find a fortran compiler on the machine # if so, add the fortran test and see if it works. SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95 @@ -690,7 +691,8 @@ IF(BUILD_TESTING) --build-two-config --test-command testf) ENDIF(CMAKE_Fortran_COMPILER_FULLPATH) - ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles") + ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" + OR CMAKE_TEST_GENERATOR MATCHES "KDevelop") IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode") INCLUDE(FindJava) IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW) |