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 #List of vv tools to compile
13 # vvToolWidgetWithStepsBase
17 # vvToolFooWithWidgetBase
20 vvToolSimpleInputSelectorWidget
21 vvToolInputSelectorWidget
23 vvToolStructureSetManager
28 # vvToolConnectedComponentLabeling
30 #dependencies of the tools
31 SET(vvToolRigidReg_LIBS clitkAffineRegistrationLib)
33 #=========================================================
34 # List of vv source files
40 vvQProgressDialogITKCommand.cxx
41 vvQDicomSeriesSelector.cxx
43 vvSegmentationDialog.cxx
44 vvSurfaceViewerDialog.cxx
48 vvDeformationDialog.cxx
50 vvDeformableRegistration.cxx
52 vvInteractorStyleNavigator.cxx
63 vvSlicerManagerCommand.cxx
65 vvMaximumIntensityProjection.cxx
71 vvImageMapToWLColors.cxx
72 vvIntensityValueSlider.cxx
75 vvBinaryImageOverlayActor.cxx
76 vvStructureSetActor.cxx
79 vvLabelImageLoaderWidget.cxx
85 #=========================================================
87 #=========================================================
89 FIND_PACKAGE(Qt4 REQUIRED)
102 vvQDicomSeriesSelector.h
103 vvSegmentationDialog.h
104 vvSurfaceViewerDialog.h
105 vvDeformationDialog.h
108 vvIntensityValueSlider.h
110 vvStructureSetActor.h
112 vvLabelImageLoaderWidget.h
117 QT4_WRAP_UI(vv_UI_CXX
118 qt_ui/vvMainWindow.ui
121 qt_ui/vvOverlayPanel.ui
122 qt_ui/vvLandmarksPanel.ui
123 qt_ui/vvHelpDialog.ui
124 qt_ui/vvDocumentation.ui
125 qt_ui/vvProgressDialog.ui
126 qt_ui/vvDicomSeriesSelector.ui
127 qt_ui/vvSegmentationDialog.ui
128 qt_ui/vvSurfaceViewerDialog.ui
129 qt_ui/vvDeformationDialog.ui
130 qt_ui/vvStructSelector.ui
131 qt_ui/vvDummyWindow.ui #For testing
132 qt_ui/vvIntensityValueSlider.ui
133 qt_ui/vvLabelImageLoaderWidget.ui
136 QT4_ADD_RESOURCES(vv_SRCS vvIcons.qrc)
139 foreach(tool ${vv_TOOLS})
140 SET(vv_SRCS ${vv_SRCS} ${tool}.cxx)
141 QT4_WRAP_CPP(vv_SRCS ${tool}.h)
142 QT4_WRAP_UI(vv_UI_CXX qt_ui/${tool}.ui)
145 # if Windows and Qt was built as a static lib then don't set QT_DLL flag
148 IF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
149 FILE(READ ${QT_LIBRARY_DIR}/QtCore.prl QT_CORE_PRL)
150 IF(${QT_CORE_PRL} MATCHES "static")
152 ENDIF(${QT_CORE_PRL} MATCHES "static")
153 ENDIF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
156 ADD_DEFINITIONS(-DQT_DLL)
159 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
164 ${QT_QTGUI_INCLUDE_DIR}
165 ${QT_QTCORE_INCLUDE_DIR}
166 ${CMAKE_CURRENT_BINARY_DIR}
167 ${CMAKE_CURRENT_SOURCE_DIR}
169 #=========================================================
171 #=========================================================
172 #support for parallel deformable registration with OpenMP
174 IF(CMAKE_COMPILER_IS_GNUCC)
175 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
176 ENDIF(CMAKE_COMPILER_IS_GNUCC)
178 #=========================================================
180 #=========================================================
188 SET(EXE_ICON vvIcon.rc)
191 LINK_DIRECTORIES(${QT_INCLUDES})
192 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
193 ADD_DEPENDENCIES(vv clitkToolsGgoLib clitkSegmentationGgoLib)
194 TARGET_LINK_LIBRARIES(vv clitkDicomRTStruct
195 #Libs for generic filters with long compilation times
197 clitkImageResampleLib
198 clitkBinarizeImageLib
199 #Libs for _ggo.c files
200 clitkSegmentationGgoLib clitkToolsGgoLib
201 clitkRegistrationGgoLib
202 clitkCommon ${ITK_LIBRARIES} QVTK vtkHybrid)
204 #=========================================================
205 #Add each tool's dependencies
206 foreach(tool ${vv_TOOLS})
207 target_link_libraries(vv ${${tool}_LIBS})
210 #=========================================================
211 # Install options (also used by CPack)
212 IF(UNIX AND NOT APPLE)
213 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
214 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
217 #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql)
218 # INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
219 # RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
222 ENDIF(UNIX AND NOT APPLE)
225 #INCLUDE(InstallRequiredSystemLibraries)
226 INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION .)
227 #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
229 #=========================================================
231 #=========================================================
233 SET(CPACK_PACKAGE_NAME "vv")
234 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src")
235 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
236 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
237 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
238 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
239 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
240 SET(CPACK_PACKAGE_VERSION_MINOR "1")
241 SET(CPACK_PACKAGE_VERSION_PATCH "0")
242 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
245 # There is a bug in NSI that does not handle full unix paths properly. Make
246 # sure there is at least one set of four (4) backlasshes.
247 SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\icons\\\\ducky.ico")
248 SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_BUILD_TYPE}\\\\vv.exe")
249 SET(CPACK_NSIS_DISPLAY_NAME "vv - The 4D slicer")
250 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv")
251 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
252 SET(CPACK_NSIS_CONTACT "vv@creatis.insa-lyon.fr")
253 SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\vv.lnk\\\" \\\"$INSTDIR\\\\vv.exe\\\" ")
254 SET(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\vv.lnk\\\" ")
255 #SET(CPACK_NSIS_MODIFY_PATH ON) SR: buggy, wait for cmake updates for a fix
256 #SET(CPACK_BINARY_ZIP ON)
258 SET(CPACK_GENERATOR "STGZ")
259 SET(CPACK_SOURCE_GENERATOR "TGZ")
262 #=========================================================