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}
38 #=========================================================
40 #SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin)
41 #SET(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}/../lib)
43 #=========================================================
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
75 vvSegmentationDialog.cxx
76 vvSurfaceViewerDialog.cxx
78 vvDeformationDialog.cxx
81 nkitkXDRImageIOFactory.cxx
82 nkitkXDRImageIOReader.cxx
83 vvDeformableRegistration.cxx
85 vvInteractorStyleNavigator.cxx
96 vvSlicerManagerCommand.cxx
98 vvMaximumIntensityProjection.cxx
105 vvImageMapToWLColors.cxx
119 vvQDicomSeriesSelector.h
121 vvSegmentationDialog.h
122 vvSurfaceViewerDialog.h
123 vvDeformationDialog.h
129 QT4_WRAP_UI(vv_UI_CXX
130 qt_ui/vvMainWindow.ui
133 qt_ui/vvOverlayPanel.ui
134 qt_ui/vvLandmarksPanel.ui
135 qt_ui/vvHelpDialog.ui
136 qt_ui/vvDocumentation.ui
137 qt_ui/vvProgressDialog.ui
138 qt_ui/vvDicomSeriesSelector.ui
139 qt_ui/vvSegmentationDialog.ui
140 qt_ui/vvSurfaceViewerDialog.ui
141 qt_ui/vvResamplerDialog.ui
142 qt_ui/vvDeformationDialog.ui
143 qt_ui/vvStructSelector.ui
144 qt_ui/vvCropDialog.ui
145 qt_ui/vvDummyWindow.ui #For testing
148 SET(vvUI_RCCS vvIcons.qrc)
149 QT4_ADD_RESOURCES(vv_SRCS ${vvUI_RCCS})
151 #=========================================================
152 #support for parallel deformable registration with OpenMP
153 IF(CMAKE_COMPILER_IS_GNUCC)
154 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native")
155 ENDIF(CMAKE_COMPILER_IS_GNUCC)
157 #=========================================================
159 IF (CLITK_VV_USE_BDCM)
162 INCLUDE(${bdcm_USE_FILE})
165 "Cannot build without BDCM. Please set BDCM_DIR.")
167 #LINK_DIRECTORIES(/home/dsarrut/src/bdcm/build/)
168 #INCLUDE_DIRECTORIES(/home/dsarrut/src/bdcm/src2/)
172 INCLUDE(${GDCM_USE_FILE})
175 "Cannot build without GDCM. Please set GDCM_DIR.")
178 ENDIF (CLITK_VV_USE_BDCM)
181 SET(EXE_ICON vvIcon.rc)
184 ADD_DEFINITIONS(-DQT_DLL)
186 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
188 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
189 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
192 #QT4_WRAP_CPP(VVS_MOC_OUTFILE vvs.h)
193 #QT4_WRAP_UI(VVS_UI_OUTFILE qt_ui/vvDummyWindow.ui)
194 #ADD_EXECUTABLE(vvs ${vv_SRCS} vvs.cxx ${vv_UI_CXX} ${VVS_UI_OUTFILE}
195 #${VVS_MOC_OUTFILE} ${EXE_ICON})
196 #TARGET_LINK_LIBRARIES(vvs ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
198 IF (CLITK_VV_USE_BDCM)
199 TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} bdcm)
200 ELSE (CLITK_VV_USE_BDCM)
201 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} )
202 ENDIF (CLITK_VV_USE_BDCM)
205 # # resource compilation for MinGW
206 # ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o
207 # COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/vvIcons.qrc -o ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o )
208 # SET(vv_SRCS ${vv_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/vvIcons.o)
212 # ADD_EXECUTABLE(vv WIN32 ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
214 # ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
216 #TARGET_LINK_LIBRARIES(vv ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES} QVTKWidgetPlugin )
218 #=========================================================
220 INSTALL(TARGETS vv vv
221 RUNTIME DESTINATION bin CONFIGURATIONS relwithdebinfo
222 LIBRARY DESTINATION lib CONFIGURATIONS relwithdebinfo
223 ARCHIVE DESTINATION lib CONFIGURATIONS relwithdebinfo)
224 INSTALL(FILES ${vv_HDRS} DESTINATION include)
227 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/ducky.png DESTINATION bin)
228 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}relwithdebinfo/vv.exe DESTINATION bin)
229 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin)
230 INSTALL (FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin)
231 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkCommon.dll DESTINATION bin)
232 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtksys.dll DESTINATION bin)
233 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkRendering.dll DESTINATION bin)
234 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGraphics.dll DESTINATION bin)
235 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkImaging.dll DESTINATION bin)
236 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkFiltering.dll DESTINATION bin)
237 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGenericFiltering.dll DESTINATION bin)
238 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkIO.dll DESTINATION bin)
239 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/verdict.dll DESTINATION bin)
240 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/QVTK.dll DESTINATION bin)
241 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/QVTKWidgetPlugin.dll DESTINATION bin)
242 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkDICOMParser.dll DESTINATION bin)
243 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkexoIIc.dll DESTINATION bin)
244 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkexpat.dll DESTINATION bin)
245 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkmetaio.dll DESTINATION bin)
246 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkftgl.dll DESTINATION bin)
247 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkfreetype.dll DESTINATION bin)
248 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkGenericFiltering.dll DESTINATION bin)
249 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkHybrid.dll DESTINATION bin)
250 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkInfovis.dll DESTINATION bin)
251 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkjpeg.dll DESTINATION bin)
252 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtklibxml2.dll DESTINATION bin)
253 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkNetCDF.dll DESTINATION bin)
254 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkpng.dll DESTINATION bin)
255 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtktiff.dll DESTINATION bin)
256 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkViews.dll DESTINATION bin)
257 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkVolumeRendering.dll DESTINATION bin)
258 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkWidgets.dll DESTINATION bin)
259 INSTALL (FILES ${VTK_DIR}/bin/relwithdebinfo/vtkzlib.dll DESTINATION bin)
263 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
264 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
265 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}vv DESTINATION bin)
268 #=========================================================
270 INCLUDE(InstallRequiredSystemLibraries)
272 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
273 SET(CPACK_PACKAGE_VENDOR "Creatis, CLB/RIO Team")
274 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
275 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
276 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
277 SET(CPACK_PACKAGE_VERSION_MINOR "0")
278 SET(CPACK_PACKAGE_VERSION_PATCH "0")
279 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
280 IF(WIN32 AND NOT UNIX)
281 # There is a bug in NSI that does not handle full unix paths properly. Make
282 # sure there is at least one set of four (4) backlasshes.
283 SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\ducky.png")
284 SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/relwithdebinfo\\\\vv.exe")
285 SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
286 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio")
287 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
288 SET(CPACK_NSIS_MODIFY_PATH ON)
289 ELSE(WIN32 AND NOT UNIX)
290 SET(CPACK_STRIP_FILES "bin/vv")
291 SET(CPACK_SOURCE_STRIP_FILES "")
292 ENDIF(WIN32 AND NOT UNIX)
293 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")