]> Creatis software - clitk.git/blob - vv/CMakeLists.txt
resolve registration dependencies for VeVe!
[clitk.git] / vv / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.4)
2
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 #=========================================================
9
10 #=========================================================
11 # List of vv source files
12 SET(vv_SRCS
13   vvInfoPanel.cxx
14   vvLinkPanel.cxx
15   vvOverlayPanel.cxx
16   vvLandmarksPanel.cxx
17   vvQProgressDialogITKCommand.cxx
18   vvQDicomSeriesSelector.cxx
19   QTreePushButton.cxx
20   vvSegmentationDialog.cxx
21   vvSurfaceViewerDialog.cxx
22   vvMainWindowBase.cxx
23   vvMainWindow.cxx
24   vvProgressDialog.cxx
25   vvDeformationDialog.cxx
26   vvImageWarp.cxx
27   vvDeformableRegistration.cxx
28   vtkVOXImageWriter.cxx
29   vvInteractorStyleNavigator.cxx
30   vvSlicer.cxx
31   vvImageReader.cxx
32   vvImageReader.txx
33   vvImageWriter.cxx
34   vvImageWriter.txx
35   vvLandmarks.cxx
36   vvLandmarksGlyph.cxx
37   vvGlyphSource.cxx
38   vvGlyph2D.cxx
39   vvSlicerManager.cxx
40   vvSlicerManagerCommand.cxx
41   vvUtils.cxx
42   vvMaximumIntensityProjection.cxx
43   vvMesh.cxx
44   vvMeshActor.cxx
45   vvMeshReader.cxx
46   vvStructSelector.cxx
47   vvMidPosition.cxx
48   vvImageMapToWLColors.cxx
49   vvIntensityValueSlider.cxx
50   vvThreadedFilter.cxx
51   vvToolManager.cxx
52   vvToolCreatorBase.cxx
53   vvToolWidgetBase.cxx
54 #  vvToolWidgetWithStepsBase.cxx
55   vvToolMedianFilter.cxx
56   vvToolRigidReg.cxx
57 #  vvToolFoo.cxx
58 #  vvToolFooWithWidgetBase.cxx
59   vvToolCropImage.cxx
60   vvToolBinarize.cxx
61   vvToolSimpleInputSelectorWidget.cxx
62   vvToolInputSelectorWidget.cxx
63   vvImageContour.cxx
64   vvBinaryImageOverlayActor.cxx
65   vvToolImageArithm.cxx
66   vvToolConvert.cxx
67   vvToolStructureSetManager.cxx
68   vvStructureSetActor.cxx
69   vvROIActor.cxx
70   vvToolResample.cxx
71   vvBlendImageActor.cxx
72   vvLabelImageLoaderWidget.cxx
73   vvToolExtractPatient.cxx
74   vvToolExtractLung.cxx
75   vvToolPlastimatch.cxx
76 #  vvToolConnectedComponentLabeling.cxx
77 )
78
79 #=========================================================
80
81 #=========================================================
82 # Qt related commands
83 FIND_PACKAGE(Qt4 REQUIRED)
84
85 QT4_WRAP_CPP(vv_SRCS 
86   vvMainWindowBase.h 
87   vvMainWindow.h 
88   QTreePushButton.h 
89   vvInfoPanel.h 
90   vvLinkPanel.h 
91   vvOverlayPanel.h 
92   vvLandmarksPanel.h 
93   vvDocumentation.h  
94   vvHelpDialog.h  
95   vvProgressDialog.h 
96   vvQDicomSeriesSelector.h 
97   vvSegmentationDialog.h
98   vvSurfaceViewerDialog.h
99   vvDeformationDialog.h
100   vvSlicerManager.h
101   vvStructSelector.h
102   vvIntensityValueSlider.h
103   vvThreadedFilter.h
104   vvToolCreatorBase.h
105 #  vvToolFoo.h
106 #  vvToolFooWithWidgetBase.h
107   vvToolMedianFilter.h
108   vvToolRigidReg.h
109   vvToolBinarize.h
110   vvToolSimpleInputSelectorWidget.h
111   vvToolInputSelectorWidget.h
112   vvToolWidgetBase.h
113 #  vvToolWidgetWithStepsBase.h
114   vvToolCropImage.h
115   vvToolImageArithm.h
116   vvToolConvert.h
117   vvToolStructureSetManager.h
118   vvStructureSetActor.h
119   vvROIActor.h
120   vvToolResample.h
121   vvLabelImageLoaderWidget.h
122   vvToolExtractPatient.h
123   vvToolExtractLung.h
124   vvToolPlastimatch.h
125 #  vvToolConnectedComponentLabeling.h
126   )
127
128 QT4_WRAP_UI(vv_UI_CXX 
129   qt_ui/vvMainWindow.ui 
130   qt_ui/vvInfoPanel.ui 
131   qt_ui/vvLinkPanel.ui 
132   qt_ui/vvOverlayPanel.ui 
133   qt_ui/vvLandmarksPanel.ui 
134   qt_ui/vvHelpDialog.ui 
135   qt_ui/vvDocumentation.ui 
136   qt_ui/vvProgressDialog.ui 
137   qt_ui/vvDicomSeriesSelector.ui 
138   qt_ui/vvSegmentationDialog.ui
139   qt_ui/vvSurfaceViewerDialog.ui
140   qt_ui/vvDeformationDialog.ui
141   qt_ui/vvStructSelector.ui
142   qt_ui/vvDummyWindow.ui #For testing
143   qt_ui/vvIntensityValueSlider.ui
144   qt_ui/vvToolSimpleInputSelectorWidget.ui
145   qt_ui/vvToolInputSelectorWidget.ui
146   qt_ui/vvToolWidgetBase.ui
147 #  qt_ui/vvToolWidgetWithStepsBase.ui
148   qt_ui/vvToolMedianFilter.ui
149   qt_ui/vvToolRigidReg.ui
150 #  qt_ui/vvToolFoo.ui
151   qt_ui/vvToolCropImage.ui
152   qt_ui/vvToolBinarize.ui
153   qt_ui/vvToolImageArithm.ui
154   qt_ui/vvToolStructureSetManager.ui
155   qt_ui/vvToolResample.ui
156   qt_ui/vvLabelImageLoaderWidget.ui
157   qt_ui/vvToolExtractPatient.ui
158   qt_ui/vvToolExtractLung.ui
159   qt_ui/vvToolPlastimatch.ui
160 #  qt_ui/vvToolConnectedComponentLabeling.ui
161   )
162
163 QT4_ADD_RESOURCES(vv_SRCS vvIcons.qrc)
164
165
166 # if Windows and Qt was built as a static lib then don't set QT_DLL flag
167 SET(QT_STATIC 0)
168 IF (WIN32)
169   IF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
170     FILE(READ ${QT_LIBRARY_DIR}/QtCore.prl QT_CORE_PRL)
171     IF(${QT_CORE_PRL} MATCHES "static")
172       SET(QT_STATIC 1)
173     ENDIF(${QT_CORE_PRL} MATCHES "static")
174   ENDIF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
175 ENDIF(WIN32)
176 IF(NOT QT_STATIC)
177   ADD_DEFINITIONS(-DQT_DLL)
178 ENDIF(NOT QT_STATIC)
179
180 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
181
182 INCLUDE_DIRECTORIES(
183   ${QT_INCLUDES}
184   ${QT_INCLUDE_DIR}
185   ${QT_QTGUI_INCLUDE_DIR}
186   ${QT_QTCORE_INCLUDE_DIR}
187   ${CMAKE_CURRENT_BINARY_DIR}
188   ${CMAKE_CURRENT_SOURCE_DIR}
189 )
190 #=========================================================
191
192 #=========================================================
193 #support for parallel deformable registration with OpenMP
194 IF(NOT __APPLE__)
195 IF(CMAKE_COMPILER_IS_GNUCC)
196   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
197 ENDIF(CMAKE_COMPILER_IS_GNUCC)
198 ENDIF(NOT __APPLE__)
199 #=========================================================
200
201 #=========================================================
202 INCLUDE_DIRECTORIES(
203   ../common
204   ../tools
205   ../segmentation
206   )
207
208 IF(WIN32)
209   SET(EXE_ICON vvIcon.rc)
210 ENDIF(WIN32)
211
212 LINK_DIRECTORIES(${QT_INCLUDES})
213 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
214 ADD_DEPENDENCIES(vv TOOLS_GGOS SEGMENTATION_GGOS)
215 TARGET_LINK_LIBRARIES(vv clitkDicomRTStruct 
216 #Libs for generic filters with long compilation times
217 clitkImageConvertLib 
218 clitkImageResampleLib
219 #Libs for _ggo.c files
220 clitkSegmentationGgoLib clitkToolsGgoLib
221 clitkRegistrationGgoLib
222 clitkCommon ${ITK_LIBRARIES} QVTK vtkHybrid)
223
224 #=========================================================
225
226 #=========================================================
227 # Install options (also used by CPack)
228 IF(UNIX AND NOT APPLE)
229   INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
230   INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
231
232   #QT
233   #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql)
234   #  INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
235   #          RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
236   #          DESTINATION .)
237   #ENDFOREACH(LIB)
238 ENDIF(UNIX AND NOT APPLE)
239
240 IF(WIN32)
241   #INCLUDE(InstallRequiredSystemLibraries)
242   INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION .)
243   #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
244 ENDIF(WIN32)
245 #=========================================================
246
247 #=========================================================
248 # CPack options
249 SET(CPACK_PACKAGE_NAME "vv")
250 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src")
251 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
252 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
253 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
254 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
255 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
256 SET(CPACK_PACKAGE_VERSION_MINOR "1")
257 SET(CPACK_PACKAGE_VERSION_PATCH "0")
258 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
259
260 IF(WIN32)
261   # There is a bug in NSI that does not handle full unix paths properly. Make
262   # sure there is at least one set of four (4) backlasshes.
263   SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\icons\\\\ducky.ico")
264   SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_BUILD_TYPE}\\\\vv.exe")
265   SET(CPACK_NSIS_DISPLAY_NAME "vv - The 4D slicer")
266   SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv")
267   SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
268   SET(CPACK_NSIS_CONTACT "vv@creatis.insa-lyon.fr")
269   SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\vv.lnk\\\" \\\"$INSTDIR\\\\vv.exe\\\" ")
270   SET(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\vv.lnk\\\" ")
271   #SET(CPACK_NSIS_MODIFY_PATH ON) SR: buggy, wait for cmake updates for a fix
272   #SET(CPACK_BINARY_ZIP ON)
273 ELSE(WIN32)
274   SET(CPACK_GENERATOR "STGZ")
275   SET(CPACK_SOURCE_GENERATOR "TGZ") 
276 ENDIF(WIN32)
277 INCLUDE(CPack)
278 #=========================================================