]> Creatis software - creaTools.git/blob - install/CMakeLists.txt
CPACK bug win64 install
[creaTools.git] / install / CMakeLists.txt
1 # ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
4 #                        pour la Santé)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 #
7 #  This software is governed by the CeCILL-B license under French law and 
8 #  abiding by the rules of distribution of free software. You can  use, 
9 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
10 #  license as circulated by CEA, CNRS and INRIA at the following URL 
11 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
12 #  or in the file LICENSE.txt.
13 #
14 #  As a counterpart to the access to the source code and  rights to copy,
15 #  modify and redistribute granted by the license, users are provided only
16 #  with a limited warranty  and the software's author,  the holder of the
17 #  economic rights,  and the successive licensors  have only  limited
18 #  liability. 
19 #
20 #  The fact that you are presently reading this means that you have had
21 #  knowledge of the CeCILL-B license and that you accept its terms.
22 # ------------------------------------------------------------------------   
23
24
25 #-----------------------------------------------------------------------------
26 # CPACK+NSIS PACKAGING
27 #-----------------------------------------------------------------------------
28
29 #---Documentation-------------
30 #http://www.cmake.org/Wiki/CMake:Packaging_With_CPack
31 #http://www.cmake.org/Wiki/CMake:CPackConfiguration
32 #http://www.cmake.org/Wiki/CMake:Install_Commands
33
34 INCLUDE(InstallRequiredSystemLibraries)
35
36 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME} - CREATIS")
37 SET(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-${CREATOOLS_BUILDTYPE}")
38 SET(CPACK_PACKAGE_VENDOR "CREATIS")
39 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.txt")
40 SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
41 SET(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_MAJOR_VERSION})
42 SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_MINOR_VERSION})
43 SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_BUILD_VERSION})
44
45 # EED 2024-01-18
46 # SET(CPACK_SYSTEM_NAME ${CREATOOLS_PLATFORM})
47 SET(CPACK_NSIS_INSTALL_ROOT  $ENV{ProgramFiles})
48
49 # SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools\\\\${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
50   SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools\\\\CreaTools-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
51   IF(WIN32)
52     SET(CMAKE_INSTALL_PREFIX C:/CreaTools/CeaTools)
53   ENDIF(WIN32)
54
55
56
57 IF(WIN32 AND NOT UNIX)
58   # There is a bug in NSI that does not handle full unix paths properly. Make
59   # sure there is at least one set of four (4) backlasshes.
60 #EED  SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/kernel/install/gnome/bbi-icon2.bmp")
61 #  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/BBI_EXE.exe")
62
63   SET(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME}")
64   SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/creatools/${PROJECT_NAME}")
65   SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/creatools/${PROJECT_NAME}")
66   SET(CPACK_NSIS_CONTACT "info-dev@creatis.insa-lyon.fr")
67   SET(CPACK_NSIS_MODIFY_PATH OFF)
68   SET(CPACK_INNOSETUP_ARCHITECTURE "x64")
69       
70   set  (MessageCreatoolsPath "CREATOOLS_SOURCE_PATH (bbtk, crea, creaMaracasVisu, ...)")
71   set  (CREATOOLS_SOURCE_PATH  "" CACHE PATH ${MessageCreatoolsPath} )
72   set  (CREATOOLS_DESTINATION_PATH ".")
73
74 #  set  (CREA_THIRDPARTY_DLLS           crea_ThirdParty_dlls-3.0.0)
75 #  set  (CREA_THIRDPARTY_LIBRARIES      crea_ThirdParty_Libraries-3.0.0)
76   set  (CREA_BASE                                       crea)
77   set  (CREA_BBTK                                       bbtk)
78   set  (CREA_MARACASVISU                        creaMaracasVisu)
79   set  (CREA_VTK                                        creaVtk)
80   set  (CREA_IMAGEIO                            creaImageIO)
81   set  (CREA_CONTOURS                           creaContours)
82   set  (CREA_ENVIRIONMENT                       creaEnvironment)
83   set  (CREA_RECALAGE                           creaRigidRegistration)
84   set  (CREA_BRUKER                                     creaBruker)
85   set  (CREA_BBTKGEDITOR                        bbtkGEditor)
86   set  (CREA_MINITOOLS                          creaMiniTools)
87 #  set  (CREA_IRM                                       creaIRM-1.0.1)
88   
89 #  set  (CREA_BOOST_LYBRARY     "boost-1.40.0")
90 #  set  (CREA_GDCM_LYBRARY      "gdcm110909")
91 #  set  (CREA_ITK_LYBRARY       "itk-3.14.0")
92 #  set  (CREA_QT_LYBRARY        "Qt4.5.2")
93 #  set  (CREA_VTK_LYBRARY       "vtk-5.4.2")  
94 #  set  (CREA_WXWIN_LYBRARY     "wxWidgets-2.8.10")  
95
96   
97   IF(NOT CREATOOLS_SOURCE_PATH)
98     MESSAGE(FATAL_ERROR "${MessageCreatoolsPath}  not found")
99   ENDIF(NOT CREATOOLS_SOURCE_PATH)
100   
101         
102 #       SET(TTH_DIRBIN                                  "$INSTDIR\\\\bin\\\\tth")
103 #       SET(MIKTEX_INSTALL_DIRBIN               "$INSTDIR\\\\bin\\\\MikTex-2.7\\\\miktex\\\\bin")
104         SET(CREATOOLS_DIRBIN                    "$INSTDIR\\\\bin")
105         SET(CREA_DLLS_DIRBIN                    "$INSTDIR\\\\bin")
106         SET(CREA_BASE_DIRBIN                    "$INSTDIR\\\\${CREA_BASE}\\\\bin")
107         SET(CREA_BBTK_DIRBIN                    "$INSTDIR\\\\${CREA_BBTK}\\\\bin")
108         SET(CREA_MARACASVISU_DIRBIN     "$INSTDIR\\\\${CREA_MARACASVISU}\\\\bin")
109         SET(CREA_VTK_DIRBIN                     "$INSTDIR\\\\${CREA_VTK}\\\\bin")
110         SET(CREA_IMAGEIO_DIRBIN                 "$INSTDIR\\\\${CREA_IMAGEIO}\\\\bin")
111         SET(CREA_CONTOURS_DIRBIN                "$INSTDIR\\\\${CREA_CONTOURS}\\\\bin")
112         SET(CREA_ENVIRIONMENT_DIRBIN    "$INSTDIR\\\\${CREA_ENVIRIONMENT}\\\\bin")
113         SET(CREA_RECALAGE_DIRBIN                "$INSTDIR\\\\${CREA_RECALAGE}\\\\bin")
114         SET(CREA_BBTKGEDITOR_DIRBIN             "$INSTDIR\\\\${CREA_BBTKGEDITOR}\\\\bin")
115         
116 ###     SET(CREATOOLS_DIRS "${CREA_DLLS_DIRBIN};${MIKTEX_INSTALL_DIRBIN}")  
117         SET(CREATOOLS_DIRS "${CREATOOLS_DIRBIN}")
118   
119   
120    SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS  "
121    
122            !define Install_ReadEnvStr_RegKey 'HKCU \\\"Environment\\\"'
123                 ReadRegStr $0 \\\${Install_ReadEnvStr_RegKey} 'PATH'
124                 
125                 Push '$0;'
126                 Push '%CREATOOLS_DIRS%'
127                 Call StrStr
128                 Pop $2
129                 StrCmp $2 '' '' AddToPath_doneEED
130         StrCpy $0 \\\"$0;%CREATOOLS_DIRS%\\\"
131         WriteRegExpandStr \\\${Install_ReadEnvStr_RegKey} 'PATH' $0
132                 
133                 AddToPath_doneEED:
134                 CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Version.txt.lnk' '${CREATOOLS_DIRBIN}\\\\..\\\\Version.txt' 
135
136                 SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 'STR:Environment' /TIMEOUT=5000 
137
138                 CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\CreaTools_HomePage.lnk' '${CREATOOLS_DIRBIN}\\\\start.bat'  'www.creatis.insa-lyon.fr/site7/creatools'
139                 CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\CreaTools.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe bbs\\\\creaMiniTools\\\\appli\\\\minitoolsMenu.bbs'
140
141 #               CreateDirectory '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools'
142 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\creaNewProject.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'creaNewProject.exe'
143 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\bbStudio.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbStudio.exe'
144 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\bbEditor.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbEditor.exe'
145 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\bbi.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe'
146 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\Readme.txt.lnk' '${CREATOOLS_DIRBIN}\\\\start.bat'  'bin\\\\data\\\\README_DeveloperTools.txt'
147 #               CreateDirectory '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos'
148 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos\\\\Filter01.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe demo\\\\appli\\\\demoFiltering1.bbs'
149 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos\\\\Viewing01.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat' 'bbi.exe demo\\\\appli\\\\demoViewing1.bbs'
150 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos\\\\ShowNPoints.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat' 'bbi.exe bbs\\\\creaMaracasVisu\\\\appli\\\\ExampleShowNPoints.bbs'
151 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos\\\\Readme.txt.lnk' '${CREATOOLS_DIRBIN}\\\\start.bat'  'bin\\\\data\\\\README_Demos.txt'
152 #               CreateDirectory '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools'
153 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools\\\\RigidRegistration.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe bbs\\\\PackRecalage\\\\appli\\\\Recalage.bbs'
154 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools\\\\RenderingViewing.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe bbs\\\\creaMaracasVisu\\\\appli\\\\ExampleRenderingViewer.bbs'
155 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools\\\\Contours.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'creaContourApp.exe'
156 #               CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools\\\\Readme.txt.lnk' '${CREATOOLS_DIRBIN}\\\\start.bat'  'bin\\\\data\\\\README_ImageTools.txt'
157
158                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'CREATOOLS_DIRS' '${CREATOOLS_DIRS}'
159                                 
160                 SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 'STR:Environment' /TIMEOUT=5000        
161                 
162                 SetShellVarContext current
163                 StrCpy $R0 \\\"$DOCUMENTS\\\\..\\\\.bbtk\\\\doc\\\"
164                 RMDir /r $R0
165
166    ")
167                 
168         SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS  "
169         
170         
171                 !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
172                 Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\CreaTools_HomePage.lnk'
173                 Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\ creaTools.lnk'
174                 Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Version.txt.lnk'
175                 Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Update_CreaTools.lnk'
176                 
177 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\creaNewProject.lnk'
178 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\bbStudio.lnk'
179 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\bbEditor.lnk'
180 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\bbi.lnk'
181 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\Readme.txt.lnk'
182                 
183 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Demos\\\\Filter01.lnk'
184 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Demos\\\\Viewing01.lnk'
185 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Demos\\\\ShowNPoints.lnk'
186 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Demos\\\\Readme.txt.lnk'
187
188 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Image_Tools\\\\RigidRegistration.lnk'
189 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Image_Tools\\\\RenderingViewing.lnk'
190 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Image_Tools\\\\Contours.lnk'
191 #               Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Image_Tools\\\\Readme.txt.lnk'
192
193         StrCpy $MUI_TEMP '$SMPROGRAMS\\\\$MUI_TEMP'
194                 RMDir /r $MUI_TEMP
195                 
196                 !define Uninstall_EnvStr_RegKey 'HKLM \\\"SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment\\\"'                 
197                 WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'CREATOOLS_DIRS' ''             
198                 SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 'STR:Environment' /TIMEOUT=5000 
199                 
200                 SetShellVarContext current
201                 StrCpy $R0 \\\"$DOCUMENTS\\\\..\\\\.bbtk\\\\doc\\\"
202                 RMDir /r $R0
203                 
204         ")
205    
206    
207    
208
209
210 ELSE(WIN32 AND NOT UNIX)
211   SET(CPACK_STRIP_FILES "${CREA_BBTK}\\\\ubs.bat;kkk.rrr")
212   SET(CPACK_SOURCE_STRIP_FILES "")
213 ENDIF(WIN32 AND NOT UNIX)
214
215 #EED 20 Nov 2009
216 #SET(CPACK_PACKAGE_EXECUTABLES "bbStudio" "creatisStudio"
217 #                                                         "bbi" "creatisInterpreter"
218 #                                                         "IRMMain" "creatisCartography"
219 #                                                         "creaNewProject" "creatisNewProyect" )
220
221
222 INCLUDE(CPack)
223
224 message("-------------------------------- "${CREATOOLS_SOURCE_PATH})
225
226 # Aditional INSTALL for CPACK mecanism.
227 IF (WIN32)
228
229 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_THIRDPARTY_DLLS}\\\\bin/                  DESTINATION "${CREATOOLS_DESTINATION_PATH}/bin" )
230 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_THIRDPARTY_LIBRARIES}\\\\Library/         DESTINATION ${CREATOOLS_DESTINATION_PATH} )
231
232 INSTALL(FILES ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/Version.txt DESTINATION . )
233
234 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/bin/                                                    DESTINATION bin  )
235 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/data/                                                   DESTINATION bin/data  ) 
236 INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}/                                     DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
237 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_BASE}/                    DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
238 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_BBTK}/                    DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
239 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_MARACASVISU}/             DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
240 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_VTK}/                             DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
241 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_IMAGEIO}/                         DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
242 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_CONTOURS}/                DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
243 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_ENVIRIONMENT}/    DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
244 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_RECALAGE}/                DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
245 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_BRUKER}/                  DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
246 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_BBTKGEDITOR}/             DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
247 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_MINITOOLS}/               DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
248 #INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_IRM}/                     DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
249 ENDIF (WIN32)
250
251
252 IF (UNIX)
253    install( FILES ${PROJECT_BINARY_DIR}/Version.sh  DESTINATION share/creatools )
254    install( FILES ${PROJECT_BINARY_DIR}/Version.txt DESTINATION share/creatools )
255 ENDIF (UNIX)
256
257