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
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
107 # vvToolFooWithWidgetBase.cxx
110 vvToolSimpleInputSelectorWidget.cxx
111 vvToolInputSelectorWidget.cxx
113 vvToolImageArithm.cxx
128 vvQDicomSeriesSelector.h
130 vvSegmentationDialog.h
131 vvSurfaceViewerDialog.h
132 vvDeformationDialog.h
135 vvIntensityValueSlider.h
138 # vvToolFooWithWidgetBase.h
140 vvToolSimpleInputSelectorWidget.h
141 vvToolInputSelectorWidget.h
148 QT4_WRAP_UI(vv_UI_CXX
149 qt_ui/vvMainWindow.ui
152 qt_ui/vvOverlayPanel.ui
153 qt_ui/vvLandmarksPanel.ui
154 qt_ui/vvHelpDialog.ui
155 qt_ui/vvDocumentation.ui
156 qt_ui/vvProgressDialog.ui
157 qt_ui/vvDicomSeriesSelector.ui
158 qt_ui/vvSegmentationDialog.ui
159 qt_ui/vvSurfaceViewerDialog.ui
160 qt_ui/vvResamplerDialog.ui
161 qt_ui/vvDeformationDialog.ui
162 qt_ui/vvStructSelector.ui
163 qt_ui/vvDummyWindow.ui #For testing
164 qt_ui/vvIntensityValueSlider.ui
165 qt_ui/vvToolSimpleInputSelectorWidget.ui
166 qt_ui/vvToolInputSelectorWidget.ui
167 qt_ui/vvToolWidgetBase.ui
169 qt_ui/vvToolCropImage.ui
170 qt_ui/vvToolBinarize.ui
171 qt_ui/vvToolImageArithm.ui
174 SET(vvUI_RCCS vvIcons.qrc)
175 QT4_ADD_RESOURCES(vv_SRCS ${vvUI_RCCS})
177 #=========================================================
178 #support for parallel deformable registration with OpenMP
179 IF(CMAKE_COMPILER_IS_GNUCC)
180 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native")
181 ENDIF(CMAKE_COMPILER_IS_GNUCC)
183 #=========================================================
185 IF (CLITK_VV_USE_BDCM)
188 INCLUDE(${bdcm_USE_FILE})
191 "Cannot build without BDCM. Please set BDCM_DIR.")
193 #LINK_DIRECTORIES(/home/dsarrut/src/bdcm/build/)
194 #INCLUDE_DIRECTORIES(/home/dsarrut/src/bdcm/src2/)
198 INCLUDE(${GDCM_USE_FILE})
201 "Cannot build without GDCM. Please set GDCM_DIR.")
204 ENDIF (CLITK_VV_USE_BDCM)
207 SET(EXE_ICON vvIcon.rc)
210 ADD_DEFINITIONS(-DQT_DLL)
212 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
214 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
215 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
218 #QT4_WRAP_CPP(VVS_MOC_OUTFILE vvs.h)
219 #QT4_WRAP_UI(VVS_UI_OUTFILE qt_ui/vvDummyWindow.ui)
220 #ADD_EXECUTABLE(vvs ${vv_SRCS} vvs.cxx ${vv_UI_CXX} ${VVS_UI_OUTFILE}
221 #${VVS_MOC_OUTFILE} ${EXE_ICON})
222 #TARGET_LINK_LIBRARIES(vvs ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
224 IF (CLITK_VV_USE_BDCM)
225 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} bdcm)
226 ELSE (CLITK_VV_USE_BDCM)
227 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
228 ENDIF (CLITK_VV_USE_BDCM)
231 # # resource compilation for MinGW
232 # ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o
233 # COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/vvIcons.qrc -o ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o )
234 # SET(vv_SRCS ${vv_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o)
238 # ADD_EXECUTABLE(vv WIN32 ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
240 # ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
242 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} QVTKWidgetPlugin )
244 #=========================================================
246 INSTALL(TARGETS vv vv
247 RUNTIME DESTINATION bin CONFIGURATIONS ${CMAKE_BUILD_TYPE}
248 LIBRARY DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE}
249 ARCHIVE DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE})
250 INSTALL(FILES ${vv_HDRS} DESTINATION include)
253 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
254 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION bin)
255 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin)
256 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin)
257 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtWebKit4.dll DESTINATION bin)
258 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtOpenGL4.dll DESTINATION bin)
259 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/phonon4.dll DESTINATION bin)
260 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtXmlPatterns4.dll DESTINATION bin)
261 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtNetwork4.dll DESTINATION bin)
262 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtSql4.dll DESTINATION bin)
263 INSTALL (FILES ${ITK_DIR}/bin/${CMAKE_BUILD_TYPE}/itkCommon.dll DESTINATION bin)
264 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkCommon.dll DESTINATION bin)
265 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtksys.dll DESTINATION bin)
266 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkRendering.dll DESTINATION bin)
267 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGraphics.dll DESTINATION bin)
268 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkImaging.dll DESTINATION bin)
269 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkFiltering.dll DESTINATION bin)
270 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGenericFiltering.dll DESTINATION bin)
271 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkIO.dll DESTINATION bin)
272 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkverdict.dll DESTINATION bin)
273 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/QVTK.dll DESTINATION bin)
274 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkDICOMParser.dll DESTINATION bin)
275 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexoIIc.dll DESTINATION bin)
276 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexpat.dll DESTINATION bin)
277 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkmetaio.dll DESTINATION bin)
278 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkftgl.dll DESTINATION bin)
279 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkfreetype.dll DESTINATION bin)
280 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkHybrid.dll DESTINATION bin)
281 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkInfovis.dll DESTINATION bin)
282 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkjpeg.dll DESTINATION bin)
283 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtklibxml2.dll DESTINATION bin)
284 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkNetCDF.dll DESTINATION bin)
285 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkpng.dll DESTINATION bin)
286 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtktiff.dll DESTINATION bin)
287 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkViews.dll DESTINATION bin)
288 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkWidgets.dll DESTINATION bin)
289 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkzlib.dll DESTINATION bin)
290 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkQtChart.dll DESTINATION bin)
291 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkalglib.dll DESTINATION bin)
295 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
296 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
297 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}vv DESTINATION bin)
300 #=========================================================
302 INCLUDE(InstallRequiredSystemLibraries)
304 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
305 SET(CPACK_PACKAGE_VENDOR "Creatis, CLB/RIO Team")
306 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
307 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
308 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
309 SET(CPACK_PACKAGE_VERSION_MINOR "1")
310 SET(CPACK_PACKAGE_VERSION_PATCH "0")
311 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
312 IF(WIN32 AND NOT UNIX)
313 # There is a bug in NSI that does not handle full unix paths properly. Make
314 # sure there is at least one set of four (4) backlasshes.
315 # SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\ducky.png")
316 # SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/${CMAKE_BUILD_TYPE}\\\\vv.exe")
317 SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
318 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio")
319 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
320 SET(CPACK_NSIS_MODIFY_PATH ON)
321 ELSE(WIN32 AND NOT UNIX)
322 SET(CPACK_STRIP_FILES "bin/vv")
323 SET(CPACK_SOURCE_STRIP_FILES "")
324 ENDIF(WIN32 AND NOT UNIX)
325 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")