X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FCMakeLists.txt;h=d52f247b110f61ad59fc38787209fdd1c51b78ba;hb=58f3178d52d0c1762a566b375354816e0cc4bb26;hp=c9fe3daab0a9cdb3ed12d896f6ddd37eaafae8ab;hpb=9a57c46f38f7898504a968cdf4be37c7a7ae0897;p=clitk.git diff --git a/vv/CMakeLists.txt b/vv/CMakeLists.txt index c9fe3da..d52f247 100644 --- a/vv/CMakeLists.txt +++ b/vv/CMakeLists.txt @@ -7,21 +7,67 @@ if(COMMAND cmake_policy) endif(COMMAND cmake_policy) #========================================================= +#========================================================= +#List of vv tools to compile +SET(vv_TOOLS + vvToolMedianFilter +# vvToolRigidReg ## Very long to compile + vvToolCropImage + vvToolBinarize + vvToolImageArithm + vvToolResample +# vvToolExtractPatient +# vvToolExtractLung + vvToolMIP + vvToolConvert ## with dummy vvToolConvert.ui + + ## these ones are for tests (not working) + # vvToolFoo + # vvToolFooWithWidgetBase + # vvToolPlastimatch + # vvToolConnectedComponentLabeling +) +# dependencies of the tools +# Future issues : when tool depend on other tools ... how to manage that ? +# >> add the relevant $_LIBS variable to the tool that has dependencies? +SET(vvToolRigidReg_LIBS clitkAffineRegistrationLib clitkRegistrationGgoLib) +SET(vvToolBinarize_LIBS clitkBinarizeImageLib) +SET(vvToolResample_LIBS clitkResampleImageLib) +SET(vvToolConvert_LIBS clitkImageConvertLib) +SET(vvToolExtractPatient_LIBS clitkSegmentationGgoLib) +SET(vvToolExtractLung_LIBS clitkSegmentationGgoLib) +SET(vvToolCropImage_LIBS clitkToolsGgoLib) +SET(vvToolMIP_LIBS clitkMIPLib clitkToolsGgoLib) + #========================================================= # List of vv source files + +# in COMMON_WITH_UI -> must have .h and .cxx and .ui +SET(vv_COMMON_WITH_UI + vvInfoPanel + vvMainWindow + vvLinkPanel + vvOverlayPanel + vvLandmarksPanel + vvProgressDialog + vvSegmentationDialog + vvSurfaceViewerDialog + vvDeformationDialog + vvStructSelector + vvIntensityValueSlider + vvLabelImageLoaderWidget + vvToolWidgetBase + vvToolSimpleInputSelectorWidget + vvToolInputSelectorWidget + vvToolStructureSetManager +) + +# All others sources SET(vv_SRCS - vvInfoPanel.cxx - vvLinkPanel.cxx - vvOverlayPanel.cxx - vvLandmarksPanel.cxx vvQProgressDialogITKCommand.cxx vvQDicomSeriesSelector.cxx QTreePushButton.cxx - vvSegmentationDialog.cxx - vvSurfaceViewerDialog.cxx vvMainWindowBase.cxx - vvMainWindow.cxx - vvDeformationDialog.cxx vvImageWarp.cxx vvDeformableRegistration.cxx vtkVOXImageWriter.cxx @@ -38,36 +84,21 @@ SET(vv_SRCS vvSlicerManager.cxx vvSlicerManagerCommand.cxx vvUtils.cxx - vvMaximumIntensityProjection.cxx +# vvMaximumIntensityProjection.cxx vvMesh.cxx vvMeshActor.cxx vvMeshReader.cxx - vvStructSelector.cxx vvMidPosition.cxx vvImageMapToWLColors.cxx - vvIntensityValueSlider.cxx - vvToolManager.cxx - vvToolCreatorBase.cxx - vvToolWidgetBase.cxx - vvToolMedianFilter.cxx - vvToolRigidReg.cxx -# vvToolFoo.cxx -# vvToolFooWithWidgetBase.cxx - vvToolCropImage.cxx - vvToolBinarize.cxx - vvToolSimpleInputSelectorWidget.cxx - vvToolInputSelectorWidget.cxx + vvThreadedFilter.cxx vvImageContour.cxx vvBinaryImageOverlayActor.cxx - vvToolImageArithm.cxx - vvToolConvert.cxx - vvToolStructureSetManager.cxx vvStructureSetActor.cxx vvROIActor.cxx - vvToolResample.cxx vvBlendImageActor.cxx - ) -#========================================================= + vvToolManager.cxx + vvToolCreatorBase.cxx +) #========================================================= # Qt related commands @@ -75,72 +106,53 @@ FIND_PACKAGE(Qt4 REQUIRED) QT4_WRAP_CPP(vv_SRCS vvMainWindowBase.h - vvMainWindow.h QTreePushButton.h - vvInfoPanel.h - vvLinkPanel.h - vvOverlayPanel.h - vvLandmarksPanel.h vvDocumentation.h vvHelpDialog.h - vvProgressDialog.h vvQDicomSeriesSelector.h - vvSegmentationDialog.h - vvSurfaceViewerDialog.h - vvDeformationDialog.h vvSlicerManager.h - vvStructSelector.h - vvIntensityValueSlider.h - vvToolCreatorBase.h -# vvToolFoo.h -# vvToolFooWithWidgetBase.h - vvToolMedianFilter.h - vvToolRigidReg.h - vvToolBinarize.h - vvToolSimpleInputSelectorWidget.h - vvToolInputSelectorWidget.h - vvToolWidgetBase.h - vvToolCropImage.h - vvToolImageArithm.h - vvToolConvert.h - vvToolStructureSetManager.h + vvThreadedFilter.h vvStructureSetActor.h vvROIActor.h - vvToolResample.h + vvToolCreatorBase.h ) QT4_WRAP_UI(vv_UI_CXX - qt_ui/vvMainWindow.ui - qt_ui/vvInfoPanel.ui - qt_ui/vvLinkPanel.ui - qt_ui/vvOverlayPanel.ui - qt_ui/vvLandmarksPanel.ui qt_ui/vvHelpDialog.ui qt_ui/vvDocumentation.ui - qt_ui/vvProgressDialog.ui qt_ui/vvDicomSeriesSelector.ui - qt_ui/vvSegmentationDialog.ui - qt_ui/vvSurfaceViewerDialog.ui - qt_ui/vvDeformationDialog.ui - qt_ui/vvStructSelector.ui qt_ui/vvDummyWindow.ui #For testing - qt_ui/vvIntensityValueSlider.ui - qt_ui/vvToolSimpleInputSelectorWidget.ui - qt_ui/vvToolInputSelectorWidget.ui - qt_ui/vvToolWidgetBase.ui - qt_ui/vvToolMedianFilter.ui - qt_ui/vvToolRigidReg.ui -# qt_ui/vvToolFoo.ui - qt_ui/vvToolCropImage.ui - qt_ui/vvToolBinarize.ui - qt_ui/vvToolImageArithm.ui - qt_ui/vvToolStructureSetManager.ui - qt_ui/vvToolResample.ui ) QT4_ADD_RESOURCES(vv_SRCS vvIcons.qrc) -ADD_DEFINITIONS(-DQT_DLL) +#Add the autotools and the common files ui +foreach(tool ${vv_TOOLS} ${vv_COMMON_WITH_UI}) + SET(vv_SRCS ${vv_SRCS} ${tool}.cxx) + QT4_WRAP_CPP(vv_SRCS ${tool}.h) + QT4_WRAP_UI(vv_UI_CXX qt_ui/${tool}.ui) +endforeach(tool) + +#Add the common source files +foreach(tool ${vv_COMMON}) + SET(vv_SRCS ${vv_SRCS} ${tool}.cxx) + QT4_WRAP_CPP(vv_SRCS ${tool}.h) +endforeach(tool) + +# if Windows and Qt was built as a static lib then don't set QT_DLL flag +SET(QT_STATIC 0) +IF (WIN32) + IF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl) + FILE(READ ${QT_LIBRARY_DIR}/QtCore.prl QT_CORE_PRL) + IF(${QT_CORE_PRL} MATCHES "static") + SET(QT_STATIC 1) + ENDIF(${QT_CORE_PRL} MATCHES "static") + ENDIF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl) +ENDIF(WIN32) +IF(NOT QT_STATIC) + ADD_DEFINITIONS(-DQT_DLL) +ENDIF(NOT QT_STATIC) + ADD_DEFINITIONS(-DQT_THREAD_SUPPORT) INCLUDE_DIRECTORIES( @@ -157,7 +169,7 @@ INCLUDE_DIRECTORIES( #support for parallel deformable registration with OpenMP IF(NOT __APPLE__) IF(CMAKE_COMPILER_IS_GNUCC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") ENDIF(CMAKE_COMPILER_IS_GNUCC) ENDIF(NOT __APPLE__) #========================================================= @@ -166,30 +178,37 @@ ENDIF(NOT __APPLE__) INCLUDE_DIRECTORIES( ../common ../tools + ../segmentation ) IF(WIN32) SET(EXE_ICON vvIcon.rc) ENDIF(WIN32) -IF(UNIX) - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++") -ENDIF(UNIX) - -LINK_DIRECTORIES(${QT_INCLUDES}) +LINK_DIRECTORIES(${QT_LIBRARY_DIR}) ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON}) -TARGET_LINK_LIBRARIES(vv clitkCommon clitkDicomRTStruct clitkFilters ${ITK_LIBRARIES} QVTK vtkHybrid) +ADD_DEPENDENCIES(vv clitkToolsGgoLib clitkSegmentationGgoLib) +TARGET_LINK_LIBRARIES(vv clitkDicomRTStruct) -IF (CLITK_VV_USE_BDCM) - TARGET_LINK_LIBRARIES(vv bdcm) -ENDIF (CLITK_VV_USE_BDCM) #========================================================= +#Add each tool's dependencies +foreach(tool ${vv_TOOLS}) + target_link_libraries(vv ${${tool}_LIBS}) +endforeach(tool) + +#========================================================= +#Add Foundation Libraries (this should be after our libraries, since we depend +#on them) +TARGET_LINK_LIBRARIES(vv +clitkCommon ${ITK_LIBRARIES} QVTK vtkHybrid) #========================================================= # Install options (also used by CPack) IF(UNIX AND NOT APPLE) - INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE) - INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .) + SET_TARGET_PROPERTIES(vv + PROPERTIES INSTALL_RPATH "${VTK_DIR}:${ITK_DIR}" ) + INSTALL (TARGETS vv DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE) + # INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .) #QT #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql) @@ -200,16 +219,16 @@ IF(UNIX AND NOT APPLE) ENDIF(UNIX AND NOT APPLE) IF(WIN32) - INCLUDE(InstallRequiredSystemLibraries) - INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin) - INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION bin) - INSTALL(FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin) - INSTALL(FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin) + #INCLUDE(InstallRequiredSystemLibraries) + INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION .) + #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .) ENDIF(WIN32) +#========================================================= #========================================================= # CPack options -SET(CPACK_PACKAGE_NAME vv) +SET(CPACK_PACKAGE_NAME "vv") +SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !") SET(CPACK_PACKAGE_VENDOR "Creatis-CLB") SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt") @@ -218,17 +237,23 @@ SET(CPACK_PACKAGE_VERSION_MAJOR "1") SET(CPACK_PACKAGE_VERSION_MINOR "1") SET(CPACK_PACKAGE_VERSION_PATCH "0") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv") + IF(WIN32) - SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/ducky.png") - SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/${CMAKE_BUILD_TYPE}/vv.exe") - SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer") + # There is a bug in NSI that does not handle full unix paths properly. Make + # sure there is at least one set of four (4) backlasshes. + SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\icons\\\\ducky.ico") + SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_BUILD_TYPE}\\\\vv.exe") + SET(CPACK_NSIS_DISPLAY_NAME "vv - The 4D slicer") SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv") SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio") - SET(CPACK_NSIS_MODIFY_PATH ON) + SET(CPACK_NSIS_CONTACT "vv@creatis.insa-lyon.fr") + SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\vv.lnk\\\" \\\"$INSTDIR\\\\vv.exe\\\" ") + SET(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\vv.lnk\\\" ") + #SET(CPACK_NSIS_MODIFY_PATH ON) SR: buggy, wait for cmake updates for a fix + #SET(CPACK_BINARY_ZIP ON) ELSE(WIN32) - SET(CPACK_STRIP_FILES "bin/vv") - SET(CPACK_SOURCE_STRIP_FILES "") + SET(CPACK_GENERATOR "STGZ") + SET(CPACK_SOURCE_GENERATOR "TGZ") ENDIF(WIN32) -SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv") INCLUDE(CPack) - +#=========================================================