]> Creatis software - gdcm.git/commitdiff
* ENH: Update CMake stuff for accessing gdcm from CMake (4 third party lib)
authormalaterre <malaterre>
Fri, 14 Nov 2003 14:51:24 +0000 (14:51 +0000)
committermalaterre <malaterre>
Fri, 14 Nov 2003 14:51:24 +0000 (14:51 +0000)
* FIX: Compilation for SunOS + old gcc

CMakeLists.txt
gdcmConfig.cmake.in [new file with mode: 0644]
gdcmUse.cmake [new file with mode: 0644]
src/CMakeLists.txt
src/gdcmCommon.h

index afd1704532377114b0b38992efc4f4b79345108a..4433fd5f6c2732a7cddf18f4281ebedb8f4d5143 100644 (file)
@@ -95,11 +95,34 @@ ENDIF(GDCM_DOXYGEN)
 \r
 #-----------------------------------------------------------------------------\r
 # Configure files with settings for use by the build.\r
-\r
+# for third party to access gdcm through cmake\r
 # to be rewritten to include only the necessary\r
-#CONFIGURE_FILE(${GDCM_SOURCE_DIR}/UseGdcm.cmake.in \r
-#               ${GDCM_BINARY_DIR}/UseGdcm.cmake COPYONLY IMMEDIATE)\r
 \r
+CONFIGURE_FILE(\r
+  ${GDCM_SOURCE_DIR}/gdcmConfig.cmake.in \r
+  ${GDCM_BINARY_DIR}/gdcmConfig.cmake @ONLY IMMEDIATE\r
+  )\r
+\r
+# Export uor build settings and library\r
+# dependencies for the use by the user projects.\r
+INCLUDE(\r
+  ${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake)\r
+\r
+CMAKE_EXPORT_BUILD_SETTINGS(\r
+  ${GDCM_BINARY_DIR}/gdcmBuildSettings.cmake\r
+  )\r
+\r
+EXPORT_LIBRARY_DEPENDENCIES(\r
+  ${GDCM_BINARY_DIR}/gdcmLibraryDepends.cmake\r
+  )\r
+\r
+# Intall the âckaging files for use by FIND_PACKAGE(GDCM) in user projects.\r
+INSTALL_FILES(/lin/gdcm FILES\r
+  ${GDCM_SOURCE_DIR}/gdcmUse.cmake\r
+  ${GDCM_BINARY_DIR}/gdcmConfig.cmake\r
+  ${GDCM_BINARY_DIR}/gdcmBuildSettings.cmake\r
+  ${GDCM_BINARY_DIR}/gdcmLibraryDepends.cmake\r
+  )\r
 \r
 #-----------------------------------------------------------------------------\r
 # Copy / paste from old m4 script:\r
diff --git a/gdcmConfig.cmake.in b/gdcmConfig.cmake.in
new file mode 100644 (file)
index 0000000..a89e7c8
--- /dev/null
@@ -0,0 +1,34 @@
+# Tell the user project where to find our headers and libraries
+
+SET(GDCM_INCLUDE_DIRS
+  #"@CMAKE_INSTALL_PREFIX@/include"
+  "@GDCM_SOURCE_DIR@/src"
+  "@GDCM_SOURCE_DIR@/vtk"
+  )
+
+SET(GDCM_LIBRARY_DIRS 
+  #"@CMAKE_INSTALL_PREFIX@/lib"
+  "@GDCM_LIBRARY_PATH@"
+  )
+
+# Tell the user project where to find your build
+# settings and library dependencies
+SET(GDCM_BUILD_SETTING_FILE
+#  "@CMAKE_INSTALL_PREFIX@/lib/gdcm/gdcmBuildSettings.cmake
+#  "@CMAKE_INSTALL_PREFIX@/lib/gdcmBuildSettings.cmake"
+  "@GDCM_BINARY_DIR@/gdcmBuildSettings.cmake"
+  )
+  
+INCLUDE(
+#  "@CMAKE_INSTALL_PREFIX@/lib/gdcm/gdcmLibraryDepends.cmake"
+#  "@CMAKE_INSTALL_PREFIX@/lib/gdcmLibraryDepends.cmake"
+  "@GDCM_BINARY_DIR@/gdcmLibraryDepends.cmake"
+  )
+
+# Tell the user project where to find the "USE" file.
+# This file uses the above settings to configure the user project.
+
+SET(GDCM_USE_FILE
+#  "@CMAKE_INSTALL_PREFIX@/lib/gdcm/gdcmUse.cmake"
+  "@GDCM_SOURCE_DIR@/gdcmUse.cmake"
+  )
diff --git a/gdcmUse.cmake b/gdcmUse.cmake
new file mode 100644 (file)
index 0000000..9ca4147
--- /dev/null
@@ -0,0 +1,13 @@
+# Import GDCM's build settings.
+
+INCLUDE(
+  ${CMAKE_ROOT}/Modules/CMake/CMAkeImportBuildSettings.cmake
+  )
+
+CMAKE_IMPORT_BUILD_SETTINGS(${GDCM_BUILD_SETTINGS_FILE})
+
+# Tell the compiler where to find GDCM's header files.
+INCLUDE_DIRECTORIES(${GDCM_INCLUDE_DIRS})
+
+# Tell the linker where to find GDCM's libraries.
+LINK_DIRECTORIES(${GDCM_LIBRARY_DIRS})
index 7d5ba71dbed8f9a309042aab1a7b0de7c3e86174..3e31dd4a1d0143236c265dea6c016cba08adfa55 100644 (file)
@@ -38,17 +38,36 @@ SET(libgdcm_la_SOURCES
 # http://www.cmake.org/pipermail/cmake/2003-October/004369.html\r
 # http://www.cmake.org/pipermail/cmake/2003-October/004373.html\r
 \r
-SET_SOURCE_FILES_PROPERTIES(${libgdcm_la_SOURCES}\r
-  PROPERTIES\r
-  COMPILE_FLAGS "-D__STDC_LIMIT_MACROS  -DPUB_DICT_PATH=\\\"${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}\\\""\r
-)\r
+SET(GDCM_COMPILE_FLAGS\r
+  "-D__STDC_LIMIT_MACROS  -DPUB_DICT_PATH=\\\"${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}\\\""\r
+  )\r
+\r
+# SunOS + old gcc fixes:\r
+\r
+INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)\r
+IF(CMAKE_NO_ANSI_STRING_STREAM)\r
+SET(GDCM_COMPILE_FLAGS\r
+  "${GDCM_COMPILE_FLAGS} -DGDCM_NO_ANSI_STRING_STREAM"\r
+  )\r
+ENDIF(CMAKE_NO_ANSI_STRING_STREAM)\r
+\r
+#INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)\r
+#INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)\r
+\r
+INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)\r
+CHECK_INCLUDE_FILE("stdint.h"    CMAKE_HAVE_STDINT_H)\r
 \r
