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