]> Creatis software - creaImageIO.git/blobdiff - src/CMakeLists.txt
#2458 creaImageIO Feature New Normal - UnMosaic Images SimpleView Gimick
[creaImageIO.git] / src / CMakeLists.txt
index 13446594fd16d6097f738ac2fea292258d3fdf5b..c8726b77f03f30233a38bde2a5db6178e02c7f8a 100644 (file)
-SET( SRCS
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
+#                        pour la Santé)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and 
+#  abiding by the rules of distribution of free software. You can  use, 
+#  modify and/ or redistribute the software under the terms of the CeCILL-B 
+#  license as circulated by CEA, CNRS and INRIA at the following URL 
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability. 
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------
+
+SET(LIBRARY_NAME creaImageIO)
+
+#-----------------------------------------
+#SOURCES
+FILE(GLOB SOURCES_CREAIMAGEIO  
   # SQLite 
-  CppSQLite3
-  
-  # wxTreeListCtrl
-  treelistctrl.cpp
-
-  # Image readers
-  creaImageIOImageReader
-  creaImageIOMultiThreadImageReader
-
-  # Dicom database management
-  creaImageIODicomNode
-  creaImageIODicomNodeComparators
-  creaImageIODicomNodeTypeDescription
-  creaImageIODicomDatabaseStructure
-  creaImageIODicomDatabase
-  creaImageIOField
-
-  # The Gimmick! widgets
-  creaImageIOWxGimmick
-  creaImageIOWxGimmickSettings
-  creaImageIOWxGimmickFieldsView
-
-  creaImageIOWxGimmickDialog
-
-#  creaImageIOWxDicomDatabaseTreeView
-#  creaImageIOWxDicomDatabaseTreeViewSettings
-#  creaImageIOWxDicomNodeFieldsView
+  CppSQLite3.cpp
+  # 
+  creaImageIOGimmick.cpp
+  creaImageIOSynchron.cpp
+  creaImageIOPACSConnection.cpp
+
+  # Abstract views
+  creaImageIOTreeView.cpp
+
+  # settings
+  creaImageIOSettings.cpp
+  creaImageIOGimmickView.cpp
+  )
+#--------------------------------------------
+
+IF(USE_WXWIDGETS)
+        FILE(GLOB SOURCES_CREAIMAGEIO_DIALOG  
+          creaImageIOGimmickReaderDialog.cpp
+          )
+       SOURCE_GROUP("Source Files\\Reader Dialog" FILES ${SOURCES_CREAIMAGEIO_DIALOG})
+ENDIF(USE_WXWIDGETS)
+
+#--------------------------------------------
+ # Attributed tree data structure
+FILE(GLOB SOURCES_CREAIMAGEIO_TREE
+         creaImageIOTree.cpp
+         creaImageIOTreeAttributeDescriptor.cpp
+         creaImageIOTreeDescriptor.cpp
+         creaImageIOTreeNode.cpp
+         creaImageIOTreeLevelDescriptor.cpp
+           # Tree Handlers
+         creaImageIOTreeHandler.cpp
+         creaImageIOTreeHandlerImageAdder.cpp
+         creaImageIOSQLiteTreeHandler.cpp
+         creaImageIOOutputModel.cpp
+          )
+
+#--------------------------------------------
+ # Image Readers
+IF(USE_GDCM)
+        FILE(GLOB SOURCES_CREAIMAGEIO_IMG_DICOM_READER
+                       creaImageIODicomImageReader.cpp
+                       )
+ENDIF(USE_GDCM)
+         
+IF(USE_GDCM2)
+        FILE(GLOB SOURCES_CREAIMAGEIO_IMG_DICOM_READER
+                       creaImageIODicomImageReader2.cpp
+                       creaImageIODicomScanner.cpp
+                       )
+ENDIF(USE_GDCM2)
+
+IF (USE_WXWIDGETS)
+       FILE(GLOB SOURCES_CREAIMAGEIO_MULTI_IMG_READER   creaImageIOMultiThreadImageReader.cpp)
+#ELSEIF(USE_QT4)
+       #FILE(GLOB SOURCES_CREAIMAGEIO_MULTI_IMG_READER   creaImageIOQMultiThreadImageReader.cpp)
+ENDIF()
+
+FILE(GLOB SOURCES_CREAIMAGEIO_IMG_READER
+         creaImageIOSimpleView.cpp
+         creaImageIOUnMosaicVtkImageData.cpp
+         creaImageIOAbstractImageReader.cpp
+         creaImageIOImageReader.cpp
+         creaImageIOUltrasonixImageReader.cpp
+         creaImageIOVtkImageReader.cpp
+         ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
+         ${SOURCES_CREAIMAGEIO_MULTI_IMG_READER}
+         )
+IF(USE_ITK)
+FILE(GLOB SOURCES_CREAIMAGEIO_ITK_DLG
+       creaImageIOWxIsimpleDlg.h
+       creaImageIOWxIsimpleDlg.hpp
+       creaImageIOWxAnySimpleDlg.h
+       creaImageIOWxAnySimpleDlg.cpp
+       )
+ENDIF(USE_ITK)
+         
+#--------------------------------------------
+# The wxWidgets-based components
+if (USE_WXWIDGETS)
+       FILE(GLOB SOURCES_CREAIMAGEIO_WX
+                 creaImageIOWxSimpleDlg.cpp
+                 creaImageIOWxAttributeSelectionPanel.cpp
+                 creaImageIOWxCustomizeConfigPanel.cpp
+                 creaImageIOWxDescriptorPanel.cpp
+                 creaImageIOWxEditFieldsPanel.cpp
+                 creaImageIOWxExportDlg.cpp
+                 creaImageIOWxDumpPanel.cpp
+                 creaImageIOWxGimmickView.cpp
+                 creaImageIOWxGimmickReaderDialog.cpp
+                 creaImageIOWxGimmickFrame.cpp
+                 creaImageIOWxGimmickPanel.cpp
+                 creaImageIOWxGimmickTools.cpp
+                 creaImageIOWxListenerPanel.cpp
+                 creaImageIOWxPACSConnectionPanel.cpp
+                 creaImageIOWxTreeView.cpp
+                 creaImageIOWxOutputDlg.cpp
+                 #  Viewer
+                 creaImageIOWxViewer.cpp
+                 creaImageIOExternalGimmick.cpp
+                 BlockScopeWxApp.cpp
+                 creaImageIOListener.cpp
+                 )
+       SOURCE_GROUP("Source Files\\GUI" FILES ${SOURCES_CREAIMAGEIO_WX})
+       
+       IF(USE_ITK)
+FILE(GLOB SOURCES_CREAIMAGEIO_ITK_DLG
+       creaImageIOWxIsimpleDlg.h
+       creaImageIOWxIsimpleDlg.hpp
+       creaImageIOWxAnySimpleDlg.h
+       creaImageIOWxAnySimpleDlg.cpp
+       )
+ENDIF(USE_ITK)
+         
+endif(USE_WXWIDGETS)
+
+
+
+
+#--------------------------------------------
+# USE QT, need to transform files (moc mechanism)
+
+IF (USE_QT4)
+
+#ADD_SUBDIRECTORY(Qt)
+       # UI
+       FILE(GLOB UI_FILES Qt/*.ui)
+       QT4_WRAP_UI(UI_SOURCES ${UI_FILES})
+       SOURCE_GROUP("Source Files\\UI Files" FILES ${UI_FILES})
+       SOURCE_GROUP("Source Files\\Qt Generated Files" FILES ${UI_SOURCES})
+
+       #cpp
+       FILE(GLOB QT_CPP Qt/*.cpp
+               #creaImageIOQtGimmickReaderDialog.cpp 
+               )
+       
+       # headers
+       FILE(GLOB QT4_HEADERS_TO_WRAP Qt/*.h
+               #creaImageIOQtGimmickReaderDialog.h
+               )
+       # UI
+       #       FILE(GLOB UI_FILES *.ui)
+       #   QT4_WRAP_UI(UI_SOURCES ${UI_FILES})
+       # SOURCE_GROUP("UI Files" FILES ${UI_FILES})
+       # SOURCE_GROUP("Qt Generated Files" FILES ${UI_SOURCES})
+#      FILE(GLOB UI_FILES creaImageIOQtGimmickReaderDialog.ui)
+#      QT4_WRAP_UI(UI_SOURCES_H ${UI_FILES} OPTIONS -o ${PROJECT_BINARY_DIR}/src)
+        QT4_WRAP_CPP(QT_MOC_CPP ${QT4_HEADERS_TO_WRAP})
   
-  # File selector wxDialog using a DDB tree view
-#  creaImageIOWxDicomFilesSelectorDialog
+   # FILE(GLOB ${LIBRARY_NAME}_HEADERS "*.h" "*.txx" "${PROJECT_BINARY_DIR}/src/*.h")
+       # MEssage(STATUS" qt files = ${QT_MOC_CPP}")
+        SOURCE_GROUP("Source Files\\GUI" FILES ${QT_MOC_CPP} ${QT_CPP} )
+       # INCLUDE_DIRECTORIES ( ${PROJECT_BINARY_DIR})
+       SOURCE_GROUP("Source Files\\GUI" FILES ${UI_SOURCES_H} ${UI_FILES})
+       SOURCE_GROUP("Header Files" FILES ${QT4_HEADERS_TO_WRAP})
+ENDIF(USE_QT4)
+
+IF(USE_XERCES)
+       FILE(GLOB SOURCES_CREAIMAGEIO_OUTPUT
+                 creaImageIOOutputModel.cpp
+                 creaImageIOOutputModelParser.cpp
+                 )
+       SOURCE_GROUP("Source Files\\Output" FILES ${SOURCES_CREAIMAGEIO_OUTPUT})         
+ENDIF(USE_XERCES)
+
+
+
+
+# Header Files   
+FILE(GLOB HEADER_CREAIMAGEIO creaImageIOImagePointerHolder.h  CppSQLite3.h)
+#*.h)
+FILE(GLOB SOURCES_CREAIMAGEIO_PACS PACS/*.cpp)
+FILE(GLOB HEADER_CREAIMAGEIO_PACS PACS/*.h)
+
+FILE(GLOB QT4_HEADERS          creaImageIOQtGimmickReaderDialog.h              )
+MEssage(STATUS" qt files = ${QT4_HEADERS}")
+SOURCE_GROUP("Source Files" FILES ${SOURCES_CREAIMAGEIO})
+SOURCE_GROUP("Header Files" FILES ${HEADER_CREAIMAGEIO} ${QT4_HEADERS})
+if(BUILD_CREA_PACS)
+       SOURCE_GROUP("Source Files\\PACS" FILES ${SOURCES_CREAIMAGEIO_PACS})
+       SOURCE_GROUP("Header Files\\PACS" FILES ${HEADER_CREAIMAGEIO_PACS})
+endif(BUILD_CREA_PACS)
+SOURCE_GROUP("Source Files\\Readers" FILES ${SOURCES_CREAIMAGEIO_IMG_READER}
+                                                                                       ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER})
+SOURCE_GROUP("Source Files\\Tree" FILES ${SOURCES_CREAIMAGEIO_TREE})
+
+SOURCE_GROUP("Source Files\\ITK" FILES ${SOURCES_CREAIMAGEIO_ITK_DLG})
 
-  # wx-free function which opens a file selector dialog 
-#  BlockScopeWxApp
-#  creaImageIODicomFilesSelectorDialog
 
+IF(USE_WXWIDGETS)
+SET( GUI_SRCS
+        ${SOURCES_CREAIMAGEIO_WX}
+        ${SOURCES_CREAIMAGEIO_DIALOG}
+        )
+ELSE(USE_WXWIDGETS)
+SET( GUI_SRCS
+        ${QT_CPP}
+        ${UI_SOURCES}
+        ${QT_MOC_CPP}
+        )
+ENDIF(USE_WXWIDGETS)
+SET( PRIMITIVE_SRCS
+ ${SOURCES_CREAIMAGEIO}
+ ${HEADER_CREAIMAGEIO}
+ ${SOURCES_CREAIMAGEIO_IMG_READER}
+ ${SOURCES_CREAIMAGEIO_IMG_DICOM_READER}
+ ${GUI_SRCS}
+ ${SOURCES_CREAIMAGEIO_TREE}
+ ${SOURCES_CREAIMAGEIO_ITK_DLG}
 )
 
 
+#if ( ${CMAKE_EXE_LINKER_FLAGS} MATCHES "message:x64")message("charlie ${CMAKE_SYSTEM_PROCESSOR}")endif()
 
-OPTION(creaImageIO_BUILD_SHARED 
-  "Build creaImageIO as a shared library (dynamic) ?" ON)
-IF (creaImageIO_BUILD_SHARED)
+if( BUILD_CREA_PACS)
+       SET (SRCS
+               ${PRIMITIVE_SRCS}
+               ${SOURCES_CREAIMAGEIO_PACS}
+               ${HEADER_CREAIMAGEIO_PACS}
+               )
+else (BUILD_CREA_PACS)
+IF(USE_XERCES)
+       SET (SRCS
+               ${PRIMITIVE_SRCS}
+               ${SOURCES_CREAIMAGEIO_OUTPUT}
+               )
+ELSE(USE_XERCES)
+       SET (SRCS
+               ${PRIMITIVE_SRCS}
+               )
+ENDIF(USE_XERCES)
+endif (BUILD_CREA_PACS)
+
+OPTION(${LIBRARY_NAME}_BUILD_SHARED 
+  "Build ${LIBRARY_NAME} as a shared library (dynamic) ?" ON)
+IF (${LIBRARY_NAME}_BUILD_SHARED)
   SET(CREAIMAGEIO_BUILD_SHARED SHARED)
   crea_DEFINE(CREAIMAGEIO_BUILD_SHARED)
-ENDIF(creaImageIO_BUILD_SHARED)
+ENDIF(${LIBRARY_NAME}_BUILD_SHARED)
 
 crea_DEFINE(CREAIMAGEIO_EXPORT_SYMBOLS)
 
-ADD_LIBRARY(creaImageIO ${CREAIMAGEIO_BUILD_SHARED} ${SRCS})
+ADD_LIBRARY(${LIBRARY_NAME} ${CREAIMAGEIO_BUILD_SHARED} ${SRCS})
+
+IF(USE_QT4)
+TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
+      ${QT_LIBRARIES})
+ENDIF(USE_QT4)
 
+IF(USE_WXWIDGETS)
+TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
+      ${WXWIDGETS_LIBRARIES})
+ENDIF(USE_WXWIDGETS)
 
 
-TARGET_LINK_LIBRARIES(creaImageIO 
+IF (NOT USE_XERCES)
+TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
   ${crea_LIBRARIES}
+  ${creaBruker_LIBRARIES}
   ${WXWIDGETS_LIBRARIES}
   ${VTK_LIBRARIES}
   ${GDCM_LIBRARIES}
   ${BOOST_LIBRARIES}
+  ${ITK_LIBRARIES}
   sqlite3)
-
+ELSE(NOT USE_XERCES)
+TARGET_LINK_LIBRARIES(${LIBRARY_NAME} 
+  ${crea_LIBRARIES}
+  ${creaBruker_LIBRARIES}
+  ${WXWIDGETS_LIBRARIES}
+  ${VTK_LIBRARIES}
+  ${GDCM_LIBRARIES}
+  ${BOOST_LIBRARIES}
+  ${XERCES_LIBRARIES}
+  sqlite3)  
+ENDIF(NOT USE_XERCES)
+  
 #----------------------------------------------------------------------------
 # INSTALLS LIBRARY
-FILE(GLOB HEADERS "*.h")
+FILE(GLOB HEADERS "*.h" "*.txx")
 INSTALL(
   FILES ${HEADERS}
-  DESTINATION include/creaImageIO
+  DESTINATION include/${LIBRARY_NAME}
   )
-IF (WIN32)
-  SET(CREAIMAGEIO_LIB_PATH bin)
-ELSE (WIN32)
-  SET(CREAIMAGEIO_LIB_PATH lib)
-ENDIF(WIN32)
+  
+
+SET(CREAIMAGEIO_LIB_PATH ${CMAKE_CREA_LIB_PATH} )
 
 INSTALL(
-  TARGETS creaImageIO 
+  TARGETS ${LIBRARY_NAME} 
   DESTINATION ${CREAIMAGEIO_LIB_PATH})
 
-  
-   # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
-   SET(LIBRARY_NAME creaImageIO)
+     # Sets the settings for macro CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
   SET(${LIBRARY_NAME}_INSTALL_FOLDER ${LIBRARY_NAME})
-  SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME})
+  SET(${LIBRARY_NAME}_LIBRARIES ${LIBRARY_NAME} )
   
-  FILE(RELATIVE_PATH 
-    ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS 
-    ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
-    )
+#  FILE(RELATIVE_PATH 
+#    ${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS 
+#    ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
+#    )
+SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
+    src
+    win32
+)
+
+
   IF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
     SET(CILFC_EXECUTABLE_OUTPUT_REL_PATH ".")
   ELSE ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
@@ -95,31 +344,46 @@ INSTALL(
       ${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH})
   ENDIF ( ${PROJECT_BINARY_DIR} STREQUAL ${EXECUTABLE_OUTPUT_PATH} )
 
+
+
+  SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS ${CMAKE_CREA_LIB_PATH} )
+
   IF(UNIX)
     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
-    SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS lib)
   ELSE(UNIX)
     SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
       ${CILFC_EXECUTABLE_OUTPUT_REL_PATH})
-    SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS bin)
   ENDIF(UNIX)
   SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/${LIBRARY_NAME})
   
   SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE TRUE)
 SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE 
-  ${PROJECT_SOURCE_DIR}/src/AdditionalcreaImageIOConfig.cmake.in)
+  ${PROJECT_SOURCE_DIR}/src/Additional${LIBRARY_NAME}Config.cmake.in)
 SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE 
-  ${PROJECT_SOURCE_DIR}/src/AdditionalUsecreaImageIO.cmake.in)
+  ${PROJECT_SOURCE_DIR}/src/AdditionalUse${LIBRARY_NAME}.cmake.in)
 
   # Invoke the advanced macro
   CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
+IF (WIN32)
+       SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
+       SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/bin/share/creaImageIO)
+ELSE (WIN32)
+       SET(INPUT_DATA_DIR ${PROJECT_SOURCE_DIR}/src/data)
+       SET(OUTPUT_DATA_DIR ${PROJECT_BINARY_DIR}/share/creaImageIO)
+ENDIF (WIN32)
+CREA_CPDIR(${INPUT_DATA_DIR} ${OUTPUT_DATA_DIR})
 
   
-#CREA_INSTALL_LIBRARY_FOR_CMAKE(creaImageIO)
+#CREA_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
 #-----------------------------------------------------------------------------
 
 OPTION( BUILD_DOXYGEN_DOC "Build doxygen doc ?" OFF)
 IF(BUILD_DOXYGEN_DOC)
-  SUBDIRS(doxygen)
+  ADD_SUBDIRECTORY(doxygen)
 ENDIF(BUILD_DOXYGEN_DOC)
+
+INCLUDE_DIRECTORIES(
+#  ${PROJECT_BINARY_DIR}
+  ${PROJECT_SOURCE_DIR}/src
+  )