Computer Assited Medical Intervention Tool Kit  version 3.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
CamiTKOpenSourcePackaging.h
Go to the documentation of this file.
1 #------------------
2 # CamiTK packaging
3 #------------------
4 
5 # To make an installer,
6 # - configure cmake with -DPACKAGING_NSIS:BOOL=TRUE (on windows AND unix)
7 # - use the custom target camitk_package, e.g "make camitk_package"
8 #
9 # On Windows platforms
10 # CMake configure command (from the build directory) :
11 # cmake -DPACKAGING_NSIS=TRUE -DCEP_IMAGING=TRUE -DCEP_MODELING=TRUE -DAPPLICATION_CEPGENERATOR=FALSE -DAPPLICATION_TESTACTIONS=FALSE -DAPPLICATION_TESTCOMPONENTS=FALSE -DAPPLICATION_WIZARD=FALSE ../src
12 # Launch the camitkopensource.sln visual studio solution file.
13 # Build all in Release (do it again if some .h files missing errors occured)
14 # Build camitk_package target.
15 
16 # On UNIX platforms
17 # cmake -DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release -DCEP_IMAGING:BOOL=TRUE -DCEP_MODELING:BOOL=TRUE -DPACKAGING_NSIS:BOOL=TRUE -DCMAKE_INSTALL_PREFIX=/usr
18 #
19 # On debian/ubuntu, you need to have package "dpkg" (to build DEB packages) and package "rpm" (to build RPM packages) installed:
20 # apt-get install dpkg rpm
21 #
22 # To make a source tar ball, just use the custom target camitk_package_sourc
23 # - make camitk_package_source
24 # (it generates the correct CamiTKVersion.h)
25 #
26 # To check the content of a deb package:
27 # dpkg --contents package.deb
28 # To install the content of a deb in a subdirectory instead of system-wide:
29 # dpkg --vextract package.deb subdirectory
30 #
31 # On windows for the NSIS packager, to generate different components that can be opt out at install time, see
32 # http://www.itk.org/Wiki/CMake:Component_Install_With_CPack
33 #
34 # More generally see http://www.itk.org/Wiki/CMake:CPackConfiguration
35 
36 # There is a bug deb package (cmake 2.8.9 on Debian Wheezy): permission for directories are not rights
37 # Here is how to fix it (inspired from https://github.com/paralect/robomongo/blob/master/install/linux/fixup_deb.sh.in )
38 # set PACKAGE_FILENAME="camitk-3.3.0-debian-7.x-wheezy_amd64.deb"
39 # cd /tmp
40 # mkdir camitk-deb
41 # dpkg-deb -x $PACKAGE_FILENAME camitk-deb
42 # dpkg-deb --control $PACKAGE_FILENAME camitk-deb/DEBIAN
43 # rm $PACKAGE_FILENAME
44 # find camitk-deb -type d -print0 |xargs -0 chmod 755
45 # find camitk-deb -name "*.1" -print0 |xargs -0 chmod 0644
46 # find fix_up_deb/usr/bin -name "camitk-*" -print0 |xargs -0 chmod 0755
47 # fakeroot dpkg -b camitk-deb $PACKAGE_FILENAME
48 # rm -rf camitk-deb
49 
50 
52 
53 # package name
54 string(TOLOWER ${CAMITK_PROJECT_NAME} CPACK_PACKAGE_NAME)
55 set(CPACK_PACKAGE_VERSION_MAJOR ${CAMITK_VERSION_MAJOR})
56 set(CPACK_PACKAGE_VERSION_MINOR ${CAMITK_VERSION_MINOR})
57 set(CPACK_PACKAGE_VERSION_PATCH ${CAMITK_VERSION_PATCH})
58 set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
59 string(TOLOWER "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CAMITK_VER_NICKNAME}-${LSB_DISTRIB}_${CPACK_PACKAGE_ARCHITECTURE}" CPACK_PACKAGE_FILE_NAME)
60 
61 # contact information
62 set(CPACK_PACKAGE_VENDOR "UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525")
63 set(CPACK_PACKAGE_CONTACT "http://camitk.imag.fr")
64 set(CPACK_DEBIAN_PACKAGE_MAINTAINER "CamiTK Developers <camitk-team@imag.fr>")
65 
66 # resource files
67 set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README")
68 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYRIGHT")
69 
70 # executable
71 set(CPACK_PACKAGE_EXECUTABLES "camitk-imp" "camitk-imp" "camitk-actionstatemachine" "camitk-actionstatemachine")
72 
73 # CamiTK package description
74 set(CPACK_PACKAGE_DESCRIPTION "CamiTK stands for Computer Assisted Medical Intervention Tool Kit and aims at providing an easy way to protype medical applications")
75 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CamiTK stands for Computer Assisted Medical Intervention Tool Kit and aims at providing an easy way to protype medical applications. CamiTK functionnalities are extendable thanks to plugins. This package includes the IMP application with main plugins that allow users to interact with medical images (2D, 3D), process them and simulate biomechanichal deformations. It also includes the actionstatemachine application that allows user to easily run a pipelines of algorithms on images.")
76 
77 # Files to ignore during generation of the package
78 set(CPACK_SOURCE_IGNORE_FILES
79 "~$"
80 "/CVS/"
81 "tags"
82 "/\\\\.svn/"
83 "/\\\\.git/"
84 "/kdev4$/"
85 "/build/"
86 "\\\\.kdevses$"
87 "\\\\.kdev4$"
88 "\\\\.tmp$"
89 "\\\\.tmp.save$"
90 "\\\\.kdevelop\\\\.pcs$"
91 ".DS_Store"
92 ${CPACK_SOURCE_IGNORE_FILES}
93 )
94 
95 set(CPACK_SOURCE_GENERATOR "TGZ" "ZIP" )
96 
97 # Detect processor bits range (32bits / 64bits)
98 # not the whole architecture (ARM ...).
99 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
100  set(WIN64 TRUE)
101 else()
102  set(WIN64 FALSE)
103 endif()
104 
105 
106 # ----------------------------------
107 # Unix packages (Ubuntu and Debian)
108 # ----------------------------------
109 if (PACKAGING_NSIS AND UNIX AND NOT WIN32)
110 
111  # Note : even if not packaging for Unix with NSIS, the CMake variable
112  # PACKAGING_NSIS is used here to indicate we are packaging (i.e. building
113  # the camitk_package target).
114 
115  message(STATUS "Packaging CamiTK for UNIX systems")
116  # Try to find architecture
117  execute_process(COMMAND uname -m OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE)
118  string(STRIP "${CPACK_PACKAGE_ARCHITECTURE}" CPACK_PACKAGE_ARCHITECTURE)
119  # Try to find distro name and distro-specific arch
120  execute_process(COMMAND lsb_release -is OUTPUT_VARIABLE LSB_ID)
121  execute_process(COMMAND lsb_release -rs OUTPUT_VARIABLE LSB_RELEASE)
122  string(STRIP "${LSB_ID}" LSB_ID)
123  string(STRIP "${LSB_RELEASE}" LSB_RELEASE)
124  set(LSB_DISTRIB "${LSB_ID}${LSB_RELEASE}")
125  if(NOT LSB_DISTRIB)
126  set(LSB_DISTRIB "unix")
127  endif(NOT LSB_DISTRIB)
128  message(STATUS "Packager architecture : ${LSB_DISTRIB}")
129 
130  # debian section
131  set(CPACK_DEBIAN_PACKAGE_SECTION "science")
132 
133  #Find DPKG
134  find_program(DPKG
135  NAMES dpkg-deb
136  PATHS "/usr/bin" #Add paths here
137  )
138  if ( DPKG )
139  get_filename_component(DPKG_PATH ${DPKG} ABSOLUTE)
140  message(STATUS "Packaging deb using ${DPKG_PATH}: OK")
141  set(DPKG_FOUND "YES")
142  else()
143  set(DPKG_FOUND "NO")
144  endif()
145 
146  # Packaging requires ITK
147  find_package(ITK REQUIRED)
148  include(${ITK_USE_FILE})
149 
150  # set the package generator
151  set(CPACK_GENERATOR "DEB" "RPM")
152 
153  # For Debian-based distribs we want to create DEB packages.
154  if ("${LSB_DISTRIB}" MATCHES "Ubuntu|Debian")
155 
156  # We need to alter the architecture names as per distro rules
157  if("${CPACK_PACKAGE_ARCHITECTURE}" MATCHES "i[3-6]86")
158  set(CPACK_PACKAGE_ARCHITECTURE i386)
159  endif()
160  if("${CPACK_PACKAGE_ARCHITECTURE}" MATCHES "x86_64")
161  set(CPACK_PACKAGE_ARCHITECTURE amd64)
162  endif()
163  # Set the dependencies based on the distrib version
164 
165  # Installation path
166  # Set the install location to "/usr"
167  # PLEASE, set the CamiTK install root path in your CMake command line / GUI (and not directly here)
168  set(CPACK_SET_DESTDIR TRUE)
169  set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
170  set(CPACK_PACKAGE_DEFAULT_LOCATION "/usr")
171 
172 
173  # Dependencies depending on the Operating System.
174  # Ubuntu12.xx
175  # WARNING Beware to the syntax of the Debian package dependencies, else it won't manage to install.
176  if("${LSB_DISTRIB}" MATCHES "Ubuntu12.04"
177  OR "${LSB_DISTRIB}" MATCHES "Ubuntu12.04.1"
178  OR "${LSB_DISTRIB}" MATCHES "Ubuntu12.10"
179  OR "${LSB_DISTRIB}" MATCHES "Ubuntu13.04"
180  OR "${LSB_DISTRIB}" MATCHES "Ubuntu13.10"
181  )
182  # All these ubuntu version dependencies are the same, only one package is needed for all
183  set(LSB_DISTRIB "Ubuntu12.04to13.10")
184  set(CPACK_DEBIAN_PACKAGE_DEPENDS "cmake, libvtk5-dev (>= 5.8), libqt4-dev, libvtk5-qt4-dev (>= 5.8), xsdcxx, libinsighttoolkit3-dev (>= 3.20), libxerces-c-dev, libxml2-dev, libgdcm2-dev, libfftw3-dev, libqtwebkit-dev | libqt4-dev (<< 4.7), libvtkgdcm2-dev,doxygen, graphviz")
185  endif()
186 
187  # Debian dependencies
188  if ("${LSB_DISTRIB}" MATCHES "Debian7.*") # Debian Wheezy
189  set(LSB_DISTRIB "Debian-7.x-Wheezy")
190  set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt4-dev (>= 4:4.8), libqtwebkit4 (>= 2), libqtwebkit-dev (>= 2), libvtk5.8 (>= 5.8.0), libvtk5-dev (>= 5.8.0), libvtk5.8-qt4 (>= 5.8.0), libvtk5-qt4-dev (>= 5.8.0), libinsighttoolkit3-dev (>= 3.20.1), vtk-doc (>= 5.8.0), tcl-vtk (>= 5.8.0), libinsighttoolkit3.20 (>= 3.20.1), libtiff4-dev (>= 3.9), libopenjpeg-dev (>= 1.3), libxml2 (>= 2.7.8), libxml2-dev (>= 2.7.8), xsdcxx (>= 3.3.0), libxerces-c-dev (>= 3.1.1), libgdcm2.2 (>= 2), libgdcm2-dev (>= 2), libvtkgdcm2.2 (>= 2), libvtkgdcm2-dev (>= 2)")
191  endif()
192 
193  if(NOT CPACK_DEBIAN_PACKAGE_DEPENDS)
194  message(STATUS "Packaging for ${LSB_DISTRIB} not supported yet.\n")
195  endif()
196 
197  endif()
198 
199  # package name
200  string(TOLOWER "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${LSB_DISTRIB}_${CPACK_PACKAGE_ARCHITECTURE}" CPACK_PACKAGE_FILE_NAME)
201 
202 endif()
203 
204 
205 # -----------------------
206 # Packaging for Windows
207 # -----------------------
208 if(WIN32 AND MSVC AND PACKAGING_NSIS)
209 
210  # NSIS must be installed on the computer
211  find_program(MAKENSIS makensis.exe)
212  if(MAKENSIS)
213  message(STATUS "NSIS Packaging using ${MAKENSIS}")
214  else()
215  message(FATAL_ERROR "NSIS executable (makensis.exe) is not installed or not in the system path. Please fix this problem for packaging.")
216  endif()
217 
218  # Update package name for windows release
219  if(WIN64) #64 bits installer
220  set(CPACK_PACKAGE_ARCHITECTURE amd64)
221  else() #32 bits installer
222  set(CPACK_PACKAGE_ARCHITECTURE i386)
223  endif()
224  string(TOLOWER "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${CAMITK_VER_NICKNAME}_${CPACK_PACKAGE_ARCHITECTURE}" CPACK_PACKAGE_FILE_NAME)
225 
226  message(STATUS "Packaging CamiTK for Windows: ${CPACK_PACKAGE_FILE_NAME}")
227 
228  if(WIN64) # 64bits installer
229  # Qt libraries
230  set(QT_PACKAGE_LIRABRIES
231  C:/dev/Qt/4.8.5/bin/QtCore4.dll
232  C:/dev/Qt/4.8.5/bin/QtGui4.dll
233  C:/dev/Qt/4.8.5/bin/QtSvg4.dll
234  C:/dev/Qt/4.8.5/bin/QtXml4.dll
235  C:/dev/Qt/4.8.5/bin/QtNetwork4.dll
236  C:/dev/Qt/4.8.5/bin/QtSql4.dll
237  C:/dev/Qt/4.8.5/bin/QtWebKit4.dll
238  )
239 
240  # VTK libraries
241  set(VTK_PACKAGE_LIBRARIES
242  C:/dev/VTK/5.10.1/bin/QVTK.dll
243  C:/dev/VTK/5.10.1/bin/vtkCommon.dll
244  C:/dev/VTK/5.10.1/bin/vtksys.dll
245  C:/dev/VTK/5.10.1/bin/vtkFiltering.dll
246  C:/dev/VTK/5.10.1/bin/vtkGraphics.dll
247  C:/dev/VTK/5.10.1/bin/vtkHybrid.dll
248  C:/dev/VTK/5.10.1/bin/vtkIO.dll
249  C:/dev/VTK/5.10.1/bin/vtkImaging.dll
250  C:/dev/VTK/5.10.1/bin/vtkRendering.dll
251  C:/dev/VTK/5.10.1/bin/vtkVolumeRendering.dll
252  C:/dev/VTK/5.10.1/bin/vtkverdict.dll
253  C:/dev/VTK/5.10.1/bin/vtkDICOMParser.dll
254  C:/dev/VTK/5.10.1/bin/vtkNetCDF.dll
255  C:/dev/VTK/5.10.1/bin/vtkNetCDF_cxx.dll
256  C:/dev/VTK/5.10.1/bin/vtkexpat.dll
257  C:/dev/VTK/5.10.1/bin/vtkjpeg.dll
258  C:/dev/VTK/5.10.1/bin/vtkmetaio.dll
259  C:/dev/VTK/5.10.1/bin/vtkpng.dll
260  C:/dev/VTK/5.10.1/bin/vtktiff.dll
261  C:/dev/VTK/5.10.1/bin/vtkzlib.dll
262  C:/dev/VTK/5.10.1/bin/vtkInfovis.dll
263  C:/dev/VTK/5.10.1/bin/vtkfreetype.dll
264  C:/dev/VTK/5.10.1/bin/vtkftgl.dll
265  C:/dev/VTK/5.10.1/bin/vtkalglib.dll
266  C:/dev/VTK/5.10.1/bin/vtklibxml2.dll
267  C:/dev/VTK/5.10.1/bin/vtkViews.dll
268  C:/dev/VTK/5.10.1/bin/vtkexoIIc.dll
269  C:/dev/VTK/5.10.1/bin/vtkWidgets.dll
270  C:/dev/VTK/5.10.1/bin/vtkhdf5.dll
271  C:/dev/VTK/5.10.1/bin/vtkhdf5_hl.dll
272  C:/dev/VTK/5.10.1/bin/LSDyna.dll
273  )
274 
275  #ITK library
276  set(ITK_PACKAGE_LIBRARIES
277  C:/dev/ITK/4.3.2/bin/ITKCommon-4.3.dll
278  )
279 
280  # GDCM libraries
281  set(GDCM_PACKAGE_LIBRARIES
282  C:/dev/gdcm/2.5/bin/vtkgdcm.dll
283  C:/dev/gdcm/2.5/bin/gdcmcommon.dll
284  C:/dev/gdcm/2.5/bin/gdcmcharls.dll
285  C:/dev/gdcm/2.5/bin/gdcmdict.dll
286  C:/dev/gdcm/2.5/bin/gdcmdsed.dll
287  C:/dev/gdcm/2.5/bin/gdcmexpat.dll
288  C:/dev/gdcm/2.5/bin/gdcmiod.dll
289  C:/dev/gdcm/2.5/bin/gdcmjpeg12.dll
290  C:/dev/gdcm/2.5/bin/gdcmjpeg16.dll
291  C:/dev/gdcm/2.5/bin/gdcmjpeg8.dll
292  C:/dev/gdcm/2.5/bin/gdcmmsff.dll
293  C:/dev/gdcm/2.5/bin/gdcmopenjpeg.dll
294  C:/dev/gdcm/2.5/bin/gdcmzlib.dll
295  C:/dev/gdcm/2.5/bin/gdcmmsff.dll
296  )
297 
298  set(LIBXML2_PACKAGE_LIBRARIES
299  C:/dev/libxml2/2.9.1/bin/libiconv-2.dll
300  C:/dev/libxml2/2.9.1/bin/libxml2-2.dll
301  C:/dev/libxml2/2.9.1/bin/zlib1.dll
302  )
303 
304  set(XERCES_C_PACKAGE_LIBRARIES
305  C:/dev/xerces-c/3.1.1/bin/xerces-c_3_1.dll
306  )
307 
308  else() # 32bits installer
309 
310  # Qt libraries
311  set(QT_PACKAGE_LIRABRIES
312  C:/dev_x86/Qt/4.8.5/bin/QtCore4.dll
313  C:/dev_x86/Qt/4.8.5/bin/QtGui4.dll
314  C:/dev_x86/Qt/4.8.5/bin/QtSvg4.dll
315  C:/dev_x86/Qt/4.8.5/bin/QtXml4.dll
316  C:/dev_x86/Qt/4.8.5/bin/QtNetwork4.dll
317  C:/dev_x86/Qt/4.8.5/bin/QtSql4.dll
318  C:/dev_x86/Qt/4.8.5/bin/QtWebKit4.dll
319  )
320 
321  # VTK libraries
322  # set(VTK_DIR ${VTK_DIR}/../../bin)
323  set(VTK_PACKAGE_LIBRARIES
324  C:/dev_x86/VTK/5.10.1/bin/QVTK.dll
325  C:/dev_x86/VTK/5.10.1/bin/vtkCommon.dll
326  C:/dev_x86/VTK/5.10.1/bin/vtksys.dll
327  C:/dev_x86/VTK/5.10.1/bin/vtkFiltering.dll
328  C:/dev_x86/VTK/5.10.1/bin/vtkGraphics.dll
329  C:/dev_x86/VTK/5.10.1/bin/vtkHybrid.dll
330  C:/dev_x86/VTK/5.10.1/bin/vtkIO.dll
331  C:/dev_x86/VTK/5.10.1/bin/vtkImaging.dll
332  C:/dev_x86/VTK/5.10.1/bin/vtkRendering.dll
333  C:/dev_x86/VTK/5.10.1/bin/vtkVolumeRendering.dll
334  C:/dev_x86/VTK/5.10.1/bin/vtkverdict.dll
335  C:/dev_x86/VTK/5.10.1/bin/vtkDICOMParser.dll
336  C:/dev_x86/VTK/5.10.1/bin/vtkNetCDF.dll
337  C:/dev_x86/VTK/5.10.1/bin/vtkNetCDF_cxx.dll
338  C:/dev_x86/VTK/5.10.1/bin/vtkexpat.dll
339  C:/dev_x86/VTK/5.10.1/bin/vtkjpeg.dll
340  C:/dev_x86/VTK/5.10.1/bin/vtkmetaio.dll
341  C:/dev_x86/VTK/5.10.1/bin/vtkpng.dll
342  C:/dev_x86/VTK/5.10.1/bin/vtktiff.dll
343  C:/dev_x86/VTK/5.10.1/bin/vtkzlib.dll
344  C:/dev_x86/VTK/5.10.1/bin/vtkInfovis.dll
345  C:/dev_x86/VTK/5.10.1/bin/vtkfreetype.dll
346  C:/dev_x86/VTK/5.10.1/bin/vtkftgl.dll
347  C:/dev_x86/VTK/5.10.1/bin/vtkalglib.dll
348  C:/dev_x86/VTK/5.10.1/bin/vtklibxml2.dll
349  C:/dev_x86/VTK/5.10.1/bin/vtkViews.dll
350  C:/dev_x86/VTK/5.10.1/bin/vtkexoIIc.dll
351  C:/dev_x86/VTK/5.10.1/bin/vtkWidgets.dll
352  C:/dev_x86/VTK/5.10.1/bin/vtkhdf5.dll
353  C:/dev_x86/VTK/5.10.1/bin/vtkhdf5_hl.dll
354  C:/dev_x86/VTK/5.10.1/bin/LSDyna.dll
355  )
356 
357  #ITK Library
358  set(ITK_PACKAGE_LIBRARIES
359  C:/dev_x86/ITK/4.3.2/bin/ITKCommon-4.3.dll
360  )
361 
362  # GDCM libraries
363  set(GDCM_PACKAGE_LIBRARIES
364  C:/dev_x86/gdcm/2.2.5/bin/vtkgdcm.dll
365  C:/dev_x86/gdcm/2.2.5/bin/gdcmcommon.dll
366  C:/dev_x86/gdcm/2.2.5/bin/gdcmcharls.dll
367  C:/dev_x86/gdcm/2.2.5/bin/gdcmdict.dll
368  C:/dev_x86/gdcm/2.2.5/bin/gdcmdsed.dll
369  C:/dev_x86/gdcm/2.2.5/bin/gdcmexpat.dll
370  C:/dev_x86/gdcm/2.2.5/bin/gdcmiod.dll
371  C:/dev_x86/gdcm/2.2.5/bin/gdcmjpeg12.dll
372  C:/dev_x86/gdcm/2.2.5/bin/gdcmjpeg16.dll
373  C:/dev_x86/gdcm/2.2.5/bin/gdcmjpeg8.dll
374  C:/dev_x86/gdcm/2.2.5/bin/gdcmmsff.dll
375  C:/dev_x86/gdcm/2.2.5/bin/gdcmopenjpeg.dll
376  C:/dev_x86/gdcm/2.2.5/bin/gdcmzlib.dll
377  C:/dev_x86/gdcm/2.2.5/bin/gdcmmsff.dll
378  )
379 
380  set(LIBXML2_PACKAGE_LIBRARIES
381  C:/dev_x86/libxml2/2.7.8/bin/iconv.dll
382  C:/dev_x86/libxml2/2.7.8/bin/libxml2.dll
383  C:/dev_x86/libxml2/2.7.8/bin/zlib1.dll
384  )
385 
386  set(XERCES_C_PACKAGE_LIBRARIES
387  C:/dev_x86/xerces-c/3.1.1/bin/xerces-c_3_1.dll
388  )
389  endif() # end compiler specific settings
390 
391  # Additional libraries to install with the installer
392  set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
393  ${QT_PACKAGE_LIRABRIES}
394  ${VTK_PACKAGE_LIBRARIES}
395  ${ITK_PACKAGE_LIBRARIES}
396  ${GDCM_PACKAGE_LIBRARIES}
397  ${LIBXML2_PACKAGE_LIBRARIES}
398  ${XERCES_C_PACKAGE_LIBRARIES}
399  )
400 
401  # By default, do not warn when built on machines using only VS Express:
402  if(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
403  SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
404  endif()
405 
406  # Tell CMake to copy CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS content into the package
407  include(InstallRequiredSystemLibraries)
408 
409  # Application icon
410  set(CAMITK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\sdk\\\\libraries\\\\core\\\\resources\\\\appIcon.ico") #set here the current icon for CamiTK
411  set(CPACK_PACKAGE_ICON ${CAMITK_PACKAGE_ICON}) #icon for the top bar NSIS installer
412  set(CPACK_NSIS_MUI_ICON ${CAMITK_PACKAGE_ICON}) #icon for the generated install program (the .exe to run to install CamiTK).
413  set(CPACK_NSIS_MUI_UNIICON ${CAMITK_PACKAGE_ICON}) #icon for the generated uninstall program (the .exe to run to uninstall CamiTK).
414 
415  # Create desktop icons, by forcing CPack to build an internal command, as 'set(CPACK_NSIS_MODIFY_PATH ON)' option setted in the additional page doesn't work.
416  set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "CreateShortCut \\\"$DESKTOP\\\\${CAMITK_PROJECT_NAME}-imp.lnk\\\" \\\"$INSTDIR\\\\bin\\\\camitk-imp.exe\\\"")
417 
418  # Tell CPack to remove the icons after uninstalling
419  set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "Delete \\\"$DESKTOP\\\\${CAMITK_PROJECT_NAME}-imp.lnk\\\"")
420 
421  # Installer name
422  set(CPACK_NSIS_DISPLAY_NAME "CamiTK ${CAMITK_VERSION_MAJOR}.${CAMITK_VERSION_MINOR}.${CAMITK_VERSION_PATCH}")
423  set(CPACK_NSIS_INSTALLED_ICON_NAME ${CAMITK_PROJECT_NAME})
424 
425  set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CAMITK_PROJECT_NAME})
426  set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\camitk.imag.fr")
427  set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\camitk.imag.fr")
428  set(CPACK_NSIS_CONTACT ${CPACK_PACKAGE_CONTACT})
429 
430 endif()
431 
432 # ---------------
433 # Mac App Bundle
434 # ---------------
435 if(PACKAGING_NSIS AND APPLE)
436  # TODO test this!
437  set(CPACK_GENERATOR "PackageMaker")
438  # Libraries are bundled directly
439  set(CPACK_COMPONENT_LIBRARIES_HIDDEN TRUE)
440  # Bundle Properties
441  set(MACOSX_BUNDLE_BUNDLE_NAME ${CPACK_PACKAGE_NAME})
442  set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
443  set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION})
444  set(MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${PROJECT_VERSION}")
445 endif()
446 
447 
448 
449 # Set up CPack configuration
450 include(CPack)
451 
452 # Create the groups that will contains the installer components
453 cpack_add_component_group(SDK
454  DISPLAY_NAME "CamiTK SDK"
455  DESCRIPTION "The CamiTK SDK features the core and basics extensions. CamiTK installation requires at least the SDK"
456  BOLD_TITLE
457  )
458 cpack_add_component_group(CEP_IMAGING
459  DISPLAY_NAME "CEP Imaging"
460  DESCRIPTION "The CamiTK Extension Project IMAGING contains image processing extensions. Those extensions are optional."
461  )
462 cpack_add_component_group(CEP_MODELING
463  DISPLAY_NAME "CEP Modeling"
464  DESCRIPTION "The CamiTK Extension Project MODELING contains biomechanical extensions. Those extensions are optional."
465  )
466 
467 # ----------------------------------
468 # CamiTK specific packaging targets
469 # ----------------------------------
470 
471 # create specific target for package source
472 # When packaging, copy the CamiTKPackageVersion.h file to the source directory
473 # Don't forget to remove it immediatly after packaging.
474 add_custom_target(camitk_package_source
475  COMMAND ${CMAKE_COMMAND}
476  -E copy ${CMAKE_CURRENT_BINARY_DIR}/CamiTKPackageVersion.h
477  ${CMAKE_CURRENT_SOURCE_DIR}/sdk/libraries/core/CamiTKVersion.h
478  COMMAND ${CMAKE_COMMAND}
479  --build ${CMAKE_BINARY_DIR}
480  --target package_source
481  COMMAND ${CMAKE_COMMAND}
482  -E remove -f ${CMAKE_CURRENT_SOURCE_DIR}/sdk/libraries/core/CamiTKVersion.h
483 )
484 
485 # This target create the installer / linux package.
486 # On windows, you have configured with PACKAGING_NSIS=TRUE => all project names have their "-" replaced by "_" character
487 # NSIS doesn't support "-" character.
488 add_custom_target(camitk_package
489  COMMAND ${CMAKE_COMMAND}
490  -E copy ${CMAKE_CURRENT_BINARY_DIR}/sdk/libraries/core/CamiTKVersion.h
491  ${CMAKE_CURRENT_BINARY_DIR}/sdk/libraries/core/CamiTKVersion.h-backup
492  COMMAND ${CMAKE_COMMAND}
493  -E copy ${CMAKE_CURRENT_BINARY_DIR}/CamiTKPackageVersion.h
494  ${CMAKE_CURRENT_BINARY_DIR}/sdk/libraries/core/CamiTKVersion.h
495  COMMAND ${CMAKE_COMMAND}
496  --build ${CMAKE_BINARY_DIR}
497  --target PACKAGE --config Release
498  COMMAND ${CMAKE_COMMAND}
499  -E copy ${CMAKE_CURRENT_BINARY_DIR}/sdk/libraries/core/CamiTKVersion.h-backup
500  ${CMAKE_CURRENT_BINARY_DIR}/sdk/libraries/core/CamiTKVersion.h
501 )
502 
503 end(){)
camitk_opensource_packaging()
Definition: CamiTKOpenSourcePackaging.h:51
OUTFILE execute_process(COMMAND ${CMAKE_COMMAND}-E remove-f ${CAMITK_TEST_COMMAND_OUTPUT_FILE}) set(CAMITK_TEST_COMMAND_ARG"$
Definition: CamiTKTestCompareFile.h:15
string name
Definition: select.cpp:111
set(CAMITK_TEST_COMMAND_FILE ${CAMITK_TEST_OUTPUT_DIR}/command) set(CAMITK_TEST_COMMAND_RESULT_FILE $
This CMake file run a command and put the output in a given file.
Definition: CamiTKTestPassFile.h:11
map< unsigned int, unsigned int >::iterator it
Definition: pml2wrl.cpp:50
Cell * c
Definition: pml2wrl.cpp:42
static void include(QRect &r, const QRect &rect)
Definition: canvas_typed/qtcanvas.cpp:98
#define C
Definition: gensphere.cpp:67
get_filename_component(OUTFILE ${CAMITK_TEST_PASS_FILE}NAME) set(CAMITK_TEST_COMMAND_OUTPUT_FILE $
This CMake file run a command and put the output in a given file.
Definition: CamiTKTestCompareFile.h:11