]> Creatis software - clitk.git/blob - vv/CMakeLists.txt
Removed static flags. Set compilation options for windows package.
[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
144 # if Windows and Qt was built as a static lib then don't set QT_DLL flag
145 SET(QT_STATIC 0)
146 IF (WIN32)
147   IF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
148     FILE(READ ${QT_LIBRARY_DIR}/QtCore.prl QT_CORE_PRL)
149     IF(${QT_CORE_PRL} MATCHES "static")
150       SET(QT_STATIC 1)
151     ENDIF(${QT_CORE_PRL} MATCHES "static")
152   ENDIF(EXISTS ${QT_LIBRARY_DIR}/QtCore.prl)
153 ENDIF(WIN32)
154 IF(NOT QT_STATIC)
155   ADD_DEFINITIONS(-DQT_DLL)
156 ENDIF(NOT QT_STATIC)
157
158 ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)
159
160 INCLUDE_DIRECTORIES(
161   ${QT_INCLUDES}
162   ${QT_INCLUDE_DIR}
163   ${QT_QTGUI_INCLUDE_DIR}
164   ${QT_QTCORE_INCLUDE_DIR}
165   ${CMAKE_CURRENT_BINARY_DIR}
166   ${CMAKE_CURRENT_SOURCE_DIR}
167 )
168 #=========================================================
169
170 #=========================================================
171 #support for parallel deformable registration with OpenMP
172 IF(NOT __APPLE__)
173 IF(CMAKE_COMPILER_IS_GNUCC)
174   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -march=native")
175 ENDIF(CMAKE_COMPILER_IS_GNUCC)
176 ENDIF(NOT __APPLE__)
177 #=========================================================
178
179 #=========================================================
180 INCLUDE_DIRECTORIES(
181   ../common
182   ../tools
183   )
184
185 IF(WIN32)
186   SET(EXE_ICON vvIcon.rc)
187 ENDIF(WIN32)
188
189 LINK_DIRECTORIES(${QT_INCLUDES})
190 ADD_EXECUTABLE(vv ${vv_SRCS} vv.cxx ${vv_UI_CXX} ${EXE_ICON})
191 TARGET_LINK_LIBRARIES(vv clitkCommon clitkDicomRTStruct clitkFilters ${ITK_LIBRARIES} QVTK vtkHybrid)
192
193 IF (CLITK_VV_USE_BDCM)
194   TARGET_LINK_LIBRARIES(vv bdcm)
195 ENDIF (CLITK_VV_USE_BDCM)
196 #=========================================================
197
198 #=========================================================
199 # Install options (also used by CPack)
200 IF(UNIX AND NOT APPLE)
201   INSTALL (FILES ${EXECUTABLE_OUTPUT_PATH}/vv DESTINATION . PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
202   INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
203
204   #QT
205   #FOREACH(LIB QtCore QtGui QtOpenGL QtNetwork QtSql)
206   #  INSTALL(FILES "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
207   #          RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
208   #          DESTINATION .)
209   #ENDFOREACH(LIB)
210 ENDIF(UNIX AND NOT APPLE)
211
212 IF(WIN32)
213   #INCLUDE(InstallRequiredSystemLibraries)
214   INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/vv.exe DESTINATION .)
215   #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/ducky.png DESTINATION .)
216 ENDIF(WIN32)
217 #=========================================================
218
219 #=========================================================
220 # CPack options
221 SET(CPACK_PACKAGE_NAME "vv")
222 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "vv-src")
223 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vv, the 4D slicer : let's jump into a new dimension !")
224 SET(CPACK_PACKAGE_VENDOR "Creatis-CLB")
225 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
226 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
227 SET(CPACK_PACKAGE_VERSION_MAJOR "1")
228 SET(CPACK_PACKAGE_VERSION_MINOR "1")
229 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vv")
230
231 IF(WIN32)
232   # There is a bug in NSI that does not handle full unix paths properly. Make
233   # sure there is at least one set of four (4) backlasshes.
234   SET(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\icons\\\\ducky.ico")
235   SET(CPACK_NSIS_INSTALLED_ICON_NAME "${EXECUTABLE_OUTPUT_PATH}\\\\${CMAKE_BUILD_TYPE}\\\\vv.exe")
236   SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} The 4D slicer")
237   SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/rio/vv")
238   SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/rio")
239   SET(CPACK_NSIS_CONTACT "vv@creatis.insa-lyon.fr")
240   SET(CPACK_NSIS_MODIFY_PATH ON)
241   SET(CPACK_BINARY_ZIP ON)
242 ELSE(WIN32)
243   SET(CPACK_STRIP_FILES "bin/vv")
244   SET(CPACK_GENERATOR "STGZ")
245   SET(CPACK_SOURCE_GENERATOR "TGZ") 
246 ENDIF(WIN32)
247 SET(CPACK_PACKAGE_EXECUTABLES "vv" "vv")
248 INCLUDE(CPack)
249 #=========================================================