summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-02-23 15:34:28 (GMT)
committerBrad King <brad.king@kitware.com>2011-02-23 16:05:14 (GMT)
commit6c4b2492728cd3fab60bf11feafe3361f02c08c9 (patch)
treebe0254edf1230d041fe58abdc1633251ba1bc407
parent761621645c8605252eea9d3a0d171edc46a529c5 (diff)
downloadCMake-6c4b2492728cd3fab60bf11feafe3361f02c08c9.zip
CMake-6c4b2492728cd3fab60bf11feafe3361f02c08c9.tar.gz
CMake-6c4b2492728cd3fab60bf11feafe3361f02c08c9.tar.bz2
Fix Fortran test .def file symbol mangling
Commit 6a61a8a5 (Honor module .def files with MinGW tools, 2011-02-21) enabled use of .def files with GNU tools on Windows. Previously the Fortran tests's world.def file was used only for the Intel Fortran Compiler on Windows and contained the symbol name mangled for that compiler. Instead choose a .def file that names the symbol with proper mangling for the compiler in use.
-rw-r--r--Tests/Fortran/CMakeLists.txt13
-rw-r--r--Tests/Fortran/world_gnu.def2
-rw-r--r--Tests/Fortran/world_icl.def (renamed from Tests/Fortran/world.def)0
3 files changed, 14 insertions, 1 deletions
diff --git a/Tests/Fortran/CMakeLists.txt b/Tests/Fortran/CMakeLists.txt
index 04563ef..c68d543 100644
--- a/Tests/Fortran/CMakeLists.txt
+++ b/Tests/Fortran/CMakeLists.txt
@@ -22,8 +22,19 @@ elseif("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU")
endif()
endif()
+# Pick a module .def file with the properly mangled symbol name.
+set(world_def "")
+if(WIN32 AND NOT CYGWIN)
+ if("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
+ set(world_def world_gnu.def)
+ elseif("${CMAKE_Fortran_COMPILER_ID}" MATCHES "Intel" OR
+ "${CMAKE_GENERATOR}" MATCHES "Visual Studio") # Intel plugin
+ set(world_def world_icl.def)
+ endif()
+endif()
+
add_library(hello STATIC hello.f)
-add_library(world ${_SHARED} world.f world.def)
+add_library(world ${_SHARED} world.f ${world_def})
add_executable(testf testf.f)
target_link_libraries(testf hello world)
diff --git a/Tests/Fortran/world_gnu.def b/Tests/Fortran/world_gnu.def
new file mode 100644
index 0000000..1617798
--- /dev/null
+++ b/Tests/Fortran/world_gnu.def
@@ -0,0 +1,2 @@
+EXPORTS
+ world_
diff --git a/Tests/Fortran/world.def b/Tests/Fortran/world_icl.def
index ead7710..ead7710 100644
--- a/Tests/Fortran/world.def
+++ b/Tests/Fortran/world_icl.def