1 cmake_minimum_required(VERSION 2.4)
3 #=========================================================
4 # To avoid warning with some version
5 if(COMMAND cmake_policy)
6 cmake_policy(SET CMP0003 NEW)
7 endif(COMMAND cmake_policy)
8 #=========================================================
10 #=========================================================
11 #List of vv tools to compile
14 vvToolRigidReg ## Very long to compile
21 vvToolConvert ## with dummy vvToolConvert.ui
23 ## these ones are for tests (not working)
25 # vvToolFooWithWidgetBase
27 # vvToolConnectedComponentLabeling
29 # dependencies of the tools
30 # Future issues : when tool depend on other tools ... how to manage that ?
31 SET(vvToolRigidReg_LIBS clitkAffineRegistrationLib clitkRegistrationGgoLib)
32 SET(vvToolBinarize_LIBS clitkBinarizeImageLib)
33 SET(vvToolResample_LIBS clitkImageResampleLib)
34 SET(vvToolConvert_LIBS clitkImageConvertLib)
35 SET(vvToolExtractPatient_LIBS clitkSegmentationGgoLib)
36 SET(vvToolExtractLung_LIBS clitkSegmentationGgoLib)
37 SET(vvToolCropImage_LIBS clitkToolsGgoLib)
39 #=========================================================
40 # List of vv source files
42 # in COMMON_WITH_UI -> must have .h and .cxx and .ui
54 vvIntensityValueSlider
55 vvLabelImageLoaderWidget
57 vvToolSimpleInputSelectorWidget
58 vvToolInputSelectorWidget
59 vvToolStructureSetManager
64 vvQProgressDialogITKCommand.cxx
65 vvQDicomSeriesSelector.cxx
69 vvDeformableRegistration.cxx
71 vvInteractorStyleNavigator.cxx
82 vvSlicerManagerCommand.cxx
84 vvMaximumIntensityProjection.cxx
89 vvImageMapToWLColors.cxx
92 vvBinaryImageOverlayActor.cxx
93 vvStructureSetActor.cxx
100 #=========================================================
101 # Qt related commands
102 FIND_PACKAGE(Qt4 REQUIRED)
109 vvQDicomSeriesSelector.h
112 vvStructureSetActor.h
117 QT4_WRAP_UI(vv_UI_CXX
118 qt_ui/vvHelpDialog.ui
119 qt_ui/vvDocumentation.ui
120 qt_ui/vvDicomSeriesSelector.ui
121 qt_ui/vvDummyWindow.ui #For testing
124 QT4_ADD_RESOURCES(vv_SRCS vvIcons.qrc)
126 #Add the autotools and the common files ui
127 foreach(tool ${vv_TOOLS} ${vv_COMMON_WITH_UI})
128 SET(vv_SRCS ${vv_SRCS} ${tool}.cxx)
129 QT4_WRAP_CPP(vv_SRCS ${tool}.h)
130 QT4_WRAP_UI(vv_UI_CXX qt_ui/${tool}.ui)
133 #Add the common source files
134 foreach(tool ${vv_COMMON})
135 SET(vv_SRCS ${vv_SRCS} ${tool}.cxx)
136 QT4_WRAP_CPP(vv_SRCS ${tool}.h)
139 # if Windows and Qt was built as a static lib then don't set QT_DLL flag
142 IF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
143 FILE(READ ${QT_LIBRARY_DIR}/QtCore.prl QT_CORE_PRL)
144 IF(${QT_CORE_PRL} MATCHES "static")
146 ENDIF(${QT_CORE_PRL} MATCHES "static")
147 ENDIF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
150 ADD_DEFINITIONS(-DQT_DLL)
153 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
158 ${QT_QTGUI_INCLUDE_DIR}
159 ${QT_QTCORE_INCLUDE_DIR}
160 ${CMAKE_CURRENT_BINARY_DIR}
161 ${CMAKE_CURRENT_SOURCE_DIR}
163 #=========================================================
165 #=========================================================
166 #support for parallel deformable registration with OpenMP
168 IF(CMAKE_COMPILER_IS_GNUCC)
169 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
170 ENDIF(CMAKE_COMPILER_IS_GNUCC)
172 #=========================================================
174 #=========================================================
182 SET(EXE_ICON vvIcon.rc)
185 LINK_DIRECTORIES(${QT_INCLUDES})
186 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
187 ADD_DEPENDENCIES(vv clitkToolsGgoLib clitkSegmentationGgoLib)
188 TARGET_LINK_LIBRARIES(vv clitkDicomRTStruct)
190 #=========================================================
191 #Add each tool's dependencies
192 foreach(tool ${vv_TOOLS})
193 target_link_libraries(vv ${${tool}_LIBS})
196 #=========================================================
197 #Add Foundation Libraries (this should be after our libraries, since we depend
199 TARGET_LINK_LIBRARIES(vv
200 clitkCommon ${ITK_LIBRARIES} QVTK vtkHybrid)
202 #=========================================================
203 # Install options (also used by CPack)
204 IF(UNIX AND NOT APPLE)
205 INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
206 INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
209 #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql)
210 # INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
211 # RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
214 ENDIF(UNIX AND NOT APPLE)
217 #INCLUDE(InstallRequiredSystemLibraries)
218 INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION .)
219 #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
221 #=========================================================
223 #=========================================================
225 SET(CPACK_PACKAGE_NAME "vv")
226 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src")
227 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
228 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
229 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
230 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
231 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
232 SET(CPACK_PACKAGE_VERSION_MINOR "1")
233 SET(CPACK_PACKAGE_VERSION_PATCH "0")
234 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
237 # There is a bug in NSI that does not handle full unix paths properly. Make
238 # sure there is at least one set of four (4) backlasshes.
239 SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\icons\\\\ducky.ico")
240 SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_BUILD_TYPE}\\\\vv.exe")
241 SET(CPACK_NSIS_DISPLAY_NAME "vv - The 4D slicer")
242 SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv")
243 SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
244 SET(CPACK_NSIS_CONTACT "vv@creatis.insa-lyon.fr")
245 SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\vv.lnk\\\" \\\"$INSTDIR\\\\vv.exe\\\" ")
246 SET(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\vv.lnk\\\" ")
247 #SET(CPACK_NSIS_MODIFY_PATH ON) SR: buggy, wait for cmake updates for a fix
248 #SET(CPACK_BINARY_ZIP ON)
250 SET(CPACK_GENERATOR "STGZ")
251 SET(CPACK_SOURCE_GENERATOR "TGZ")
254 #=========================================================