]> Creatis software - gdcm.git/blobdiff - CMakeLists.txt
Remove useless accesses to the Dicom Dictionnary std::map
[gdcm.git] / CMakeLists.txt
index 316955d5894d2e7ec977dd96a769577ae18e1a7b..47d3d3ffd5f10e26fa18dc0652d3add0ab9bf2ef 100644 (file)
@@ -1,12 +1,13 @@
 PROJECT(GDCM)
 CMAKE_MINIMUM_REQUIRED(VERSION 2.0)
 # okay in fact you need at least cmake 2.0.4 to get swig working properly
+# and you cannot use cmake 2.0.6 out of the box due to a bug (patched in debian package)
 
 #-----------------------------------------------------------------------------
 # GDCM version number, usefull for packaging and doxygen doc:
 SET(GDCM_MAJOR_VERSION 1)
-SET(GDCM_MINOR_VERSION 2)
-SET(GDCM_BUILD_VERSION 0)
+SET(GDCM_MINOR_VERSION 3)
+SET(GDCM_BUILD_VERSION 1)
 SET(GDCM_VERSION 
     "${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}.${GDCM_BUILD_VERSION}")
 
@@ -24,8 +25,7 @@ MARK_AS_ADVANCED(GDCM_LEGACY_REMOVE GDCM_LEGACY_SILENT)
 
 #-----------------------------------------------------------------------------
 # Build shared lib by default
-OPTION(GDCM_BUILD_SHARED_LIBS "Build GDCM with shared libraries." ON)
-SET(BUILD_SHARED_LIBS ${GDCM_BUILD_SHARED_LIBS})
+OPTION(BUILD_SHARED_LIBS "Build GDCM with shared libraries." ON)
 
 OPTION(GDCM_DEBUG "Turn verbosity of some statement ON." OFF)
 MARK_AS_ADVANCED(GDCM_DEBUG)
@@ -87,6 +87,26 @@ IF("GDCM_COMPILER_HAS_FUNCTION" MATCHES "^GDCM_COMPILER_HAS_FUNCTION$")
   ENDIF(GDCM_COMPILER_HAS_FUNCTION)
 ENDIF("GDCM_COMPILER_HAS_FUNCTION" MATCHES "^GDCM_COMPILER_HAS_FUNCTION$")
 
+#-----------------------------------------------------------------------------
+# Test is compiler support istringstream
+IF("GDCM_TEST_ISTRINGSTREAM" MATCHES "^GDCM_TEST_ISTRINGSTREAM$")
+  MESSAGE(STATUS "Checking istringstream")
+  TRY_RUN(GDCM_TEST_ISTRINGSTREAM GDCM_TEST_ISTRINGSTREAM_COMPILED
+          ${GDCM_BINARY_DIR}/CMakeTmp/
+          ${GDCM_SOURCE_DIR}/CMake/gdcmTestIstringStream.cxx)
+  IF(GDCM_TEST_ISTRINGSTREAM_COMPILED)
+    IF(GDCM_TEST_ISTRINGSTREAM)
+      MESSAGE(STATUS "Checking istringstream works -- yes")
+      SET(GDCM_TEST_ISTRINGSTREAM 1 CACHE INTERNAL "Whether istringstream works.")
+    ELSE(GDCM_TEST_ISTRINGSTREAM)
+      MESSAGE(STATUS "Checking istringstream works -- no")
+      SET(GDCM_TEST_ISTRINGSTREAM 0 CACHE INTERNAL "Whether istringstream works.")
+    ENDIF(GDCM_TEST_ISTRINGSTREAM)
+  ELSE(GDCM_TEST_ISTRINGSTREAM_COMPILED)
+    MESSAGE(STATUS "Checking istringstream -- failed")
+  ENDIF(GDCM_TEST_ISTRINGSTREAM_COMPILED)
+ENDIF("GDCM_TEST_ISTRINGSTREAM" MATCHES "^GDCM_TEST_ISTRINGSTREAM$")
+
 #-----------------------------------------------------------------------------
 # Build directory on which many applications depend
 SUBDIRS(
@@ -132,8 +152,9 @@ CHECK_INCLUDE_FILE("stdint.h"       CMAKE_HAVE_STDINT_H)
 IF(UNIX) #Avoid polluting Win32 cmakecache
   CHECK_INCLUDE_FILE("inttypes.h"     CMAKE_HAVE_INTTYPES_H)
 ENDIF(UNIX)
-# Special JPR, don't know what he is doing...
+# Special Time support, two convention: *NIX vs Win32
 CHECK_INCLUDE_FILE("sys/times.h"     CMAKE_HAVE_SYS_TIMES_H)
+CHECK_INCLUDE_FILE("sys/timeb.h"     CMAKE_HAVE_SYS_TIMEB_H)
 
 # Check if header file exists and add it to the list.
 INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake)
@@ -160,7 +181,7 @@ IF(UNIX) #Avoid polluting Win32 cmakecache
 ENDIF(UNIX)
 
 #-----------------------------------------------------------------------------
-# Test if os defines a lenght for sockaddr
+# Test if os defines a length for sockaddr
 # only doing the test when we have sys/socket
 IF( ${CMAKE_HAVE_SYS_SOCKET_H} )
   IF("HAVE_SA_LEN" MATCHES "^HAVE_SA_LEN$")
@@ -168,7 +189,7 @@ IF( ${CMAKE_HAVE_SYS_SOCKET_H} )
     FILE(WRITE ${GDCM_BINARY_DIR}/CMakeTmp/gdcmTestHAVESALEN.c
       "${POUND}include <sys/types.h>\n"
       "${POUND}include <sys/socket.h>\n"
-      "int main() { struct sockaddr sa; sa.sa_len = 0; }")
+      "int main() { struct sockaddr sa; sa.sa_len = 0; }\n")
     MESSAGE(STATUS "Checking if ifreq has a sa_len")
     TRY_COMPILE(HAVE_SA_LEN
       ${GDCM_BINARY_DIR}