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
204 #=========================================================
205 #Add each tool's dependencies
206 foreach(tool ${vv_TOOLS})
207 target_link_libraries(vv ${${tool}_LIBS})
210 #=========================================================
211 #Add Foundation Libraries (this should be after our libraries, since we depend
213 TARGET_LINK_LIBRARIES(vv
214 clitkCommon ${ITK_LIBRARIES} QVTK vtkHybrid)
216 #=========================================================
217 # Install options (also used by CPack)
218 IF(UNIX AND NOT APPLE)
219 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
220 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
223 #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql)
224 # INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
225 # RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
228 ENDIF(UNIX AND NOT APPLE)
231 #INCLUDE(InstallRequiredSystemLibraries)
232 INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION .)
233 #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
235 #=========================================================
237 #=========================================================
239 SET(CPACK_PACKAGE_NAME "vv")
240 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src")
241 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
242 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
243 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
244 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
245 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
246 SET(CPACK_PACKAGE_VERSION_MINOR "1")
247 SET(CPACK_PACKAGE_VERSION_PATCH "0")
248 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
251 # There is a bug in NSI that does not handle full unix paths properly. Make
252 # sure there is at least one set of four (4) backlasshes.
253 SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\icons\\\\ducky.ico")
254 SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_BUILD_TYPE}\\\\vv.exe")
255 SET(CPACK_NSIS_DISPLAY_NAME "vv - The 4D slicer")
256 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv")
257 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
258 SET(CPACK_NSIS_CONTACT "vv@creatis.insa-lyon.fr")
259 SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\vv.lnk\\\" \\\"$INSTDIR\\\\vv.exe\\\" ")
260 SET(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\vv.lnk\\\" ")
261 #SET(CPACK_NSIS_MODIFY_PATH ON) SR: buggy, wait for cmake updates for a fix
262 #SET(CPACK_BINARY_ZIP ON)
264 SET(CPACK_GENERATOR "STGZ")
265 SET(CPACK_SOURCE_GENERATOR "TGZ")
268 #=========================================================