From e8fcc7b77f42e9a11c28dca013e63d48e75e0fe6 Mon Sep 17 00:00:00 2001 From: Julien Malik <julien.malik@c-s.fr> Date: Thu, 21 Feb 2013 18:50:13 +0100 Subject: [PATCH] ENH: support creation of Monteverdi2 windows NSIS installer. Preliminary import of MacOS bundle support file (untested) --- CMakeLists.txt | 2 ++ Description.txt | 12 +++++++ Packaging/CMakeLists.txt | 49 +++++++++++++++++++++++++++ Packaging/MacOS/BundleFixing.cmake | 4 +++ Packaging/MacOS/CMakeLists.txt | 14 ++++++++ Packaging/MacOS/Info.plist.in | 14 ++++++++ Packaging/MacOS/Monteverdi2.icns | Bin 0 -> 42798 bytes Packaging/MacOS/StartupCommand | 14 ++++++++ Packaging/Windows/BundleFixing.cmake | 2 ++ Packaging/Windows/CMakeLists.txt | 44 ++++++++++++++++++++++++ Packaging/Windows/monteverdi2.bat | 15 ++++++++ 11 files changed, 170 insertions(+) create mode 100644 Description.txt create mode 100644 Packaging/CMakeLists.txt create mode 100644 Packaging/MacOS/BundleFixing.cmake create mode 100644 Packaging/MacOS/CMakeLists.txt create mode 100644 Packaging/MacOS/Info.plist.in create mode 100644 Packaging/MacOS/Monteverdi2.icns create mode 100644 Packaging/MacOS/StartupCommand create mode 100644 Packaging/Windows/BundleFixing.cmake create mode 100644 Packaging/Windows/CMakeLists.txt create mode 100644 Packaging/Windows/monteverdi2.bat diff --git a/CMakeLists.txt b/CMakeLists.txt index df37f8d938..5ded889903 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -177,6 +177,8 @@ add_subdirectory( Code ) # i18n directory must be added after all source files (see add_qt1_i18n_sources). add_subdirectory( i18n ) +add_subdirectory( Packaging ) + #---------------------------------------------------------------------------- # Enable / Disable testing option(BUILD_TESTING "Build testing." OFF) diff --git a/Description.txt b/Description.txt new file mode 100644 index 0000000000..72de38a29e --- /dev/null +++ b/Description.txt @@ -0,0 +1,12 @@ +Remote sensing processing library developped by CNES ORFEO Toolbox (OTB) is + distributed as an open source library of image processing algorithms. OTB is + based on the medical image processing library ITK and offers particular + functionalities for remote sensing image processing in general and for high + spatial resolution images in particular. OTB is distributed under a free + software licence CeCILL (similar to GPL) to encourage contribution from users + and to promote reproducible research. The library is intensively tested on + several platforms as Linux, Unix and Windows. Most functionnalies are also + adapted to process huge images using streaming and multithreading as often as + possible. + . + This package provide the Monteverdi2 GUI application developped on top of the OTB library \ No newline at end of file diff --git a/Packaging/CMakeLists.txt b/Packaging/CMakeLists.txt new file mode 100644 index 0000000000..f13fabfdde --- /dev/null +++ b/Packaging/CMakeLists.txt @@ -0,0 +1,49 @@ +option(Monteverdi2_USE_CPACK "Generate installer using CPack" OFF) +mark_as_advanced(Monteverdi2_USE_CPACK) + +if( Monteverdi2_USE_CPACK ) + +set(CPACK_PACKAGE_NAME "Monteverdi2") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Monteverdi2") + +set(CPACK_PACKAGE_VERSION "${Monteverdi2_VERSION_STRING}") +set(CPACK_PACKAGE_VERSION_MAJOR "${Monteverdi2_VERSION_MAJOR}") +set(CPACK_PACKAGE_VERSION_MINOR "${Monteverdi2_VERSION_MINOR}") +set(CPACK_PACKAGE_VERSION_PATCH "${Monteverdi2_VERSION_PATCH}") + +set(CPACK_PACKAGE_CONTACT "contact@orfeo-toolbox.org" CACHE STRING "Orfeo toolbox contact email") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${Monteverdi2_SOURCE_DIR}/Description.txt") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "Monteverdi2-${Monteverdi2_VERSION_MAJOR}.${Monteverdi2_VERSION_MINOR}") +set(CPACK_RESOURCE_FILE_LICENSE "${Monteverdi2_SOURCE_DIR}/Copyright.txt") + +# http://www.vtk.org/Bug/view.php?id=7828 +# Need to use the CPACK_PACKAGE_EXECUTABLES +# otherwise the shortcut in the menu will not +# appear. +set(CPACK_PACKAGE_EXECUTABLES "monteverdi2" "Monteverdi2") + +# Manage dependencies between components +set(CPACK_COMPONENT_DEVELOPMENT_DEPENDS Runtime) +set(CPACK_COMPONENT_RUNTIME_DEPENDS Resources) + +set(CPACK_COMPONENT_RUNTIME_REQUIRED ON) +set(CPACK_COMPONENT_RESOURCES_REQUIRED ON) +set(CPACK_COMPONENT_RESOURCES_HIDDEN ON) + +set(CPACK_COMPONENT_RUNTIME_DESCRIPTION "Monteverdi2") + +# Don't package the Developement component +set(CPACK_COMPONENTS_ALL "Runtime;Resources;Unspecified") + +if( APPLE ) + add_subdirectory( MacOS ) +endif( APPLE ) + +if( WIN32 AND NOT UNIX ) + add_subdirectory( Windows ) +endif( WIN32 AND NOT UNIX ) + +include(InstallRequiredSystemLibraries) +include(CPack) + +endif() diff --git a/Packaging/MacOS/BundleFixing.cmake b/Packaging/MacOS/BundleFixing.cmake new file mode 100644 index 0000000000..ebb9d5d62b --- /dev/null +++ b/Packaging/MacOS/BundleFixing.cmake @@ -0,0 +1,4 @@ + +include(BundleUtilities) +set(BU_CHMOD_BUNDLE_ITEMS ON) +fixup_bundle("${CMAKE_INSTALL_PREFIX}/bin/monteverdi" "" "${CMAKE_INSTALL_PREFIX}/lib/otb") diff --git a/Packaging/MacOS/CMakeLists.txt b/Packaging/MacOS/CMakeLists.txt new file mode 100644 index 0000000000..c3b7c9a998 --- /dev/null +++ b/Packaging/MacOS/CMakeLists.txt @@ -0,0 +1,14 @@ +set(CPACK_GENERATOR "Bundle" PARENT_SCOPE) +set(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/Monteverdi2.icns" PARENT_SCOPE) +set(CPACK_BUNDLE_NAME "Monteverdi-${Monteverdi_VERSION_MAJOR}.${Monteverdi_VERSION_MINOR}" PARENT_SCOPE) +set(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist" PARENT_SCOPE) +set(CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/StartupCommand" PARENT_SCOPE) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist) + +install(DIRECTORY $ENV{GDAL_DATA} + DESTINATION share + COMPONENT Resources) + +install(SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/BundleFixing.cmake + COMPONENT Runtime) diff --git a/Packaging/MacOS/Info.plist.in b/Packaging/MacOS/Info.plist.in new file mode 100644 index 0000000000..270cacf3e9 --- /dev/null +++ b/Packaging/MacOS/Info.plist.in @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> + <dict> + <key>CFBundleExecutable</key> + <string>Monteverdi2-@Monteverdi_VERSION_MAJOR@.@Monteverdi_VERSION_MINOR@</string> + <key>CFBundleIconFile</key> + <string>Monteverdi2-@Monteverdi_VERSION_MAJOR@.@Monteverdi_VERSION_MINOR@.icns</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + </dict> +</plist> diff --git a/Packaging/MacOS/Monteverdi2.icns b/Packaging/MacOS/Monteverdi2.icns new file mode 100644 index 0000000000000000000000000000000000000000..9f7645a384fe5e6d86d2dde3a4b6fc88bccd2aec GIT binary patch literal 42798 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 literal 0 HcmV?d00001 diff --git a/Packaging/MacOS/StartupCommand b/Packaging/MacOS/StartupCommand new file mode 100644 index 0000000000..f872aa124b --- /dev/null +++ b/Packaging/MacOS/StartupCommand @@ -0,0 +1,14 @@ +#!/bin/sh + +BUNDLE="`echo "$0" | sed -e 's/\/Contents\/MacOS\/.*//'`" +RESOURCES="$BUNDLE/Contents/Resources" + +#echo "BUNDLE: $BUNDLE" +#echo "RESOURCES: $RESOURCES" + +export GDAL_DATA=$RESOURCES/share/gdal + +# Need to have write access to the monteverdi current dir for Caching +cd $HOME + +exec "$RESOURCES/bin/monteverdi2" diff --git a/Packaging/Windows/BundleFixing.cmake b/Packaging/Windows/BundleFixing.cmake new file mode 100644 index 0000000000..e6642c8d20 --- /dev/null +++ b/Packaging/Windows/BundleFixing.cmake @@ -0,0 +1,2 @@ +include(BundleUtilities) +fixup_bundle("${CMAKE_INSTALL_PREFIX}/bin/monteverdi2.exe" "" "") \ No newline at end of file diff --git a/Packaging/Windows/CMakeLists.txt b/Packaging/Windows/CMakeLists.txt new file mode 100644 index 0000000000..2000a1cffc --- /dev/null +++ b/Packaging/Windows/CMakeLists.txt @@ -0,0 +1,44 @@ +set(CPACK_NSIS_MODIFY_PATH ON 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") +endif(NOT OSGEO4W_ROOT) + +file(TO_CMAKE_PATH "$ENV{GDAL_DATA}" GDAL_DATA) +if(NOT GDAL_DATA) + message(FATAL_ERROR "Cannot generate installer without OSGeo4W environment : GDAL_DATA") +endif(NOT GDAL_DATA) + +# 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_SOURCE_DIR}/BundleFixing.cmake + COMPONENT Runtime) + +# For some reason, fixup_bundle won't package the msvc runtime dll +# I guess it's because cpack already handles installing the runtime, +# but here we build with a particular version of Visual, but +# some OSGeo4W dependencies are built upon other runtimes +install(FILES ${OSGEO4W_ROOT}/bin/msvcp60.dll + ${OSGEO4W_ROOT}/bin/msvcp70.dll + ${OSGEO4W_ROOT}/bin/msvcp71.dll + ${OSGEO4W_ROOT}/bin/msvcr71.dll + ${OSGEO4W_ROOT}/bin/msvcrt.dll + DESTINATION bin + COMPONENT Runtime) + +# Need to include csv files provided with OSGeo that contains some needed EPSG definitions +find_path(GDAL_DATA epsg.wkt $ENV{GDAL_DATA}) + +install(DIRECTORY ${GDAL_DATA} + DESTINATION share + COMPONENT Resources) + +install(FILES ${Monteverdi2_SOURCE_DIR}/Packaging/Windows/monteverdi2.bat + DESTINATION bin + COMPONENT Runtime) + +# Override the monteverdi2.exe +# with the monteverdi.bat shortcut +set(CPACK_NSIS_MENU_LINKS + "bin/monteverdi2.bat" "Monteverdi2" PARENT_SCOPE) diff --git a/Packaging/Windows/monteverdi2.bat b/Packaging/Windows/monteverdi2.bat new file mode 100644 index 0000000000..e0faeccb23 --- /dev/null +++ b/Packaging/Windows/monteverdi2.bat @@ -0,0 +1,15 @@ +::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: Monteverdi launcher to set up proper GDAL environment +::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +:: Get the directory of the current script +@set CURRENT_SCRIPT_DIR=%~dp0 + +:: Set GDAL_DATA env. variable +@set GDAL_DATA=%CURRENT_SCRIPT_DIR%..\share\gdal + +:: Set current dir to HOME dir because Monteverdi generates temporary files and need write access +@cd %HOMEDRIVE%%HOMEPATH% + +:: Start Monteverdi +@"%CURRENT_SCRIPT_DIR%monteverdi.exe" -- GitLab