]> Creatis software - gdcm.git/blobdiff - vtk/CMakeLists.txt
ENH: Do some APPLE/WIN32 voodoo thing to get apps working
[gdcm.git] / vtk / CMakeLists.txt
index 3d21617b41e12733f19c8a053f0866d0985f58fd..ff88f670e2cc2cd4fa575436342a28fdb348b9e1 100644 (file)
@@ -1,53 +1,91 @@
-#-----------------------------------------------------------------------------\r
-# VTK GDCM Reader subdir\r
-\r
-#-----------------------------------------------------------------------------\r
-# Need gdcm header files\r
-INCLUDE_DIRECTORIES(\r
-  ${GDCM_SOURCE_DIR}/src/\r
-  ${GDCM_BINARY_DIR}/\r
-)\r
-\r
-SET(VTKGDCM_LIB_SRCS\r
-  vtkGdcmReader.cxx\r
-)\r
-\r
-#-----------------------------------------------------------------------------\r
-# Create vtkgdcm library\r
-ADD_LIBRARY(vtkgdcm ${VTKGDCM_LIB_SRCS})\r
-TARGET_LINK_LIBRARIES(vtkgdcm \r
-  gdcm\r
-  vtkCommon\r
-  vtkIO\r
-  vtkFiltering\r
-)\r
-\r
-#-----------------------------------------------------------------------------\r
-# See with frog why m4 didn't link to lib, and include cxx file instead ?\r
-SET(vtkgdcmdemo_SOURCES\r
-  testvtkGdcmReader.cxx\r
-#  vtkGdcmReader.cxx\r
-)\r
-ADD_EXECUTABLE(vtkgdcmdemo ${vtkgdcmdemo_SOURCES})\r
-TARGET_LINK_LIBRARIES(vtkgdcmdemo \r
-  vtkgdcm\r
-  vtkGraphics\r
-  vtkRendering\r
-)\r
-\r
-#-----------------------------------------------------------------------------\r
-# See with frog why m4 didn't link to lib, and include cxx file instead ?\r
-SET(vtkgdcmViewer_SOURCES\r
-  vtkgdcmViewer.cxx\r
-  #vtkGdcmReader.cxx \r
-)\r
-ADD_EXECUTABLE(vtkgdcmViewer ${vtkgdcmViewer_SOURCES})\r
-TARGET_LINK_LIBRARIES(vtkgdcmViewer \r
-  vtkgdcm\r
-  vtkRendering\r
-)\r
-\r
-# Install vtk header\r
-INSTALL_FILES(/include FILES vtkGdcmReader.h)\r
-\r
-INSTALL_TARGETS(/lib/ vtkgdcm)\r
+#-----------------------------------------------------------------------------
+# VTK GDCM Reader subdir
+# Rebuild gdcm whenever a file starting with vtk* is modified
+INCLUDE_REGULAR_EXPRESSION("^vtk.*$")
+
+#-----------------------------------------------------------------------------
+# Include the VTK library
+INCLUDE(${VTK_USE_FILE})
+
+# Need gdcm header files
+INCLUDE_DIRECTORIES(
+  ${GDCM_SOURCE_DIR}/src/
+  ${GDCM_BINARY_DIR}/
+)
+
+SET(VTKGDCM_LIB_SRCS
+  vtkGdcmReader.cxx
+  vtkGdcmWriter.cxx
+)
+
+#-----------------------------------------------------------------------------
+# Create vtkgdcm library
+ADD_LIBRARY(vtkgdcm ${VTKGDCM_LIB_SRCS})
+TARGET_LINK_LIBRARIES(vtkgdcm
+  gdcm
+  vtkCommon
+  vtkIO
+  vtkFiltering
+)
+
+#-----------------------------------------------------------------------------
+SET(vtkgdcmdemo_SOURCES
+  vtkGdcmDemo.cxx
+)
+ADD_EXECUTABLE(vtkgdcmdemo ${vtkgdcmdemo_SOURCES})
+TARGET_LINK_LIBRARIES(vtkgdcmdemo
+  vtkgdcm
+  vtkGraphics
+  vtkRendering
+)
+
+#-----------------------------------------------------------------------------
+SET(vtkgdcmViewer_SOURCES
+  vtkgdcmViewer.cxx
+)
+
+# let's do some APPLE/WIN32 magic here
+IF(WIN32)
+  SET(GUI_EXECUTABLE WIN32)
+ENDIF(WIN32)
+IF(APPLE)
+  IF(VTK_USE_CARBON)
+    SET(GUI_EXECUTABLE MACOSX_BUNDLE)
+  ENDIF(VTK_USE_CARBON)
+  IF(VTK_USE_COCOA)
+    SET(GUI_EXECUTABLE MACOSX_BUNDLE)
+  ENDIF(VTK_USE_COCOA)
+  # when using X11 on Apple you don't need this...
+ENDIF(APPLE)
+
+ADD_EXECUTABLE(vtkgdcmViewer ${GUI_EXECUTABLE} ${vtkgdcmViewer_SOURCES})
+TARGET_LINK_LIBRARIES(vtkgdcmViewer
+  vtkgdcm
+  vtkRendering
+)
+ADD_EXECUTABLE(vtkgdcmViewer2 ${GUI_EXECUTABLE} vtkgdcmViewer2.cxx)
+TARGET_LINK_LIBRARIES(vtkgdcmViewer2
+  vtkgdcm
+  vtkRendering
+)
+
+#-----------------------------------------------------------------------------
+SET(vtkWriteDicom_SOURCES
+  vtkWriteDicom.cxx
+)
+ADD_EXECUTABLE(vtkWriteDicom ${vtkWriteDicom_SOURCES})
+TARGET_LINK_LIBRARIES(vtkWriteDicom
+  vtkgdcm
+  vtkIO
+  vtkRendering
+)
+
+#-----------------------------------------------------------------------------
+# Install vtk header
+INSTALL_FILES(/include/gdcm FILES vtkGdcmReader.h)
+INSTALL_FILES(/include/gdcm FILES vtkGdcmWriter.h)
+
+INSTALL_TARGETS(/lib/gdcm/ vtkgdcm)
+INSTALL_TARGETS(/bin/ vtkgdcmViewer)
+INSTALL_TARGETS(/bin/ vtkgdcmViewer2)
+