-IF(${CMAKE_NO_ANSI_STRING_STREAM})\r
-SET_SOURCE_FILES_PROPERTIES(gdcmHeader.cxx gdcmElValSet.cxx\r
+#MESSAGE(STATUS ${CMAKE_NO_ANSI_STRING_STREAM})\r
+IF(NOT CMAKE_HAVE_STDINT_H)\r
+SET(GDCM_COMPILE_FLAGS\r
+  "${GDCM_COMPILE_FLAGS} -DHAVE_NO_STDINT_H"\r
+  )\r
+ENDIF(NOT CMAKE_HAVE_STDINT_H)\r
+\r
+SET_SOURCE_FILES_PROPERTIES(${libgdcm_la_SOURCES}\r
   PROPERTIES\r
-  COMPILE_FLAGS "-DGDCM_NO_ANSI_STRING_STREAM"\r
+  COMPILE_FLAGS ${GDCM_COMPILE_FLAGS}\r
 )\r
-ENDIF(${CMAKE_NO_ANSI_STRING_STREAM})\r
 \r
 ADD_LIBRARY(gdcm ${libgdcm_la_SOURCES} )\r
 IF(UNIX)\r
index a74d6d84da462ee9f08d8ef06f74cd94a5a40db6..3db17d81b59fb29dbe1fe43459f8c8604ff92c07 100644 (file)
 #endif //_MSC_VER
 
 #ifdef __GNUC__
+#ifndef HAVE_NO_STDINT_H
 #include <stdint.h>
 #define guint16 uint16_t
 #define guint32 uint32_t
 #define gint16  int16_t
 #define gint32  int32_t
+#else
+typedef  unsigned short guint16;
+typedef  unsigned int   guint32;
+typedef  short                 gint16;
+typedef  int                   gint32;
+#define UINT32_MAX    (4294967295U)
+#endif //HAVE_NO_STDINT_H
 #endif
 
 #ifdef _MSC_VER