]> Creatis software - creaToolsTools.git/blob - Install_mingw64/Install_ThirdParty/cmake/crea_ThirdParty_dlls/install/CMakeLists.txt
#3456 bug NSIS CPACK windows
[creaToolsTools.git] / Install_mingw64 / Install_ThirdParty / cmake / crea_ThirdParty_dlls / install / CMakeLists.txt
1
2 #-----------------------------------------------------------------------------
3 # CPACK+NSIS PACKAGING
4 #-----------------------------------------------------------------------------
5
6 #---Documentation-------------
7 #http://www.cmake.org/Wiki/CMake:Packaging_With_CPack
8 #http://www.cmake.org/Wiki/CMake:CPackConfiguration
9 #http://www.cmake.org/Wiki/CMake:Install_Commands
10
11
12 INCLUDE(InstallRequiredSystemLibraries)
13
14 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME} - CREATIS")
15 SET(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-${CREATOOLS_BUILDTYPE}")
16 SET(CPACK_PACKAGE_VENDOR "CREATIS")
17 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.txt")
18 SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
19 SET(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_MAJOR_VERSION})
20 SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_MINOR_VERSION})
21 SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_BUILD_VERSION})
22
23
24 SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools\\\\${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
25  IF(WIN32)
26    SET(CMAKE_INSTALL_PREFIX C:/CreaTools/crea_dlls_extern)
27  ENDIF(WIN32)
28
29
30 IF(WIN32 AND NOT UNIX)
31   # There is a bug in NSI that does not handle full unix paths properly. Make
32   # sure there is at least one set of four (4) backlasshes.
33 #EED  SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/kernel/install/gnome/bbi-icon2.bmp")
34 #  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/BBI_EXE.exe")
35   SET(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME}")
36   SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/creatools/${PROJECT_NAME}")
37   SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/creatools/${PROJECT_NAME}")
38   SET(CPACK_NSIS_CONTACT "info-dev@creatis.insa-lyon.fr")
39   SET(CPACK_NSIS_MODIFY_PATH OFF)
40     
41 # EED 2024-01-18
42 # SET(CPACK_SYSTEM_NAME ${CREATOOLS_PLATFORM})
43 SET(CPACK_NSIS_INSTALL_ROOT  $ENV{ProgramFiles})
44   
45   set  (CREA_BOOST_LYBRARY      boost)
46   set  (CREA_GDCM_LYBRARY       gdcm13 )
47   set  (CREA_ITK_LYBRARY        itk )
48   set  (CREA_QT_LYBRARY         qt )
49   set  (CREA_VTK_LYBRARY        vtk )  
50   set  (CREA_WXWIN_LYBRARY      wxWidgets)
51   set  (CREA_XERCES_LYBRARY     xerces)
52   set  (CREA_SQLITE_LYBRARY     sqlite)  
53   set  (CREA_SQLITE_LYBRARY     tth)  
54   
55 ELSE(WIN32 AND NOT UNIX)
56 #  SET(CPACK_STRIP_FILES "bin/bbi")
57   SET(CPACK_SOURCE_STRIP_FILES "")
58 ENDIF(WIN32 AND NOT UNIX)
59 #SET(CPACK_PACKAGE_EXECUTABLES "TestWxGimmickDialog" "Gimmick!")
60
61 # Aditional INSTALL for CPACK mecanism.
62 IF(WIN32)
63         set  (MessageLibraryPath "CREA_LIBRARY_DLL_PATH (itk,vtk,gdcm,wx,qt,tth)")
64         set  (CREA_LIBRARY_DLL_PATH  "" CACHE PATH ${MessageLibraryPath} )      
65         IF(NOT CREA_LIBRARY_DLL_PATH)
66                 MESSAGE(FATAL_ERROR "${MessageLibraryPath}  not found")
67         ENDIF(NOT CREA_LIBRARY_DLL_PATH)
68 ##  INSTALL( FILES ${PROJECT_SOURCE_DIR}/win32/sqlite3.dll DESTINATION bin ) 
69         STRING(REGEX REPLACE "\\\\" "/" WINDIR "$ENV{WINDIR}")
70         # INSTALL(   FILES ${WINDIR}/system32/msvcp71d.dll                              DESTINATION bin/ )
71         # INSTALL(   FILES ${WINDIR}/system32/msvcr71d.dll                              DESTINATION bin/ )      
72         
73         
74         INSTALL(FILES ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/Version.txt DESTINATION . )
75         INSTALL(DIRECTORY ${CREA_LIBRARY_DLL_PATH}/     DESTINATION . )
76
77 #EED 19-11-2009 
78 #       FILE(GLOB LST_FILE_DLL "${CREA_LIBRARY_DLL_PATH}/*.dll")        
79 #       FOREACH( iLST  ${LST_FILE_DLL} )
80 #          INSTALL( 
81 #                FILES ${iLST}
82 #                DESTINATION bin/
83 #          )
84 #       ENDFOREACH(iLST)        
85
86 #EED 19-11-2009 
87 #       FILE(GLOB LST_FILE_TTH "${CREA_LIBRARY_DLL_PATH}/tth/*.*")
88 #       FOREACH( iLST  ${LST_FILE_TTH} )
89 #          INSTALL( 
90 #                FILES ${iLST}
91 #                DESTINATION bin/tth/
92 #          )
93 #       ENDFOREACH(iLST)        
94         
95 #EED 19-11-2009 
96 #       SET(MIKTEXDIR "${CREA_LIBRARY_DLL_PATH}/MikTex-2.7/")   
97 #       INSTALL( 
98 #               DIRECTORY ${MIKTEXDIR}
99 #               DESTINATION bin/MikTex-2.7
100 #       )                               
101         
102 #EED-08oct2009  STRING(REGEX REPLACE "\\\\" "/" ENVPATH "$ENV{Path}")
103
104 #EED 19-11-2009 
105 #       SET(MIKTEX_INSTALL_DIR "$INSTDIR\\\\bin\\\\MikTex-2.7\\\\miktex\\\\bin")
106
107         SET(CREA_DLLS_DIR "$INSTDIR\\\\bin")
108         SET(CREATPDLLS_DIRBIN "$INSTDIR")
109         
110 #EED 19-11-2009 
111 #       SET(CREATIS_ENVIRONMENT_DIRS ";${CREA_DLLS_DIR};${MIKTEX_INSTALL_DIR}")
112         SET(CREATIS_THIRDPARTYDLLS_DIRS ";${CREA_DLLS_DIR}")
113         
114         
115         SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS  "        
116
117         
118 #EED 19-11-2009 
119 #               WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'TTH' '$INSTDIR\\\\bin\\\\tth' 
120
121                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'CREATIS_THIRDPARTYDLLS_DIRS' '${CREATIS_THIRDPARTYDLLS_DIRS}' 
122                 
123                 !define Install_ReadEnvStr_RegKey 'HKCU \\\"Environment\\\"'
124                 ReadRegStr $0 \\\${Install_ReadEnvStr_RegKey} 'PATH'
125                 
126                 Push '$0;'
127                 Push '%CREATIS_THIRDPARTYDLLS_DIRS%'
128                 Call StrStr
129                 Pop $2
130                 StrCmp $2 '' '' AddToPath_doneEED
131         StrCpy $0 \\\"$0;%CREATIS_THIRDPARTYDLLS_DIRS%\\\"
132         WriteRegExpandStr \\\${Install_ReadEnvStr_RegKey} 'PATH' $0
133                 
134                 AddToPath_doneEED:
135
136                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'BOOST_ROOT' '$INSTDIR\\\\' 
137                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'GDCM_DIR' '$INSTDIR\\\\lib\\\\gdcm\\\\' 
138                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'ITK_DIR' '$INSTDIR\\\\lib\\\\cmake\\\\ITK-5.0\\\\' 
139                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'QTDIR' '$INSTDIR\\\\' 
140                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'VTK_DIR' '$INSTDIR\\\\lib\\\\cmake\\\\vtk-8.1\\\\' 
141                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'WXWIN' '$INSTDIR\\\\' 
142                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'XERCES_DIR' '$INSTDIR\\\\cmake' 
143                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'SQLITE_DIR' '$INSTDIR\\\\' 
144                 WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'TTH' '$INSTDIR\\\\' 
145                 
146                   CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Version.txt.lnk' '${CREATPDLLS_DIRBIN}\\\\Version.txt' 
147                   SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 'STR:Environment' /TIMEOUT=5000 
148                   
149
150         ")
151                 
152         SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS  "
153                     !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
154                         Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Version.txt.lnk'
155                         
156                         StrCpy $MUI_TEMP '$SMPROGRAMS\\\\$MUI_TEMP'
157                         RMDir /r $MUI_TEMP
158
159                         !define Uninstall_EnvStr_RegKey 'HKLM \\\"SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment\\\"'                 
160                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'CREATIS_THIRDPARTYDLLS_DIRS' ''
161
162                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'BOOST_ROOT' ''
163                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'GDCM_DIR' ''
164                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'ITK_DIR' ''
165                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'QTDIR' ''
166                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'VTK_DIR' ''
167                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'WXWIN' ''
168                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'XERCES_DIR' ''
169                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'SQLITE_DIR' ''
170                         WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'TTH' ''
171                 
172                         SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 'STR:Environment' /TIMEOUT=5000 
173         
174                 ")
175
176
177
178                 
179 ENDIF(WIN32)
180
181 INCLUDE(CPack)