Просмотр исходного кода

Merge branch 'gcc-zdefs-flag'

* gcc-zdefs-flag:
  Switch to MinGW compatible "--no-undefined" flag instead of -z defs
  Add linker flag zdefs - Unavailable symbol at link time trigger an error
Sascha Zelzer лет назад: 14
Родитель
Сommit
83a65a24f0
2 измененных файлов с 13 добавлено и 1 удалено
  1. 1 1
      CMakeLists.txt
  2. 12 0
      Utilities/CMake/FindDCMTK.cmake

+ 1 - 1
CMakeLists.txt

@@ -273,7 +273,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
   ENDIF()
   
   SET(CTK_C_FLAGS "${cflags} ${CTK_C_FLAGS}")
-  SET(CTK_CXX_FLAGS "${cflags} -Woverloaded-virtual -Wold-style-cast -Wstrict-null-sentinel -Wsign-promo ${CTK_CXX_FLAGS}")
+  SET(CTK_CXX_FLAGS "${cflags} -Wl,--no-undefined -Woverloaded-virtual -Wold-style-cast -Wstrict-null-sentinel -Wsign-promo ${CTK_CXX_FLAGS}")
 ENDIF()
 
 IF(MSVC)

+ 12 - 0
Utilities/CMake/FindDCMTK.cmake

@@ -86,6 +86,8 @@ FIND_LIBRARY( DCMTK_oflog_LIBRARY oflog
   NO_DEFAULT_PATH
 )
 
+
+
 FIND_PATH( DCMTK_dcmdata_INCLUDE_DIR dctypes.h
   PATHS
     ${DCMTK_DIR}/include/dcmdata
@@ -232,6 +234,15 @@ IF( DCMTK_config_INCLUDE_DIR
 #                           "On Ubuntu, you could install it using 'sudo apt-get libwrap0'")
 #     ENDIF()
 #   ENDIF()
+
+  SET(CMAKE_THREAD_LIBS_INIT)
+  IF(DCMTK_oflog_LIBRARY)
+    # Hack - Not having a DCMTKConfig.cmake file to read the settings from, we will attempt to 
+    # find the library in all cases.
+    # Ideally, pthread library should be discovered only if DCMTK_WITH_THREADS is enabled.
+    SET(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+    FIND_PACKAGE(Threads)
+  ENDIF()
   
   SET( DCMTK_FOUND "YES" )
   SET( DCMTK_INCLUDE_DIR
@@ -256,6 +267,7 @@ IF( DCMTK_config_INCLUDE_DIR
     ${DCMTK_oflog_LIBRARY}    
     ${DCMTK_ofstd_LIBRARY}
     ${DCMTK_config_LIBRARY}
+    ${CMAKE_THREAD_LIBS_INIT}
   )
 
   IF(DCMTK_imagedb_LIBRARY)