From c562385f157c7581c04aec7dc2c2cbb3559ed2c1 Mon Sep 17 00:00:00 2001 From: ion12 Date: Tue, 18 Apr 2017 00:26:28 +0100 Subject: [PATCH] macOS build fixes suggestions take 2 Suggestion for resolving CMakeLists.txt , macosx_bundle.sh , executable_loader.in Please review + double-check on macOS --- CMakeLists.txt | 24 ++++++++++++++++++------ tools/osx/executable_loader.in | 4 +++- tools/osx/macosx_bundle.sh | 4 ++-- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 41e621938..2d6ee8e68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -203,20 +203,31 @@ endif() if(NOT DEFINED DESKTOPDIR) if(UNIX) - set(DESKTOPDIR "${CMAKE_INSTALL_PREFIX}/share/applications") # Absolute - #set(DESKTOPDIR "${DATADIR}/share/applications") # Relative + if(BUILD_BUNDLE) + set(DESKTOPDIR "${DATADIR}/share/applications") + else() + set(DESKTOPDIR "${CMAKE_INSTALL_PREFIX}/share/applications") + endif() endif() endif() if(NOT DEFINED ICONSDIR) if(UNIX) - set(ICONSDIR "${CMAKE_INSTALL_PREFIX}/share/icons") + if(BUILD_BUNDLE) + set(ICONSDIR "${DATADIR}/share/icons") + else() + set(ICONSDIR "${CMAKE_INSTALL_PREFIX}/share/icons") + endif() endif() endif() if(NOT DEFINED APPDATADIR) if(UNIX) - set(APPDATADIR "${CMAKE_INSTALL_PREFIX}/share/appdata") + if(BUILD_BUNDLE) + set(APPDATADIR "${DATADIR}/share/appdata") + else() + set(APPDATADIR "${CMAKE_INSTALL_PREFIX}/share/appdata") + endif() endif() endif() @@ -421,7 +432,9 @@ install(FILES RELEASE_NOTES.txt DESTINATION "${CREDITSDIR}" OPTIONAL) # The standard location for man pages in Linux is /usr/share/man # Use "manpath" to see the search paths for man pages on your system. -if(UNIX OR WIN32) +if(BUILD_BUNDLE) + install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${DATADIR}/share/man/man1") +else() install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1") endif() @@ -437,4 +450,3 @@ add_subdirectory(rtexif) add_subdirectory(rtengine) add_subdirectory(rtgui) add_subdirectory(rtdata) - diff --git a/tools/osx/executable_loader.in b/tools/osx/executable_loader.in index 535d37ec1..42fbdd968 100644 --- a/tools/osx/executable_loader.in +++ b/tools/osx/executable_loader.in @@ -41,7 +41,9 @@ export RT_CACHE="${HOME}/Library/Application Support/RawTherapee/cache" case "$1" in -psn_*) shift ;; esac - +if [[ -d "/tmp/RawTherapee.app" ]]; then + rm -rf "/tmp/RawTherapee.app" +fi ln -sf "${app}" /tmp exec "${cwd}/rawtherapee-bin" "$@" diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 26cf87250..159a9e91d 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -154,7 +154,7 @@ ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/icons/Adwaita/index.theme # fi # Install names -find -E "${MACOS}" -type f -regex '.*/(rawtherapee|.*\.(dylib|so))' | while read x; do +find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee|.*\.(dylib|so))' | while read x; do msg "Modifying install names: ${x}" { # id @@ -167,7 +167,7 @@ find -E "${MACOS}" -type f -regex '.*/(rawtherapee|.*\.(dylib|so))' | while read done msg "Registering @loader_path into the executable:" -echo " install_name_tool -add_rpath @loader_path/lib '${EXECUTABLE}'" | bash -v +echo " install_name_tool -add_rpath @loader_path/../Frameworks '${EXECUTABLE}'" | bash -v msg "Installing required application bundle files:" PROJECT_SOURCE_DATA_DIR="${PROJECT_SOURCE_DIR}/tools/osx"