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