X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FCMakeLists.txt;h=c8726b77f03f30233a38bde2a5db6178e02c7f8a;hb=6b7ccc72c2f9cee3979d9360a55eaa65aeea8a17;hp=ef0d34a1810150a868bec1b787c473f0554873af;hpb=46b16f5dac2148fa2d7ef81946a5e703447df88a;p=creaImageIO.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ef0d34a..c8726b7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,115 +1,389 @@ -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 + 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) - # Image readers - creaImageIOImageReader - creaImageIOMultiThreadImageReader - # Dicom database management - creaImageIODicomNode - creaImageIODicomNodeComparators - creaImageIODicomNodeTypeDescription - creaImageIODicomDatabaseStructure - creaImageIODicomDatabase - creaImageIOField - # The Gimmick! widgets - creaImageIOWxGimmick - creaImageIOWxGimmickSettings - creaImageIOWxGimmickFieldsView - creaImageIOWxGimmickDialog +#-------------------------------------------- +# USE QT, need to transform files (moc mechanism) +IF (USE_QT4) -# creaImageIOWxDicomDatabaseTreeView -# creaImageIOWxDicomDatabaseTreeViewSettings -# creaImageIOWxDicomNodeFieldsView +#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) - # wx-free function which opens a file selector dialog -# BlockScopeWxApp -# creaImageIODicomFilesSelectorDialog +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}) + + +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() + +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(creaImageIO_BUILD_SHARED - "Build creaImageIO as a shared library (dynamic) ?" ON) -IF (creaImageIO_BUILD_SHARED) +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} ) + FILE(RELATIVE_PATH + CILFC_EXECUTABLE_OUTPUT_REL_PATH + ${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 - ${EXECUTABLE_OUTPUT_REL_PATH}) - SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS lib) + ${CILFC_EXECUTABLE_OUTPUT_REL_PATH}) ELSE(UNIX) SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS - ${EXECUTABLE_OUTPUT_REL_PATH}/Debug - ${EXECUTABLE_OUTPUT_REL_PATH}/Release) - SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS bin) + ${CILFC_EXECUTABLE_OUTPUT_REL_PATH}) 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) + ADD_SUBDIRECTORY(doxygen) +ENDIF(BUILD_DOXYGEN_DOC) + +INCLUDE_DIRECTORIES( +# ${PROJECT_BINARY_DIR} + ${PROJECT_SOURCE_DIR}/src + )