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 #=========================================================
60 LINK_DIRECTORIES(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} )
62 #=========================================================
64 OPTION(CLITK_VV_USE_BDCM "Build vv with Dicom selector bdcm" OFF)
71 vvQProgressDialogITKCommand.cxx
72 vvQDicomSeriesSelector.cxx
74 vvSegmentationDialog.cxx
75 vvSurfaceViewerDialog.cxx
78 vvDeformationDialog.cxx
80 vvDeformableRegistration.cxx
82 vvInteractorStyleNavigator.cxx
93 vvSlicerManagerCommand.cxx
95 vvMaximumIntensityProjection.cxx
101 vvImageMapToWLColors.cxx
102 vvIntensityValueSlider.cxx
104 vvToolCreatorBase.cxx
106 vvToolMedianFilter.cxx
108 # vvToolFooWithWidgetBase.cxx
111 vvToolSimpleInputSelectorWidget.cxx
112 vvToolInputSelectorWidget.cxx
114 vvToolImageArithm.cxx
116 # vvToolStructureSetManager.cxx
117 # vvStructureSetActor.cxx
133 vvQDicomSeriesSelector.h
134 vvSegmentationDialog.h
135 vvSurfaceViewerDialog.h
136 vvDeformationDialog.h
139 vvIntensityValueSlider.h
142 # vvToolFooWithWidgetBase.h
145 vvToolSimpleInputSelectorWidget.h
146 vvToolInputSelectorWidget.h
151 # vvToolStructureSetManager.h
152 # vvStructureSetActor.h
157 QT4_WRAP_UI(vv_UI_CXX
158 qt_ui/vvMainWindow.ui
161 qt_ui/vvOverlayPanel.ui
162 qt_ui/vvLandmarksPanel.ui
163 qt_ui/vvHelpDialog.ui
164 qt_ui/vvDocumentation.ui
165 qt_ui/vvProgressDialog.ui
166 qt_ui/vvDicomSeriesSelector.ui
167 qt_ui/vvSegmentationDialog.ui
168 qt_ui/vvSurfaceViewerDialog.ui
169 qt_ui/vvDeformationDialog.ui
170 qt_ui/vvStructSelector.ui
171 qt_ui/vvDummyWindow.ui #For testing
172 qt_ui/vvIntensityValueSlider.ui
173 qt_ui/vvToolSimpleInputSelectorWidget.ui
174 qt_ui/vvToolInputSelectorWidget.ui
175 qt_ui/vvToolWidgetBase.ui
176 qt_ui/vvToolMedianFilter.ui
178 qt_ui/vvToolCropImage.ui
179 qt_ui/vvToolBinarize.ui
180 qt_ui/vvToolImageArithm.ui
181 # qt_ui/vvToolStructureSetManager.ui
182 qt_ui/vvToolResample.ui
185 SET(vvUI_RCCS vvIcons.qrc)
186 QT4_ADD_RESOURCES(vv_SRCS ${vvUI_RCCS})
188 #=========================================================
189 #support for parallel deformable registration with OpenMP
191 IF(CMAKE_COMPILER_IS_GNUCC)
192 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native")
193 ENDIF(CMAKE_COMPILER_IS_GNUCC)
195 #=========================================================
197 IF (CLITK_VV_USE_BDCM)
200 INCLUDE(${bdcm_USE_FILE})
203 "Cannot build without BDCM. Please set BDCM_DIR.")
205 #LINK_DIRECTORIES(/home/dsarrut/src/bdcm/build/)
206 #INCLUDE_DIRECTORIES(/home/dsarrut/src/bdcm/src2/)
210 INCLUDE(${GDCM_USE_FILE})
213 "Cannot build without GDCM. Please set GDCM_DIR.")
216 ENDIF (CLITK_VV_USE_BDCM)
219 SET(EXE_ICON vvIcon.rc)
222 ADD_DEFINITIONS(-DQT_DLL)
224 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
226 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
227 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
230 #QT4_WRAP_CPP(VVS_MOC_OUTFILE vvs.h)
231 #QT4_WRAP_UI(VVS_UI_OUTFILE qt_ui/vvDummyWindow.ui)
232 #ADD_EXECUTABLE(vvs ${vv_SRCS} vvs.cxx ${vv_UI_CXX} ${VVS_UI_OUTFILE}
233 #${VVS_MOC_OUTFILE} ${EXE_ICON})
234 #TARGET_LINK_LIBRARIES(vvs ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
236 IF (CLITK_VV_USE_BDCM)
237 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} bdcm)
238 ELSE (CLITK_VV_USE_BDCM)
239 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
240 ENDIF (CLITK_VV_USE_BDCM)
243 # # resource compilation for MinGW
244 # ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o
245 # COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/vvIcons.qrc -o ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o )
246 # SET(vv_SRCS ${vv_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o)
250 # ADD_EXECUTABLE(vv WIN32 ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
252 # ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
254 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} QVTKWidgetPlugin )
256 #=========================================================
258 INSTALL(TARGETS vv vv
259 RUNTIME DESTINATION bin CONFIGURATIONS ${CMAKE_BUILD_TYPE}
260 LIBRARY DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE}
261 ARCHIVE DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE})
262 INSTALL(FILES ${vv_HDRS} DESTINATION include)
265 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
266 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION bin)
267 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin)
268 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin)
269 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtWebKit4.dll DESTINATION bin)
270 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtOpenGL4.dll DESTINATION bin)
271 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/phonon4.dll DESTINATION bin)
272 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtXmlPatterns4.dll DESTINATION bin)
273 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtNetwork4.dll DESTINATION bin)
274 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtSql4.dll DESTINATION bin)
275 INSTALL (FILES ${ITK_DIR}/bin/${CMAKE_BUILD_TYPE}/itkCommon.dll DESTINATION bin)
276 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkCommon.dll DESTINATION bin)
277 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtksys.dll DESTINATION bin)
278 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkRendering.dll DESTINATION bin)
279 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGraphics.dll DESTINATION bin)
280 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkImaging.dll DESTINATION bin)
281 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkFiltering.dll DESTINATION bin)
282 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGenericFiltering.dll DESTINATION bin)
283 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkIO.dll DESTINATION bin)
284 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkverdict.dll DESTINATION bin)
285 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/QVTK.dll DESTINATION bin)
286 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkDICOMParser.dll DESTINATION bin)
287 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexoIIc.dll DESTINATION bin)
288 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexpat.dll DESTINATION bin)
289 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkmetaio.dll DESTINATION bin)
290 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkftgl.dll DESTINATION bin)
291 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkfreetype.dll DESTINATION bin)
292 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkHybrid.dll DESTINATION bin)
293 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkInfovis.dll DESTINATION bin)
294 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkjpeg.dll DESTINATION bin)
295 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtklibxml2.dll DESTINATION bin)
296 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkNetCDF.dll DESTINATION bin)
297 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkpng.dll DESTINATION bin)
298 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtktiff.dll DESTINATION bin)
299 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkViews.dll DESTINATION bin)
300 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkWidgets.dll DESTINATION bin)
301 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkzlib.dll DESTINATION bin)
302 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkQtChart.dll DESTINATION bin)
303 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkalglib.dll DESTINATION bin)
307 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
308 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
309 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}vv DESTINATION bin)
312 #=========================================================
314 INCLUDE(InstallRequiredSystemLibraries)
316 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
317 SET(CPACK_PACKAGE_VENDOR "Creatis, CLB/RIO Team")
318 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
319 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
320 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
321 SET(CPACK_PACKAGE_VERSION_MINOR "1")
322 SET(CPACK_PACKAGE_VERSION_PATCH "0")
323 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
324 IF(WIN32 AND NOT UNIX)
325 # There is a bug in NSI that does not handle full unix paths properly. Make
326 # sure there is at least one set of four (4) backlasshes.
327 # SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\ducky.png")
328 # SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/${CMAKE_BUILD_TYPE}\\\\vv.exe")
329 SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
330 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio")
331 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
332 SET(CPACK_NSIS_MODIFY_PATH ON)
333 ELSE(WIN32 AND NOT UNIX)
334 SET(CPACK_STRIP_FILES "bin/vv")
335 SET(CPACK_SOURCE_STRIP_FILES "")
336 ENDIF(WIN32 AND NOT UNIX)
337 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")