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