1 cmake_minimum_required(VERSION 2.4)
2 #=========================================================
3 INCLUDE(${PROJECT_SOURCE_DIR}/cmake/common.cmake)
4 #=========================================================
8 INCLUDE(${ITK_USE_FILE})
11 "Cannot build without ITK. Please set ITK_DIR.")
13 #=========================================================
15 #=========================================================
17 FIND_PACKAGE(Qt4 REQUIRED)
19 #=========================================================
24 ${QT_QTGUI_INCLUDE_DIR}
25 ${QT_QTCORE_INCLUDE_DIR}
26 ${CMAKE_CURRENT_BINARY_DIR}
27 ${CMAKE_CURRENT_SOURCE_DIR}
32 #=========================================================
33 # To avoid warning with some version
34 if(COMMAND cmake_policy)
35 cmake_policy(SET CMP0003 NEW)
36 endif(COMMAND cmake_policy)
38 #SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin)
39 #SET(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}/../lib)
41 #=========================================================
59 LINK_DIRECTORIES(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} )
61 #=========================================================
63 # OPTION(CLITK_VV_USE_BDCM "Build vv with Dicom selector bdcm" OFF)
70 vvQProgressDialogITKCommand.cxx
71 vvQDicomSeriesSelector.cxx
73 vvSegmentationDialog.cxx
74 vvSurfaceViewerDialog.cxx
77 vvDeformationDialog.cxx
79 vvDeformableRegistration.cxx
81 vvInteractorStyleNavigator.cxx
92 vvSlicerManagerCommand.cxx
94 vvMaximumIntensityProjection.cxx
100 vvImageMapToWLColors.cxx
101 vvIntensityValueSlider.cxx
103 vvToolCreatorBase.cxx
105 vvToolMedianFilter.cxx
108 # vvToolFooWithWidgetBase.cxx
111 vvToolSimpleInputSelectorWidget.cxx
112 vvToolInputSelectorWidget.cxx
114 vvBinaryImageOverlayActor.cxx
115 vvToolImageArithm.cxx
117 vvToolStructureSetManager.cxx
118 vvStructureSetActor.cxx
121 vvBlendImageActor.cxx
135 vvQDicomSeriesSelector.h
136 vvSegmentationDialog.h
137 vvSurfaceViewerDialog.h
138 vvDeformationDialog.h
141 vvIntensityValueSlider.h
144 # vvToolFooWithWidgetBase.h
148 vvToolSimpleInputSelectorWidget.h
149 vvToolInputSelectorWidget.h
154 vvToolStructureSetManager.h
155 vvStructureSetActor.h
160 QT4_WRAP_UI(vv_UI_CXX
161 qt_ui/vvMainWindow.ui
164 qt_ui/vvOverlayPanel.ui
165 qt_ui/vvLandmarksPanel.ui
166 qt_ui/vvHelpDialog.ui
167 qt_ui/vvDocumentation.ui
168 qt_ui/vvProgressDialog.ui
169 qt_ui/vvDicomSeriesSelector.ui
170 qt_ui/vvSegmentationDialog.ui
171 qt_ui/vvSurfaceViewerDialog.ui
172 qt_ui/vvDeformationDialog.ui
173 qt_ui/vvStructSelector.ui
174 qt_ui/vvDummyWindow.ui #For testing
175 qt_ui/vvIntensityValueSlider.ui
176 qt_ui/vvToolSimpleInputSelectorWidget.ui
177 qt_ui/vvToolInputSelectorWidget.ui
178 qt_ui/vvToolWidgetBase.ui
179 qt_ui/vvToolMedianFilter.ui
180 qt_ui/vvToolRigidReg.ui
182 qt_ui/vvToolCropImage.ui
183 qt_ui/vvToolBinarize.ui
184 qt_ui/vvToolImageArithm.ui
185 qt_ui/vvToolStructureSetManager.ui
186 qt_ui/vvToolResample.ui
189 SET(vvUI_RCCS vvIcons.qrc)
190 QT4_ADD_RESOURCES(vv_SRCS ${vvUI_RCCS})
192 #=========================================================
193 #support for parallel deformable registration with OpenMP
195 IF(CMAKE_COMPILER_IS_GNUCC)
196 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native")
197 ENDIF(CMAKE_COMPILER_IS_GNUCC)
199 #=========================================================
201 # IF (CLITK_VV_USE_BDCM)
204 # INCLUDE(${bdcm_USE_FILE})
206 # MESSAGE(FATAL_ERROR
207 # "Cannot build without BDCM. Please set BDCM_DIR.")
209 # #LINK_DIRECTORIES(/home/dsarrut/src/bdcm/build/)
210 # #INCLUDE_DIRECTORIES(/home/dsarrut/src/bdcm/src2/)
214 # INCLUDE(${GDCM_USE_FILE})
216 # MESSAGE(FATAL_ERROR
217 # "Cannot build without GDCM. Please set GDCM_DIR.")
220 # ENDIF (CLITK_VV_USE_BDCM)
223 SET(EXE_ICON vvIcon.rc)
226 ADD_DEFINITIONS(-DQT_DLL)
228 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
230 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
231 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
234 #QT4_WRAP_CPP(VVS_MOC_OUTFILE vvs.h)
235 #QT4_WRAP_UI(VVS_UI_OUTFILE qt_ui/vvDummyWindow.ui)
236 #ADD_EXECUTABLE(vvs ${vv_SRCS} vvs.cxx ${vv_UI_CXX} ${VVS_UI_OUTFILE}
237 #${VVS_MOC_OUTFILE} ${EXE_ICON})
238 #TARGET_LINK_LIBRARIES(vvs ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
240 IF (CLITK_VV_USE_BDCM)
241 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} bdcm)
242 ELSE (CLITK_VV_USE_BDCM)
243 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
244 ENDIF (CLITK_VV_USE_BDCM)
247 # # resource compilation for MinGW
248 # ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o
249 # COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/vvIcons.qrc -o ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o )
250 # SET(vv_SRCS ${vv_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o)
254 # ADD_EXECUTABLE(vv WIN32 ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
256 # ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
258 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} QVTKWidgetPlugin )
260 #=========================================================
262 INSTALL(TARGETS vv vv
263 RUNTIME DESTINATION bin CONFIGURATIONS ${CMAKE_BUILD_TYPE}
264 LIBRARY DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE}
265 ARCHIVE DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE})
266 INSTALL(FILES ${vv_HDRS} DESTINATION include)
269 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
270 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION bin)
271 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin)
272 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin)
273 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtWebKit4.dll DESTINATION bin)
274 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtOpenGL4.dll DESTINATION bin)
275 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/phonon4.dll DESTINATION bin)
276 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtXmlPatterns4.dll DESTINATION bin)
277 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtNetwork4.dll DESTINATION bin)
278 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtSql4.dll DESTINATION bin)
279 INSTALL (FILES ${ITK_DIR}/bin/${CMAKE_BUILD_TYPE}/itkCommon.dll DESTINATION bin)
280 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkCommon.dll DESTINATION bin)
281 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtksys.dll DESTINATION bin)
282 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkRendering.dll DESTINATION bin)
283 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGraphics.dll DESTINATION bin)
284 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkImaging.dll DESTINATION bin)
285 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkFiltering.dll DESTINATION bin)
286 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGenericFiltering.dll DESTINATION bin)
287 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkIO.dll DESTINATION bin)
288 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkverdict.dll DESTINATION bin)
289 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/QVTK.dll DESTINATION bin)
290 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkDICOMParser.dll DESTINATION bin)
291 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexoIIc.dll DESTINATION bin)
292 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexpat.dll DESTINATION bin)
293 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkmetaio.dll DESTINATION bin)
294 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkftgl.dll DESTINATION bin)
295 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkfreetype.dll DESTINATION bin)
296 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkHybrid.dll DESTINATION bin)
297 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkInfovis.dll DESTINATION bin)
298 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkjpeg.dll DESTINATION bin)
299 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtklibxml2.dll DESTINATION bin)
300 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkNetCDF.dll DESTINATION bin)
301 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkpng.dll DESTINATION bin)
302 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtktiff.dll DESTINATION bin)
303 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkViews.dll DESTINATION bin)
304 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkWidgets.dll DESTINATION bin)
305 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkzlib.dll DESTINATION bin)
306 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkQtChart.dll DESTINATION bin)
307 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkalglib.dll DESTINATION bin)
311 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
312 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
313 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}vv DESTINATION bin)
316 #=========================================================
318 INCLUDE(InstallRequiredSystemLibraries)
320 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
321 SET(CPACK_PACKAGE_VENDOR "Creatis, CLB/RIO Team")
322 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
323 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
324 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
325 SET(CPACK_PACKAGE_VERSION_MINOR "1")
326 SET(CPACK_PACKAGE_VERSION_PATCH "0")
327 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
328 IF(WIN32 AND NOT UNIX)
329 # There is a bug in NSI that does not handle full unix paths properly. Make
330 # sure there is at least one set of four (4) backlasshes.
331 # SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\ducky.png")
332 # SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/${CMAKE_BUILD_TYPE}\\\\vv.exe")
333 SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
334 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio")
335 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
336 SET(CPACK_NSIS_MODIFY_PATH ON)
337 ELSE(WIN32 AND NOT UNIX)
338 SET(CPACK_STRIP_FILES "bin/vv")
339 SET(CPACK_SOURCE_STRIP_FILES "")
340 ENDIF(WIN32 AND NOT UNIX)
341 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")