]> Creatis software - clitk.git/blob - vv/CMakeLists.txt
add extract patient tool
[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 # Qt related commands
82 FIND_PACKAGE(Qt4 REQUIRED)
83
84 QT4_WRAP_CPP(vv_SRCS 
85   vvMainWindowBase.h 
86   vvMainWindow.h 
87   QTreePushButton.h 
88   vvInfoPanel.h 
89   vvLinkPanel.h 
90   vvOverlayPanel.h 
91   vvLandmarksPanel.h 
92   vvDocumentation.h  
93   vvHelpDialog.h  
94   vvProgressDialog.h 
95   vvQDicomSeriesSelector.h 
96   vvSegmentationDialog.h
97   vvSurfaceViewerDialog.h
98   vvDeformationDialog.h
99   vvSlicerManager.h
100   vvStructSelector.h
101   vvIntensityValueSlider.h
102   vvThreadedFilter.h
103   vvToolCreatorBase.h
104 #  vvToolFoo.h
105 #  vvToolFooWithWidgetBase.h
106   vvToolMedianFilter.h
107   vvToolRigidReg.h
108   vvToolBinarize.h
109   vvToolSimpleInputSelectorWidget.h
110   vvToolInputSelectorWidget.h
111   vvToolWidgetBase.h
112 #  vvToolWidgetWithStepsBase.h
113   vvToolCropImage.h
114   vvToolImageArithm.h
115   vvToolConvert.h
116   vvToolStructureSetManager.h
117   vvStructureSetActor.h
118   vvROIActor.h
119   vvToolResample.h
120   vvLabelImageLoaderWidget.h
121   vvToolExtractPatient.h
122   vvToolExtractLung.h
123   vvToolPlastimatch.h
124 #  vvToolConnectedComponentLabeling.h
125   )
126
127 QT4_WRAP_UI(vv_UI_CXX 
128   qt_ui/vvMainWindow.ui 
129   qt_ui/vvInfoPanel.ui 
130   qt_ui/vvLinkPanel.ui 
131   qt_ui/vvOverlayPanel.ui 
132   qt_ui/vvLandmarksPanel.ui 
133   qt_ui/vvHelpDialog.ui 
134   qt_ui/vvDocumentation.ui 
135   qt_ui/vvProgressDialog.ui 
136   qt_ui/vvDicomSeriesSelector.ui 
137   qt_ui/vvSegmentationDialog.ui
138   qt_ui/vvSurfaceViewerDialog.ui
139   qt_ui/vvDeformationDialog.ui
140   qt_ui/vvStructSelector.ui
141   qt_ui/vvDummyWindow.ui #For testing
142   qt_ui/vvIntensityValueSlider.ui
143   qt_ui/vvToolSimpleInputSelectorWidget.ui
144   qt_ui/vvToolInputSelectorWidget.ui
145   qt_ui/vvToolWidgetBase.ui
146 #  qt_ui/vvToolWidgetWithStepsBase.ui
147   qt_ui/vvToolMedianFilter.ui
148   qt_ui/vvToolRigidReg.ui
149 #  qt_ui/vvToolFoo.ui
150   qt_ui/vvToolCropImage.ui
151   qt_ui/vvToolBinarize.ui
152   qt_ui/vvToolImageArithm.ui
153   qt_ui/vvToolStructureSetManager.ui
154   qt_ui/vvToolResample.ui
155   qt_ui/vvLabelImageLoaderWidget.ui
156   qt_ui/vvToolExtractPatient.ui
157   qt_ui/vvToolExtractLung.ui
158   qt_ui/vvToolPlastimatch.ui
159 #  qt_ui/vvToolConnectedComponentLabeling.ui
160   )
161
162 QT4_ADD_RESOURCES(vv_SRCS vvIcons.qrc)
163
164
165 # if Windows and Qt was built as a static lib then don't set QT_DLL flag
166 SET(QT_STATIC 0)
167 IF (WIN32)
168   IF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
169     FILE(READ ${QT_LIBRARY_DIR}/QtCore.prl QT_CORE_PRL)
170     IF(${QT_CORE_PRL} MATCHES "static")
171       SET(QT_STATIC 1)
172     ENDIF(${QT_CORE_PRL} MATCHES "static")
173   ENDIF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
174 ENDIF(WIN32)
175 IF(NOT QT_STATIC)
176   ADD_DEFINITIONS(-DQT_DLL)
177 ENDIF(NOT QT_STATIC)
178
179 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
180
181 INCLUDE_DIRECTORIES(
182   ${QT_INCLUDES}
183   ${QT_INCLUDE_DIR}
184   ${QT_QTGUI_INCLUDE_DIR}
185   ${QT_QTCORE_INCLUDE_DIR}
186   ${CMAKE_CURRENT_BINARY_DIR}
187   ${CMAKE_CURRENT_SOURCE_DIR}
188 )
189 #=========================================================
190
191 #=========================================================
192 #support for parallel deformable registration with OpenMP
193 IF(NOT __APPLE__)
194 IF(CMAKE_COMPILER_IS_GNUCC)
195   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
196 ENDIF(CMAKE_COMPILER_IS_GNUCC)
197 ENDIF(NOT __APPLE__)
198 #=========================================================
199
200 #=========================================================
201 INCLUDE_DIRECTORIES(
202   ../common
203   ../tools
204   ../segmentation
205   )
206
207 IF(WIN32)
208   SET(EXE_ICON vvIcon.rc)
209 ENDIF(WIN32)
210
211 LINK_DIRECTORIES(${QT_INCLUDES})
212 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
213 TARGET_LINK_LIBRARIES(vv clitkCommon clitkDicomRTStruct clitkFilters clitkSegmentationFilters ${ITK_LIBRARIES} QVTK vtkHybrid)
214
215 #=========================================================
216
217 #=========================================================
218 # Install options (also used by CPack)
219 IF(UNIX AND NOT APPLE)
220   INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
221   INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
222
223   #QT
224   #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql)
225   #  INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
226   #          RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
227   #          DESTINATION .)
228   #ENDFOREACH(LIB)
229 ENDIF(UNIX AND NOT APPLE)
230
231 IF(WIN32)
232   #INCLUDE(InstallRequiredSystemLibraries)
233   INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION .)
234   #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
235 ENDIF(WIN32)
236 #=========================================================
237
238 #=========================================================
239 # CPack options
240 SET(CPACK_PACKAGE_NAME "vv")
241 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src")
242 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
243 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
244 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
245 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
246 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
247 SET(CPACK_PACKAGE_VERSION_MINOR "1")
248 SET(CPACK_PACKAGE_VERSION_PATCH "0")
249 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
250
251 IF(WIN32)
252   # There is a bug in NSI that does not handle full unix paths properly. Make
253   # sure there is at least one set of four (4) backlasshes.
254   SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\icons\\\\ducky.ico")
255   SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_BUILD_TYPE}\\\\vv.exe")
256   SET(CPACK_NSIS_DISPLAY_NAME "vv - The 4D slicer")
257   SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv")
258   SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
259   SET(CPACK_NSIS_CONTACT "vv@creatis.insa-lyon.fr")
260   SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\vv.lnk\\\" \\\"$INSTDIR\\\\vv.exe\\\" ")
261   SET(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\vv.lnk\\\" ")
262   #SET(CPACK_NSIS_MODIFY_PATH ON) SR: buggy, wait for cmake updates for a fix
263   #SET(CPACK_BINARY_ZIP ON)
264 ELSE(WIN32)
265   SET(CPACK_GENERATOR "STGZ")
266   SET(CPACK_SOURCE_GENERATOR "TGZ") 
267 ENDIF(WIN32)
268 INCLUDE(CPack)
269 #=========================================================