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