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