]> Creatis software - clitk.git/blob - vv/CMakeLists.txt
Added missing lib
[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   vvToolMedianFilter.cxx
53   vvToolRigidReg.cxx
54 #  vvToolFoo.cxx
55 #  vvToolFooWithWidgetBase.cxx
56   vvToolCropImage.cxx
57   vvToolBinarize.cxx
58   vvToolSimpleInputSelectorWidget.cxx
59   vvToolInputSelectorWidget.cxx
60   vvImageContour.cxx
61   vvBinaryImageOverlayActor.cxx
62   vvToolImageArithm.cxx
63   vvToolConvert.cxx
64   vvToolStructureSetManager.cxx
65   vvStructureSetActor.cxx
66   vvROIActor.cxx
67   vvToolResample.cxx
68   vvBlendImageActor.cxx
69   )
70 #=========================================================
71
72 #=========================================================
73 # Qt related commands
74 FIND_PACKAGE(Qt4 REQUIRED)
75
76 QT4_WRAP_CPP(vv_SRCS 
77   vvMainWindowBase.h 
78   vvMainWindow.h 
79   QTreePushButton.h 
80   vvInfoPanel.h 
81   vvLinkPanel.h 
82   vvOverlayPanel.h 
83   vvLandmarksPanel.h 
84   vvDocumentation.h  
85   vvHelpDialog.h  
86   vvProgressDialog.h 
87   vvQDicomSeriesSelector.h 
88   vvSegmentationDialog.h
89   vvSurfaceViewerDialog.h
90   vvDeformationDialog.h
91   vvSlicerManager.h
92   vvStructSelector.h
93   vvIntensityValueSlider.h
94   vvToolCreatorBase.h
95 #  vvToolFoo.h
96 #  vvToolFooWithWidgetBase.h
97   vvToolMedianFilter.h
98   vvToolRigidReg.h
99   vvToolBinarize.h
100   vvToolSimpleInputSelectorWidget.h
101   vvToolInputSelectorWidget.h
102   vvToolWidgetBase.h
103   vvToolCropImage.h
104   vvToolImageArithm.h
105   vvToolConvert.h
106   vvToolStructureSetManager.h
107   vvStructureSetActor.h
108   vvROIActor.h
109   vvToolResample.h
110   )
111
112 QT4_WRAP_UI(vv_UI_CXX 
113   qt_ui/vvMainWindow.ui 
114   qt_ui/vvInfoPanel.ui 
115   qt_ui/vvLinkPanel.ui 
116   qt_ui/vvOverlayPanel.ui 
117   qt_ui/vvLandmarksPanel.ui 
118   qt_ui/vvHelpDialog.ui 
119   qt_ui/vvDocumentation.ui 
120   qt_ui/vvProgressDialog.ui 
121   qt_ui/vvDicomSeriesSelector.ui 
122   qt_ui/vvSegmentationDialog.ui
123   qt_ui/vvSurfaceViewerDialog.ui
124   qt_ui/vvDeformationDialog.ui
125   qt_ui/vvStructSelector.ui
126   qt_ui/vvDummyWindow.ui #For testing
127   qt_ui/vvIntensityValueSlider.ui
128   qt_ui/vvToolSimpleInputSelectorWidget.ui
129   qt_ui/vvToolInputSelectorWidget.ui
130   qt_ui/vvToolWidgetBase.ui
131   qt_ui/vvToolMedianFilter.ui
132   qt_ui/vvToolRigidReg.ui
133 #  qt_ui/vvToolFoo.ui
134   qt_ui/vvToolCropImage.ui
135   qt_ui/vvToolBinarize.ui
136   qt_ui/vvToolImageArithm.ui
137   qt_ui/vvToolStructureSetManager.ui
138   qt_ui/vvToolResample.ui
139   )
140
141 QT4_ADD_RESOURCES(vv_SRCS vvIcons.qrc)
142
143 ADD_DEFINITIONS(-DQT_DLL)
144 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
145
146 INCLUDE_DIRECTORIES(
147   ${QT_INCLUDES}
148   ${QT_INCLUDE_DIR}
149   ${QT_QTGUI_INCLUDE_DIR}
150   ${QT_QTCORE_INCLUDE_DIR}
151   ${CMAKE_CURRENT_BINARY_DIR}
152   ${CMAKE_CURRENT_SOURCE_DIR}
153 )
154 #=========================================================
155
156 #=========================================================
157 #support for parallel deformable registration with OpenMP
158 IF(NOT __APPLE__)
159 IF(CMAKE_COMPILER_IS_GNUCC)
160   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native")
161 ENDIF(CMAKE_COMPILER_IS_GNUCC)
162 ENDIF(NOT __APPLE__)
163 #=========================================================
164
165 #=========================================================
166 INCLUDE_DIRECTORIES(
167   ../common
168   ../tools
169   )
170
171 LINK_DIRECTORIES(${QT_INCLUDES})
172 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
173 TARGET_LINK_LIBRARIES(vv clitkCommon clitkDicomRTStruct clitkFilters ${ITK_LIBRARIES} QVTK vtkHybrid)
174
175 IF (CLITK_VV_USE_BDCM)
176   TARGET_LINK_LIBRARIES(vv bdcm)
177 ENDIF (CLITK_VV_USE_BDCM)
178 #=========================================================
179
180 #=========================================================
181 # Install options (also used by CPack)
182 IF(UNIX AND NOT APPLE)
183   INSTALL(TARGETS vv
184           DESTINATION .)
185   #QT
186   FOREACH(LIB QtCore QtGui QtOpenGL QtWebKit QtXmlPatterns QtNetwork QtSql)
187     INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
188             RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
189             DESTINATION .)
190   ENDFOREACH(LIB)
191
192   #VTK
193   FOREACH(LIB QVTK vtkQtChart vtkViews vtkInfovis vtkWidgets vtkHybrid vtkRendering vtkImaging vtkGraphics vtkverdict
194               vtkIO vtkFiltering vtkCommon vtkDICOMParser vtkmetaio vtksqlite vtkpng vtktiff vtkjpeg vtkexpat vtksys
195               vtkftgl vtkfreetype vtkexoIIc vtkNetCDF vtklibxml2 vtkzlib vtkalglib)
196     INSTALL(FILES "${VTK_DIR}/bin/lib${LIB}.so.${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR}.0"
197             RENAME "lib${LIB}.so.${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR}"
198             DESTINATION .)
199   ENDFOREACH(LIB)
200
201   #ITK
202   FOREACH(LIB ITKAlgorithms ITKStatistics ITKFEM itkNetlibSlatec ITKNumerics ITKBasicFilters ITKIO ITKNrrdIO itkgdcm
203               itkjpeg12 itkjpeg16 itkopenjpeg itkpng itktiff itkjpeg8 ITKSpatialObject ITKCommon itkvnl_inst
204               itkvnl_algo itkv3p_netlib itkvnl itkvcl ITKMetaIO itksys ITKDICOMParser ITKEXPAT ITKniftiio ITKznz itkzlib)
205     INSTALL(FILES "${ITK_DIR}/bin/lib${LIB}.so.${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.0"
206             RENAME "lib${LIB}.so.${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}"
207             DESTINATION .)
208     ENDFOREACH(LIB)
209 ENDIF(UNIX AND NOT APPLE)
210
211 IF(WIN32)
212   SET(EXE_ICON vvIcon.rc)
213 ENDIF(WIN32)
214
215 #=========================================================
216 # CPack options
217 INCLUDE(InstallRequiredSystemLibraries)
218
219 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
220 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
221 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
222 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
223 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
224 SET(CPACK_PACKAGE_VERSION_MINOR "1")
225 SET(CPACK_PACKAGE_VERSION_PATCH "0")
226 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
227 #IF(WIN32 AND NOT UNIX)
228   # There is a bug in NSI that does not handle full unix paths properly. Make
229   # sure there is at least one set of four (4) backlasshes.
230 #  SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\ducky.png")
231 #  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/${CMAKE_BUILD_TYPE}\\\\vv.exe")
232 #  SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
233 #  SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio")
234 #  SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
235 #  SET(CPACK_NSIS_MODIFY_PATH ON)
236 #ELSE(WIN32 AND NOT UNIX)
237 #  SET(CPACK_STRIP_FILES "bin/vv")
238 #  SET(CPACK_SOURCE_STRIP_FILES "")
239 #ENDIF(WIN32 AND NOT UNIX)
240 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")
241 INCLUDE(CPack)