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