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
77 vvDeformationDialog.cxx
79 vvDeformableRegistration.cxx
81 vvInteractorStyleNavigator.cxx
92 vvSlicerManagerCommand.cxx
94 vvMaximumIntensityProjection.cxx
101 vvImageMapToWLColors.cxx
102 vvIntensityValueSlider.cxx
104 vvToolCreatorBase.cxx
106 vvToolInputSelectorWidget.cxx
120 vvQDicomSeriesSelector.h
122 vvSegmentationDialog.h
123 vvSurfaceViewerDialog.h
124 vvDeformationDialog.h
128 vvIntensityValueSlider.h
131 vvToolInputSelectorWidget.h
134 QT4_WRAP_UI(vv_UI_CXX
135 qt_ui/vvMainWindow.ui
138 qt_ui/vvOverlayPanel.ui
139 qt_ui/vvLandmarksPanel.ui
140 qt_ui/vvHelpDialog.ui
141 qt_ui/vvDocumentation.ui
142 qt_ui/vvProgressDialog.ui
143 qt_ui/vvDicomSeriesSelector.ui
144 qt_ui/vvSegmentationDialog.ui
145 qt_ui/vvSurfaceViewerDialog.ui
146 qt_ui/vvResamplerDialog.ui
147 qt_ui/vvDeformationDialog.ui
148 qt_ui/vvStructSelector.ui
149 qt_ui/vvCropDialog.ui
150 qt_ui/vvDummyWindow.ui #For testing
151 qt_ui/vvIntensityValueSlider.ui
152 qt_ui/vvToolBinarize.ui
153 qt_ui/vvToolInputSelectorWidget.ui
156 SET(vvUI_RCCS vvIcons.qrc)
157 QT4_ADD_RESOURCES(vv_SRCS ${vvUI_RCCS})
159 #=========================================================
160 #support for parallel deformable registration with OpenMP
161 IF(CMAKE_COMPILER_IS_GNUCC)
162 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native")
163 ENDIF(CMAKE_COMPILER_IS_GNUCC)
165 #=========================================================
167 IF (CLITK_VV_USE_BDCM)
170 INCLUDE(${bdcm_USE_FILE})
173 "Cannot build without BDCM. Please set BDCM_DIR.")
175 #LINK_DIRECTORIES(/home/dsarrut/src/bdcm/build/)
176 #INCLUDE_DIRECTORIES(/home/dsarrut/src/bdcm/src2/)
180 INCLUDE(${GDCM_USE_FILE})
183 "Cannot build without GDCM. Please set GDCM_DIR.")
186 ENDIF (CLITK_VV_USE_BDCM)
189 SET(EXE_ICON vvIcon.rc)
192 ADD_DEFINITIONS(-DQT_DLL)
194 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
196 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
197 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
200 #QT4_WRAP_CPP(VVS_MOC_OUTFILE vvs.h)
201 #QT4_WRAP_UI(VVS_UI_OUTFILE qt_ui/vvDummyWindow.ui)
202 #ADD_EXECUTABLE(vvs ${vv_SRCS} vvs.cxx ${vv_UI_CXX} ${VVS_UI_OUTFILE}
203 #${VVS_MOC_OUTFILE} ${EXE_ICON})
204 #TARGET_LINK_LIBRARIES(vvs ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
206 IF (CLITK_VV_USE_BDCM)
207 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} bdcm)
208 ELSE (CLITK_VV_USE_BDCM)
209 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
210 ENDIF (CLITK_VV_USE_BDCM)
213 # # resource compilation for MinGW
214 # ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o
215 # COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/vvIcons.qrc -o ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o )
216 # SET(vv_SRCS ${vv_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o)
220 # ADD_EXECUTABLE(vv WIN32 ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
222 # ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
224 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} QVTKWidgetPlugin )
226 #=========================================================
228 INSTALL(TARGETS vv vv
229 RUNTIME DESTINATION bin CONFIGURATIONS ${CMAKE_BUILD_TYPE}
230 LIBRARY DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE}
231 ARCHIVE DESTINATION lib CONFIGURATIONS ${CMAKE_BUILD_TYPE})
232 INSTALL(FILES ${vv_HDRS} DESTINATION include)
235 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
236 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION bin)
237 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin)
238 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin)
239 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtWebKit4.dll DESTINATION bin)
240 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtOpenGL4.dll DESTINATION bin)
241 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/phonon4.dll DESTINATION bin)
242 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtXmlPatterns4.dll DESTINATION bin)
243 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtNetwork4.dll DESTINATION bin)
244 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtSql4.dll DESTINATION bin)
245 INSTALL (FILES ${ITK_DIR}/bin/${CMAKE_BUILD_TYPE}/itkCommon.dll DESTINATION bin)
246 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkCommon.dll DESTINATION bin)
247 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtksys.dll DESTINATION bin)
248 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkRendering.dll DESTINATION bin)
249 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGraphics.dll DESTINATION bin)
250 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkImaging.dll DESTINATION bin)
251 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkFiltering.dll DESTINATION bin)
252 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGenericFiltering.dll DESTINATION bin)
253 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkIO.dll DESTINATION bin)
254 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkverdict.dll DESTINATION bin)
255 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/QVTK.dll DESTINATION bin)
256 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/QVTKWidgetPlugin.dll DESTINATION bin)
257 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkDICOMParser.dll DESTINATION bin)
258 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexoIIc.dll DESTINATION bin)
259 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkexpat.dll DESTINATION bin)
260 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkmetaio.dll DESTINATION bin)
261 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkftgl.dll DESTINATION bin)
262 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkfreetype.dll DESTINATION bin)
263 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkGenericFiltering.dll DESTINATION bin)
264 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkHybrid.dll DESTINATION bin)
265 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkInfovis.dll DESTINATION bin)
266 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkjpeg.dll DESTINATION bin)
267 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtklibxml2.dll DESTINATION bin)
268 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkNetCDF.dll DESTINATION bin)
269 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkpng.dll DESTINATION bin)
270 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtktiff.dll DESTINATION bin)
271 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkViews.dll DESTINATION bin)
272 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkVolumeRendering.dll DESTINATION bin)
273 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkWidgets.dll DESTINATION bin)
274 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkzlib.dll DESTINATION bin)
275 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkQtChart.dll DESTINATION bin)
276 INSTALL (FILES ${VTK_DIR}/bin/${CMAKE_BUILD_TYPE}/vtkalglib.dll DESTINATION bin)
280 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
281 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
282 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}vv DESTINATION bin)
285 #=========================================================
287 INCLUDE(InstallRequiredSystemLibraries)
289 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
290 SET(CPACK_PACKAGE_VENDOR "Creatis, CLB/RIO Team")
291 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
292 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
293 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
294 SET(CPACK_PACKAGE_VERSION_MINOR "1")
295 SET(CPACK_PACKAGE_VERSION_PATCH "0")
296 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
297 IF(WIN32 AND NOT UNIX)
298 # There is a bug in NSI that does not handle full unix paths properly. Make
299 # sure there is at least one set of four (4) backlasshes.
300 # SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\ducky.png")
301 # SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/${CMAKE_BUILD_TYPE}\\\\vv.exe")
302 SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
303 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio")
304 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
305 SET(CPACK_NSIS_MODIFY_PATH ON)
306 ELSE(WIN32 AND NOT UNIX)
307 SET(CPACK_STRIP_FILES "bin/vv")
308 SET(CPACK_SOURCE_STRIP_FILES "")
309 ENDIF(WIN32 AND NOT UNIX)
310 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")