1 cmake_minimum_required(VERSION 2.4)
3 #=========================================================
4 # To avoid warning with some version
5 if(COMMAND cmake_policy)
6 cmake_policy(SET CMP0003 NEW)
7 endif(COMMAND cmake_policy)
8 #=========================================================
10 #=========================================================
11 #List of vv tools to compile
14 vvToolRigidReg ## Very long to compile
19 # vvToolExtractPatient
22 vvToolConvert ## with dummy vvToolConvert.ui
24 ## these ones are for tests (not working)
26 # vvToolFooWithWidgetBase
28 # vvToolConnectedComponentLabeling
30 # dependencies of the tools
31 # Future issues : when tool depend on other tools ... how to manage that ?
32 # >> add the relevant $_LIBS variable to the tool that has dependencies?
33 SET(vvToolRigidReg_LIBS clitkAffineRegistrationLib clitkRegistrationGgoLib)
34 SET(vvToolBinarize_LIBS clitkBinarizeImageLib)
35 SET(vvToolResample_LIBS clitkImageResampleLib)
36 SET(vvToolConvert_LIBS clitkImageConvertLib)
37 SET(vvToolExtractPatient_LIBS clitkSegmentationGgoLib)
38 SET(vvToolExtractLung_LIBS clitkSegmentationGgoLib)
39 SET(vvToolCropImage_LIBS clitkToolsGgoLib)
40 SET(vvToolMIP_LIBS clitkMIPLib clitkToolsGgoLib)
42 #=========================================================
43 # List of vv source files
45 # in COMMON_WITH_UI -> must have .h and .cxx and .ui
57 vvIntensityValueSlider
58 vvLabelImageLoaderWidget
60 vvToolSimpleInputSelectorWidget
61 vvToolInputSelectorWidget
62 vvToolStructureSetManager
67 vvQProgressDialogITKCommand.cxx
68 vvQDicomSeriesSelector.cxx
72 vvDeformableRegistration.cxx
74 vvInteractorStyleNavigator.cxx
85 vvSlicerManagerCommand.cxx
87 vvMaximumIntensityProjection.cxx
92 vvImageMapToWLColors.cxx
95 vvBinaryImageOverlayActor.cxx
96 vvStructureSetActor.cxx
100 vvToolCreatorBase.cxx
103 #=========================================================
104 # Qt related commands
105 FIND_PACKAGE(Qt4 REQUIRED)
112 vvQDicomSeriesSelector.h
115 vvStructureSetActor.h
120 QT4_WRAP_UI(vv_UI_CXX
121 qt_ui/vvHelpDialog.ui
122 qt_ui/vvDocumentation.ui
123 qt_ui/vvDicomSeriesSelector.ui
124 qt_ui/vvDummyWindow.ui #For testing
127 QT4_ADD_RESOURCES(vv_SRCS vvIcons.qrc)
129 #Add the autotools and the common files ui
130 foreach(tool ${vv_TOOLS} ${vv_COMMON_WITH_UI})
131 SET(vv_SRCS ${vv_SRCS} ${tool}.cxx)
132 QT4_WRAP_CPP(vv_SRCS ${tool}.h)
133 QT4_WRAP_UI(vv_UI_CXX qt_ui/${tool}.ui)
136 #Add the common source files
137 foreach(tool ${vv_COMMON})
138 SET(vv_SRCS ${vv_SRCS} ${tool}.cxx)
139 QT4_WRAP_CPP(vv_SRCS ${tool}.h)
142 # if Windows and Qt was built as a static lib then don't set QT_DLL flag
145 IF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
146 FILE(READ ${QT_LIBRARY_DIR}/QtCore.prl QT_CORE_PRL)
147 IF(${QT_CORE_PRL} MATCHES "static")
149 ENDIF(${QT_CORE_PRL} MATCHES "static")
150 ENDIF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
153 ADD_DEFINITIONS(-DQT_DLL)
156 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
161 ${QT_QTGUI_INCLUDE_DIR}
162 ${QT_QTCORE_INCLUDE_DIR}
163 ${CMAKE_CURRENT_BINARY_DIR}
164 ${CMAKE_CURRENT_SOURCE_DIR}
166 #=========================================================
168 #=========================================================
169 #support for parallel deformable registration with OpenMP
171 IF(CMAKE_COMPILER_IS_GNUCC)
172 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
173 ENDIF(CMAKE_COMPILER_IS_GNUCC)
175 #=========================================================
177 #=========================================================
185 SET(EXE_ICON vvIcon.rc)
188 LINK_DIRECTORIES(${QT_INCLUDES})
189 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
190 ADD_DEPENDENCIES(vv clitkToolsGgoLib clitkSegmentationGgoLib)
191 TARGET_LINK_LIBRARIES(vv clitkDicomRTStruct)
193 #=========================================================
194 #Add each tool's dependencies
195 foreach(tool ${vv_TOOLS})
196 target_link_libraries(vv ${${tool}_LIBS})
199 #=========================================================
200 #Add Foundation Libraries (this should be after our libraries, since we depend
202 TARGET_LINK_LIBRARIES(vv
203 clitkCommon ${ITK_LIBRARIES} QVTK vtkHybrid)
205 #=========================================================
206 # Install options (also used by CPack)
207 IF(UNIX AND NOT APPLE)
208 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
209 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
212 #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql)
213 # INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
214 # RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
217 ENDIF(UNIX AND NOT APPLE)
220 #INCLUDE(InstallRequiredSystemLibraries)
221 INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION .)
222 #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
224 #=========================================================
226 #=========================================================
228 SET(CPACK_PACKAGE_NAME "vv")
229 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src")
230 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
231 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
232 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
233 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
234 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
235 SET(CPACK_PACKAGE_VERSION_MINOR "1")
236 SET(CPACK_PACKAGE_VERSION_PATCH "0")
237 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
240 # There is a bug in NSI that does not handle full unix paths properly. Make
241 # sure there is at least one set of four (4) backlasshes.
242 SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\icons\\\\ducky.ico")
243 SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_BUILD_TYPE}\\\\vv.exe")
244 SET(CPACK_NSIS_DISPLAY_NAME "vv - The 4D slicer")
245 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv")
246 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
247 SET(CPACK_NSIS_CONTACT "vv@creatis.insa-lyon.fr")
248 SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\vv.lnk\\\" \\\"$INSTDIR\\\\vv.exe\\\" ")
249 SET(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\vv.lnk\\\" ")
250 #SET(CPACK_NSIS_MODIFY_PATH ON) SR: buggy, wait for cmake updates for a fix
251 #SET(CPACK_BINARY_ZIP ON)
253 SET(CPACK_GENERATOR "STGZ")
254 SET(CPACK_SOURCE_GENERATOR "TGZ")
257 #=========================================================