]> Creatis software - clitk.git/blob - vv/CMakeLists.txt
*** empty log message ***
[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 IF(WIN32)
172   SET(EXE_ICON vvIcon.rc)
173 ENDIF(WIN32)
174
175 IF(UNIX)
176   SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
177 ENDIF(UNIX)
178
179 LINK_DIRECTORIES(${QT_INCLUDES})
180 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
181 TARGET_LINK_LIBRARIES(vv clitkCommon clitkDicomRTStruct clitkFilters ${ITK_LIBRARIES} QVTK vtkHybrid)
182
183 IF (CLITK_VV_USE_BDCM)
184   TARGET_LINK_LIBRARIES(vv bdcm)
185 ENDIF (CLITK_VV_USE_BDCM)
186 #=========================================================
187
188 #=========================================================
189 # Install options (also used by CPack)
190 IF(UNIX AND NOT APPLE)
191   INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
192   INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
193
194   #QT
195   #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql)
196   #  INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
197   #          RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
198   #          DESTINATION .)
199   #ENDFOREACH(LIB)
200 ENDIF(UNIX AND NOT APPLE)
201
202 IF(WIN32)
203   INCLUDE(InstallRequiredSystemLibraries)
204   INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION bin)
205   INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION bin)
206   INSTALL(FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION bin)
207   INSTALL(FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION bin)
208 ENDIF(WIN32)
209
210 #=========================================================
211 # CPack options
212 SET(CPACK_PACKAGE_NAME "vv")
213 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src")
214 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
215 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
216 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
217 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
218 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
219 SET(CPACK_PACKAGE_VERSION_MINOR "1")
220 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
221
222 IF(WIN32)
223   SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/ducky.png")
224   SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/${CMAKE_BUILD_TYPE}/vv.exe")
225   SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
226   SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv")
227   SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
228   SET(CPACK_NSIS_MODIFY_PATH ON)
229 ELSE(WIN32)
230   SET(CPACK_STRIP_FILES "bin/vv")
231   SET(CPACK_GENERATOR "STGZ")
232   SET(CPACK_SOURCE_GENERATOR "TGZ") 
233 ENDIF(WIN32)
234 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")
235 INCLUDE(CPack)
236