From 98b96f7700293433d0b8bed52b652ecf9e725084 Mon Sep 17 00:00:00 2001
From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
Date: Thu, 9 Mar 2006 14:41:21 -0500
Subject: [PATCH] ENH: Carefully turn testing of DynamicLib on

---
 CMakeLists.txt | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fb81d66..a403a6b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -426,11 +426,11 @@ ENDIF(KWSYS_USE_Glob)
 
 # Add selected C++ classes.
 SET(cppclasses Directory DynamicLoader Glob RegularExpression SystemTools CommandLineArguments Registry)
-FOREACH(c ${cppclasses})
-  IF(KWSYS_USE_${c})
-    SET(KWSYS_CLASSES ${KWSYS_CLASSES} ${c})
-  ENDIF(KWSYS_USE_${c})
-ENDFOREACH(c)
+FOREACH(cpp ${cppclasses})
+  IF(KWSYS_USE_${cpp})
+    SET(KWSYS_CLASSES ${KWSYS_CLASSES} ${cpp})
+  ENDIF(KWSYS_USE_${cpp})
+ENDFOREACH(cpp)
 
 # Add selected C components.
 FOREACH(c Process Base64 FundamentalType)
@@ -513,6 +513,13 @@ IF(KWSYS_C_SRCS OR KWSYS_CXX_SRCS)
   ADD_LIBRARY(${KWSYS_NAMESPACE} ${KWSYS_LIBRARY_TYPE}
     ${KWSYS_C_SRCS} ${KWSYS_CXX_SRCS})
 
+  # If kwsys contains the DynamicLoader, need extra library
+  IF(KWSYS_USE_DynamicLoader)
+    IF(UNIX)
+      TARGET_LINK_LIBRARIES(${KWSYS_NAMESPACE} dl)
+    ENDIF(UNIX)
+  ENDIF(KWSYS_USE_DynamicLoader)
+
   # Apply user-defined target properties to the library.
   IF(KWSYS_PROPERTIES_CXX)
     SET_TARGET_PROPERTIES(${KWSYS_NAMESPACE} PROPERTIES
@@ -602,12 +609,18 @@ ENDIF(KWSYS_USE_Process)
 IF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
   IF(BUILD_TESTING)
     # C++ tests
+    IF(KWSYS_USE_DynamicLoader)
+      SET(EXTRA_TESTS
+        testDynamicLoader
+        )
+    ENDIF(KWSYS_USE_DynamicLoader)
     FOREACH(test
         testSystemTools
         testIOS
         testHashSTL
         testCommandLineArguments
         testRegistry
+        ${EXTRA_TESTS}
         )
       ADD_EXECUTABLE(${test} ${test}.cxx)
       TARGET_LINK_LIBRARIES(${test} ${KWSYS_NAMESPACE})
@@ -629,7 +642,7 @@ IF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
 
     SET(TEST_SYSTEMTOOLS_BIN_FILE
       "${CMAKE_CURRENT_SOURCE_DIR}/testSystemTools.bin")
-    SET(TEST_SYSTEMTOOLS_SRC_FILE 
+    SET(TEST_SYSTEMTOOLS_SRC_FILE
       "${CMAKE_CURRENT_SOURCE_DIR}/testSystemTools.cxx")
     CONFIGURE_FILE(
       ${PROJECT_SOURCE_DIR}/testSystemTools.h.in
@@ -642,6 +655,9 @@ IF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
       SET_DIRECTORY_PROPERTIES(PROPERTIES TEST_INCLUDE_FILE "${CMAKE_CURRENT_BINARY_DIR}/ExtraTest.cmake")
     ENDIF(CTEST_TEST_KWSYS)
     ADD_TEST(kwsys.testSystemTools ${EXEC_DIR}/testSystemTools)
+    IF(KWSYS_USE_DynamicLoader)
+      ADD_TEST(kwsys.testDynamicLoader ${EXEC_DIR}/testDynamicLoader)
+    ENDIF(KWSYS_USE_DynamicLoader)
     ADD_TEST(kwsys.testProcess-1 ${EXEC_DIR}/testProcess 1)
     ADD_TEST(kwsys.testProcess-2 ${EXEC_DIR}/testProcess 2)
     ADD_TEST(kwsys.testProcess-3 ${EXEC_DIR}/testProcess 3)
-- 
GitLab