1 cmake_minimum_required(VERSION 2.4)
2 #=========================================================
3 INCLUDE(${PROJECT_SOURCE_DIR}/cmake/common.cmake)
4 #=========================================================
6 #Set a reasonable build mode default if the user hasn't set any
7 if (NOT CMAKE_BUILD_TYPE)
8 set(CMAKE_BUILD_TYPE RelWithDebInfo)
9 endif (NOT CMAKE_BUILD_TYPE)
11 #=========================================================
15 INCLUDE(${ITK_USE_FILE})
18 "Cannot build without ITK. Please set ITK_DIR.")
20 #=========================================================
22 #=========================================================
24 FIND_PACKAGE(Qt4 REQUIRED)
26 #=========================================================
31 ${QT_QTGUI_INCLUDE_DIR}
32 ${QT_QTCORE_INCLUDE_DIR}
33 ${CMAKE_CURRENT_BINARY_DIR}
34 ${CMAKE_CURRENT_SOURCE_DIR}
39 #=========================================================
40 # To avoid warning with some version
41 if(COMMAND cmake_policy)
42 cmake_policy(SET CMP0003 NEW)
43 endif(COMMAND cmake_policy)
45 #SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin)
46 #SET(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}/../lib)
48 #=========================================================
65 LINK_DIRECTORIES(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} )
67 #=========================================================
69 OPTION(CLITK_VV_USE_BDCM "Build vv with Dicom selector bdcm" OFF)
76 vvQProgressDialogITKCommand.cxx
77 vvQDicomSeriesSelector.cxx
81 vvSegmentationDialog.cxx
82 vvSurfaceViewerDialog.cxx
84 vvDeformationDialog.cxx
87 nkitkXDRImageIOFactory.cxx
88 nkitkXDRImageIOReader.cxx
89 vvDeformableRegistration.cxx
91 vvInteractorStyleNavigator.cxx
102 vvSlicerManagerCommand.cxx
104 vvMaximumIntensityProjection.cxx
111 vvImageMapToWLColors.cxx
112 vvIntensityValueSlider.cxx
114 vvToolCreatorBase.cxx
116 vvToolInputSelectorWidget.cxx
131 vvQDicomSeriesSelector.h
133 vvSegmentationDialog.h
134 vvSurfaceViewerDialog.h
135 vvDeformationDialog.h
139 vvIntensityValueSlider.h
142 vvToolInputSelectorWidget.h
145 QT4_WRAP_UI(vv_UI_CXX
146 qt_ui/vvMainWindow.ui
149 qt_ui/vvOverlayPanel.ui
150 qt_ui/vvLandmarksPanel.ui
151 qt_ui/vvHelpDialog.ui
152 qt_ui/vvDocumentation.ui
153 qt_ui/vvProgressDialog.ui
154 qt_ui/vvDicomSeriesSelector.ui
155 qt_ui/vvSegmentationDialog.ui
156 qt_ui/vvSurfaceViewerDialog.ui
157 qt_ui/vvResamplerDialog.ui
158 qt_ui/vvDeformationDialog.ui
159 qt_ui/vvStructSelector.ui
160 qt_ui/vvCropDialog.ui
161 qt_ui/vvDummyWindow.ui #For testing
162 qt_ui/vvIntensityValueSlider.ui
163 qt_ui/vvToolBinarize.ui
164 qt_ui/vvToolInputSelectorWidget.ui
167 SET(vvUI_RCCS vvIcons.qrc)
168 QT4_ADD_RESOURCES(vv_SRCS ${vvUI_RCCS})
170 #=========================================================
171 #support for parallel deformable registration with OpenMP
172 IF(CMAKE_COMPILER_IS_GNUCC)
173 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native")
174 ENDIF(CMAKE_COMPILER_IS_GNUCC)
176 #=========================================================
178 IF (CLITK_VV_USE_BDCM)
181 INCLUDE(${bdcm_USE_FILE})
184 "Cannot build without BDCM. Please set BDCM_DIR.")
186 #LINK_DIRECTORIES(/home/dsarrut/src/bdcm/build/)
187 #INCLUDE_DIRECTORIES(/home/dsarrut/src/bdcm/src2/)
191 INCLUDE(${GDCM_USE_FILE})
194 "Cannot build without GDCM. Please set GDCM_DIR.")
197 ENDIF (CLITK_VV_USE_BDCM)
200 SET(EXE_ICON vvIcon.rc)
203 ADD_DEFINITIONS(-DQT_DLL)
205 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
207 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
208 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
211 #QT4_WRAP_CPP(VVS_MOC_OUTFILE vvs.h)
212 #QT4_WRAP_UI(VVS_UI_OUTFILE qt_ui/vvDummyWindow.ui)
213 #ADD_EXECUTABLE(vvs ${vv_SRCS} vvs.cxx ${vv_UI_CXX} ${VVS_UI_OUTFILE}
214 #${VVS_MOC_OUTFILE} ${EXE_ICON})
215 #TARGET_LINK_LIBRARIES(vvs ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
217 IF (CLITK_VV_USE_BDCM)
218 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} bdcm)
219 ELSE (CLITK_VV_USE_BDCM)
220 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
221 ENDIF (CLITK_VV_USE_BDCM)
224 # # resource compilation for MinGW
225 # ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o
226 # COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/vvIcons.qrc -o ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o )
227 # SET(vv_SRCS ${vv_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o)
231 # ADD_EXECUTABLE(vv WIN32 ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
233 # ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
235 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} QVTKWidgetPlugin )
237 #=========================================================
239 INSTALL(TARGETS vv vv
240 RUNTIME DESTINATION bin CONFIGURATIONS relwithdebinfo
241 LIBRARY DESTINATION lib CONFIGURATIONS relwithdebinfo
242 ARCHIVE DESTINATION lib CONFIGURATIONS relwithdebinfo)
243 INSTALL(FILES ${vv_HDRS} DESTINATION include)
246 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/ducky.png DESTINATION bin)
247 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}relwithdebinfo/vv.exe DESTINATION bin)
248 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin)
249 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin)
250 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkCommon.dll DESTINATION bin)
251 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtksys.dll DESTINATION bin)
252 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkRendering.dll DESTINATION bin)
253 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGraphics.dll DESTINATION bin)
254 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkImaging.dll DESTINATION bin)
255 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkFiltering.dll DESTINATION bin)
256 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGenericFiltering.dll DESTINATION bin)
257 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkIO.dll DESTINATION bin)
258 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/verdict.dll DESTINATION bin)
259 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/QVTK.dll DESTINATION bin)
260 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/QVTKWidgetPlugin.dll DESTINATION bin)
261 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkDICOMParser.dll DESTINATION bin)
262 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkexoIIc.dll DESTINATION bin)
263 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkexpat.dll DESTINATION bin)
264 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkmetaio.dll DESTINATION bin)
265 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkftgl.dll DESTINATION bin)
266 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkfreetype.dll DESTINATION bin)
267 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGenericFiltering.dll DESTINATION bin)
268 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkHybrid.dll DESTINATION bin)
269 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkInfovis.dll DESTINATION bin)
270 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkjpeg.dll DESTINATION bin)
271 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtklibxml2.dll DESTINATION bin)
272 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkNetCDF.dll DESTINATION bin)
273 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkpng.dll DESTINATION bin)
274 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtktiff.dll DESTINATION bin)
275 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkViews.dll DESTINATION bin)
276 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkVolumeRendering.dll DESTINATION bin)
277 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkWidgets.dll DESTINATION bin)
278 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkzlib.dll DESTINATION bin)
282 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
283 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
284 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}vv DESTINATION bin)
287 #=========================================================
289 INCLUDE(InstallRequiredSystemLibraries)
291 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
292 SET(CPACK_PACKAGE_VENDOR "Creatis, CLB/RIO Team")
293 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
294 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
295 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
296 SET(CPACK_PACKAGE_VERSION_MINOR "0")
297 SET(CPACK_PACKAGE_VERSION_PATCH "0")
298 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
299 IF(WIN32 AND NOT UNIX)
300 # There is a bug in NSI that does not handle full unix paths properly. Make
301 # sure there is at least one set of four (4) backlasshes.
302 SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\ducky.png")
303 SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/relwithdebinfo\\\\vv.exe")
304 SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
305 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio")
306 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
307 SET(CPACK_NSIS_MODIFY_PATH ON)
308 ELSE(WIN32 AND NOT UNIX)
309 SET(CPACK_STRIP_FILES "bin/vv")
310 SET(CPACK_SOURCE_STRIP_FILES "")
311 ENDIF(WIN32 AND NOT UNIX)
312 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")