From be84781b28543c77c2c0e13d6f7309677003d479 Mon Sep 17 00:00:00 2001 From: Rashad Kanavath <rashad.kanavath@c-s.fr> Date: Mon, 18 May 2015 17:53:46 +0200 Subject: [PATCH] COMP: set proper component for bat files and BundleFixing.cmake --- Packaging/Windows/BundleFixing.cmake.in | 6 +- Packaging/Windows/CMakeLists.txt | 81 +++++-------------------- Packaging/Windows/mapla.bat | 2 +- 3 files changed, 18 insertions(+), 71 deletions(-) diff --git a/Packaging/Windows/BundleFixing.cmake.in b/Packaging/Windows/BundleFixing.cmake.in index aec4c0f885..e10150ab5f 100644 --- a/Packaging/Windows/BundleFixing.cmake.in +++ b/Packaging/Windows/BundleFixing.cmake.in @@ -1,10 +1,8 @@ set(APP_LIST @OTB_APPS_NAME_LIST@) foreach(APP ${APP_LIST}) - list(APPEND OTB_APPS_LIST_INSTALL ${CMAKE_INSTALL_PREFIX}/lib/otb/applications/${APP}) + list(APPEND OTB_APPS_LIST_INSTALL ${CMAKE_INSTALL_PREFIX}/../Runtime/lib/otb/applications/${APP}) endforeach(APP) include(BundleUtilities) -fixup_bundle("${CMAKE_INSTALL_PREFIX}/bin/monteverdi2.exe" "${OTB_APPS_LIST_INSTALL}" "") -fixup_bundle("${CMAKE_INSTALL_PREFIX}/bin/mv2.exe" "${OTB_APPS_LIST_INSTALL}" "") -fixup_bundle("${CMAKE_INSTALL_PREFIX}/bin/mapla.exe" "${OTB_APPS_LIST_INSTALL}" "") +fixup_bundle("${CMAKE_INSTALL_PREFIX}/bin/@EXE_FILENAME@" "${OTB_APPS_LIST_INSTALL}" "") diff --git a/Packaging/Windows/CMakeLists.txt b/Packaging/Windows/CMakeLists.txt index 2f672aee5f..0ddf7dcbea 100644 --- a/Packaging/Windows/CMakeLists.txt +++ b/Packaging/Windows/CMakeLists.txt @@ -1,62 +1,3 @@ -set(CPACK_NSIS_MODIFY_PATH ON PARENT_SCOPE) - -# Override the monteverdi2.exe -# with the monteverdi2.bat shortcut -set(CPACK_NSIS_MENU_LINKS - "bin/monteverdi2.bat" "Monteverdi2" - PARENT_SCOPE) - -# Since we put bat files as MENU_LINKS, they does not get an icon automatically -# though NSIS can do that. -# That's why we use the following hack to associate the icon coming from the executable -# to the bat file : -set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS - " - CreateShortCut \\\"$SMPROGRAMS\\\\Monteverdi2-${Monteverdi2_VERSION_MAJOR}.${Monteverdi2_VERSION_MINOR}\\\\Monteverdi2.lnk\\\" \\\"$INSTDIR\\\\bin\\\\monteverdi2.bat\\\" \\\" \\\" \\\"$INSTDIR\\\\bin\\\\monteverdi2.exe\\\" - " - PARENT_SCOPE) - -set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS - " - Delete \\\"$SMPROGRAMS\\\\Monteverdi2-${Monteverdi2_VERSION_MAJOR}.${Monteverdi2_VERSION_MINOR}\\\\Monteverdi2.lnk\\\" - " - PARENT_SCOPE) - -# StartMenu entries for Mapla. -set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS - " - CreateShortCut \\\"$SMPROGRAMS\\\\Monteverdi2-${Monteverdi2_VERSION_MAJOR}.${Monteverdi2_VERSION_MINOR}\\\\Mapla.lnk\\\" \\\"$INSTDIR\\\\bin\\\\mapla.bat\\\" \\\" \\\" \\\"$INSTDIR\\\\bin\\\\mapla.exe\\\" - " - PARENT_SCOPE) - -set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS - " - Delete \\\"$SMPROGRAMS\\\\Monteverdi2-${Monteverdi2_VERSION_MAJOR}.${Monteverdi2_VERSION_MINOR}\\\\Mapla.lnk\\\" - " - PARENT_SCOPE) - -# StartMenu entries for Mv2. -set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS - " - CreateShortCut \\\"$SMPROGRAMS\\\\Monteverdi2-${Monteverdi2_VERSION_MAJOR}.${Monteverdi2_VERSION_MINOR}\\\\Mv2.lnk\\\" \\\"$INSTDIR\\\\bin\\\\mv2.bat\\\" \\\" \\\" \\\"$INSTDIR\\\\bin\\\\mv2.exe\\\" - " - PARENT_SCOPE) - -set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS - " - Delete \\\"$SMPROGRAMS\\\\Monteverdi2-${Monteverdi2_VERSION_MAJOR}.${Monteverdi2_VERSION_MINOR}\\\\Mv2.lnk\\\" - " - PARENT_SCOPE) - -# Icon for the add-remove program -set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\monteverdi2.exe" PARENT_SCOPE) - -# set the install/unistall icon used for the installer itself -# There is a bug in NSI that does not handle full unix paths properly. -set(CPACK_NSIS_MUI_ICON "${Monteverdi2_SOURCE_DIR}/Data/Icons/monteverdi2.ico" PARENT_SCOPE) -set(CPACK_NSIS_MUI_UNIICON "${Monteverdi2_SOURCE_DIR}/Data/Icons/monteverdi2.ico" PARENT_SCOPE) - - file(TO_CMAKE_PATH "$ENV{OSGEO4W_ROOT}" OSGEO4W_ROOT) if(NOT OSGEO4W_ROOT) message(FATAL_ERROR "Cannot generate installer without OSGeo4W environment : OSGEO4W_ROOT") @@ -89,15 +30,25 @@ foreach(APP ${OTB_APPS_LIST}) endforeach(APP) # configure the file to pass the list of available applications +set(EXE_FILENAME "monteverdi2.exe") configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/BundleFixing.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/BundleFixing.cmake @ONLY) +set(EXE_FILENAME "mapla.exe") +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/BundleFixing.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/BundleFixing2.cmake + @ONLY) + + #Use the configured file with the list of apps # Gather all dlls from which Monteverdi depends, and put them aside the executable # For this to work, the necessary DLL must be in PATH install(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/BundleFixing.cmake - COMPONENT Runtime) + COMPONENT Monteverdi2) + +install(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/BundleFixing2.cmake + COMPONENT Mapla) # The following DLL handling is very specific # both to OSGeo4W flavour (32 bit or 64 bit), OSGeo4W package state @@ -155,12 +106,10 @@ install(FILES qt.conf install(FILES ${Monteverdi2_SOURCE_DIR}/Packaging/Windows/monteverdi2.bat DESTINATION bin - COMPONENT Runtime) + COMPONENT Monteverdi2) + install(FILES ${Monteverdi2_SOURCE_DIR}/Packaging/Windows/mapla.bat DESTINATION bin - COMPONENT Runtime) - -install(FILES ${Monteverdi2_SOURCE_DIR}/Packaging/Windows/mv2.bat - DESTINATION bin - COMPONENT Runtime) + COMPONENT Mapla) + diff --git a/Packaging/Windows/mapla.bat b/Packaging/Windows/mapla.bat index 0fb7e9e5c0..3f242fbfe7 100644 --- a/Packaging/Windows/mapla.bat +++ b/Packaging/Windows/mapla.bat @@ -2,7 +2,7 @@ :: Monteverdi launcher to set up proper GDAL environment ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: Get the directory of the current script +:: Get the directory of the current script @set CURRENT_SCRIPT_DIR=%~dp0 :: Set GDAL_DATA env. variable -- GitLab