Merge pull request #6675 from Benitoite/patch-20
mac: fixes lensfun logic
This commit is contained in:
commit
ca08a279d5
12
.github/workflows/macos.yml
vendored
12
.github/workflows/macos.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
||||
build:
|
||||
runs-on: macos-11
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
date -u
|
||||
@ -48,6 +48,7 @@ jobs:
|
||||
-DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \
|
||||
-DPROC_TARGET_NUMBER="1" \
|
||||
-DPROC_LABEL="generic processor" \
|
||||
-DCMAKE_OSX_ARCHITECTURES=$(uname -m) \
|
||||
-DWITH_LTO="OFF" \
|
||||
-DLENSFUNDBDIR="/Applications/RawTherapee.app/Contents/Resources/share/lensfun" \
|
||||
-DCMAKE_C_COMPILER=clang \
|
||||
@ -61,9 +62,10 @@ jobs:
|
||||
-DOpenMP_libomp_LIBRARY=/usr/local/lib/libomp.dylib \
|
||||
-DCMAKE_AR=/usr/bin/ar \
|
||||
-DCMAKE_RANLIB=/usr/bin/ranlib \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
|
||||
-DOSX_CONTINUOUS=ON \
|
||||
..
|
||||
curl -L https://github.com/Homebrew/homebrew-core/raw/679923b4eb48a8dc7ecc1f05d06063cd79b3fc00/Formula/libomp.rb -o libomp.rb && brew install libomp.rb
|
||||
curl -L https://github.com/Homebrew/homebrew-core/raw/679923b4eb48a8dc7ecc1f05d06063cd79b3fc00/Formula/libomp.rb -o libomp.rb && brew install --formula libomp.rb
|
||||
zsh -c 'echo "Configured in $(printf "%0.2f" $(($[$(date +%s)-$(cat configstamp)]/$((60.))))) minutes"'
|
||||
- name: Compile RawTherapee
|
||||
run: |
|
||||
@ -77,7 +79,7 @@ jobs:
|
||||
zsh
|
||||
date +%s > build/bundlestamp && date -u && cd build
|
||||
export REF=${GITHUB_REF##*/} && export LOCAL_PREFIX=/usr && sudo make macosx_bundle
|
||||
export ARTIFACT=(RawTherapee*.zip)
|
||||
export ARTIFACT=(RawTherapee*${CMAKE_BUILD_TYPE}.zip)
|
||||
echo "=== artifact: ${ARTIFACT}"
|
||||
# defining environment variables for next step as per
|
||||
# https://github.com/actions/starter-workflows/issues/68
|
||||
@ -91,7 +93,7 @@ jobs:
|
||||
"ARTIFACT_FILE: ${ARTIFACT_FILE}" \
|
||||
"PUBLISH_NAME: ${PUBLISH_NAME}"
|
||||
exit
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{env.ARTIFACT_FILE}}
|
||||
path: ${{env.ARTIFACT_PATH}}
|
||||
|
@ -87,6 +87,9 @@ option(OSX_DEV_BUILD "Generate macOS development builds" OFF)
|
||||
# On macOS, optionally generate the final zip artifact file without version in the name for nightly upload purposes.
|
||||
option(OSX_NIGHTLY "Generate a generically-named zip" OFF)
|
||||
|
||||
# On macOS, optionally generate RawTherapee_<branch>_macOS_<buildtype>.zip for the CI
|
||||
option(OSX_CONTINUOUS "Generate a generically-named zip for CI" OFF)
|
||||
|
||||
# Generate a universal macOS build
|
||||
option(OSX_UNIVERSAL "Generate a universal app" OFF)
|
||||
|
||||
@ -94,14 +97,13 @@ option(OSX_UNIVERSAL "Generate a universal app" OFF)
|
||||
if(OSX_UNIVERSAL)
|
||||
if(NOT "${OSX_UNIVERSAL_URL}")
|
||||
if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
|
||||
set(OSX_UNIVERSAL_URL "https://kd6kxr.keybase.pub/RawTherapee_macOS_x86_64_latest.zip" CACHE STRING "URL of x86_64 app for lipo")
|
||||
set(OSX_UNIVERSAL_URL "file:///rawtherapee/latest/RawTherapee_macOS_x86_64_latest.zip" CACHE STRING "URL of x86_64 app for lipo")
|
||||
else()
|
||||
set(OSX_UNIVERSAL_URL "https://kd6kxr.keybase.pub/RawTherapee_macOS_arm64_latest.zip" CACHE STRING "URL of arm64 app for lipo")
|
||||
set(OSX_UNIVERSAL_URL "file:///rawtherapee/latest/RawTherapee_macOS_arm64_latest.zip" CACHE STRING "URL of arm64 app for lipo")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# By default we don't use a specific processor target, so PROC_TARGET_NUMBER is
|
||||
# set to 0. Specify other values to optimize for specific processor architecture
|
||||
# as listed in ProcessorTargets.cmake:
|
||||
|
@ -1,31 +0,0 @@
|
||||
diff --git a/lib/iconv.c b/lib/iconv.c
|
||||
index b7a04f8..41c5896 100644
|
||||
--- a/lib/iconv.c
|
||||
+++ b/lib/iconv.c
|
||||
@@ -610,5 +610,26 @@ strong_alias (libiconv_open, iconv_open)
|
||||
strong_alias (libiconv, iconv)
|
||||
strong_alias (libiconv_close, iconv_close)
|
||||
#endif
|
||||
+
|
||||
+#undef iconv_open
|
||||
+#undef iconv
|
||||
+#undef iconv_close
|
||||
+
|
||||
+LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode)
|
||||
+{
|
||||
+ return libiconv_open(tocode, fromcode);
|
||||
+}
|
||||
+
|
||||
+LIBICONV_DLL_EXPORTED size_t iconv (iconv_t icd,
|
||||
+ ICONV_CONST char * * inbuf, size_t *inbytesleft,
|
||||
+ char * * outbuf, size_t *outbytesleft)
|
||||
+{
|
||||
+ return libiconv(icd, inbuf, inbytesleft, outbuf, outbytesleft);
|
||||
+}
|
||||
+
|
||||
+LIBICONV_DLL_EXPORTED int iconv_close (iconv_t icd)
|
||||
+{
|
||||
+ return libiconv_close(icd);
|
||||
+}
|
||||
|
||||
#endif
|
@ -9,11 +9,11 @@
|
||||
# - GTK_PREFIX
|
||||
|
||||
# Formatting
|
||||
fNormal="$(tput sgr0)"
|
||||
fBold="$(tput bold)"
|
||||
fNormal="$(tput sgr0)" >/dev/null 2>&1
|
||||
fBold="$(tput bold)" >/dev/null 2>&1
|
||||
# Colors depend upon the user's terminal emulator color scheme - what is readable for you may be not readable for someone else.
|
||||
fMagenta="$(tput setaf 5)"
|
||||
fRed="$(tput setaf 1)"
|
||||
fMagenta="$(tput setaf 5)" >/dev/null 2>&1
|
||||
fRed="$(tput setaf 1)" >/dev/null 2>&1
|
||||
|
||||
function msg {
|
||||
printf "\\n${fBold}-- %s${fNormal}\\n" "${@}"
|
||||
@ -120,8 +120,8 @@ minimum_macos_version=${MINIMUM_SYSTEM_VERSION}
|
||||
#Out: /opt
|
||||
LOCAL_PREFIX="$(cmake .. -L -N | grep LOCAL_PREFIX)"; LOCAL_PREFIX="${LOCAL_PREFIX#*=}"
|
||||
|
||||
#In: OSX_UNIVERSAL_URL=https:// etc.
|
||||
#Out: https:// etc.
|
||||
#In: OSX_UNIVERSAL_URL=file:/// etc.
|
||||
#Out: file:/// etc.
|
||||
UNIVERSAL_URL="$(cmake .. -L -N | grep OSX_UNIVERSAL_URL)"; UNIVERSAL_URL="${UNIVERSAL_URL#*=}"
|
||||
if [[ -n $UNIVERSAL_URL ]]; then
|
||||
echo "Universal app is ON. The URL is ${UNIVERSAL_URL}"
|
||||
@ -135,8 +135,8 @@ EXPATLIB="$(cmake .. -LA -N | grep pkgcfg_lib_EXPAT_expat)"; pkgcfg_lib_EXPAT_ex
|
||||
#Out: Developer ID Application: Doctor Who (1234567890)
|
||||
CODESIGNID="$(cmake .. -L -N | grep CODESIGNID)"; CODESIGNID="${CODESIGNID#*=}"
|
||||
|
||||
#In: NOTARY:STRING=--username drwho@bbc.com --password abcd-efgh-hijk-lmno
|
||||
#Out: --username drwho@bbc.com --password abcd-efgh-hijk-lmno
|
||||
#In: NOTARY:STRING="--apple-id drwho@bbc.com --password abcd-efgh-hijk-lmno --team-id ABCDE12345"
|
||||
#Out: --apple-id drwho@bbc.com --password abcd-efgh-hijk-lmno --team-id ABCDE12345
|
||||
NOTARY="$(cmake .. -L -N | grep NOTARY)"; NOTARY="${NOTARY#*=}"
|
||||
|
||||
# In: FANCY_DMG:BOOL=ON
|
||||
@ -153,6 +153,13 @@ if [[ -n $NIGHTLY ]]; then
|
||||
echo "Nightly/generically-named zip is ON."
|
||||
fi
|
||||
|
||||
# In: OSX_CONTINUOUS:BOOL=ON
|
||||
# Out: ON
|
||||
OSX_CONTINUOUS="$(cmake .. -L -N | grep OSX_CONTINUOUS)"; NIGHTLY="${OSX_CONTINUOUS#*=}" && CONTINUOUS="${OSX_CONTINUOUS#*=}"
|
||||
if [[ -n $CONTINUOUS ]]; then
|
||||
echo "Continuous/generically-named zip is ON."
|
||||
fi
|
||||
|
||||
APP="${PROJECT_NAME}.app"
|
||||
CONTENTS="${APP}/Contents"
|
||||
RESOURCES="${CONTENTS}/Resources"
|
||||
@ -191,15 +198,17 @@ lensfunversion=$(pkg-config --modversion lensfun | cut -f3 -d'.')
|
||||
if [ $lensfunversion = 95 ]
|
||||
then
|
||||
ditto ${LOCAL_PREFIX}/share/lensfun/version_2/* "${RESOURCES}/share/lensfun"
|
||||
# Copy liblensfun to Frameworks
|
||||
ditto ${LOCAL_PREFIX}/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/liblensfun.2.dylib"
|
||||
|
||||
else
|
||||
ditto ${LOCAL_PREFIX}/share/lensfun/version_1/* "${RESOURCES}/share/lensfun"
|
||||
# Copy liblensfun to Frameworks
|
||||
ditto ${LOCAL_PREFIX}/lib/liblensfun.1.dylib "${CONTENTS}/Frameworks/liblensfun.1.dylib"
|
||||
fi
|
||||
|
||||
# Copy liblensfun to Frameworks
|
||||
ditto ${LOCAL_PREFIX}/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/liblensfun.2.dylib"
|
||||
|
||||
# Copy libomp to Frameworks
|
||||
ditto ${LOCAL_PREFIX}/lib/libomp.dylib "${CONTENTS}/Frameworks"
|
||||
cp ${LOCAL_PREFIX}/lib/libomp.dylib "${CONTENTS}/Frameworks"
|
||||
|
||||
msg "Copying dependencies from ${GTK_PREFIX}."
|
||||
CheckLink "${EXECUTABLE}" 2>&1
|
||||
@ -207,24 +216,20 @@ CheckLink "${EXECUTABLE}" 2>&1
|
||||
# dylib install names
|
||||
ModifyInstallNames 2>&1
|
||||
|
||||
# Copy libjpeg-turbo ("62") into the app bundle
|
||||
ditto ${LOCAL_PREFIX}/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg.62.dylib"
|
||||
## Copy libexpat into the app bundle (which is keg-only)
|
||||
## if [[ -d /usr/local/Cellar/expat ]]; then ditto /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks"; else cp "${EXPATLIB}" "${CONTENTS}/Frameworks/libexpat.1.dylib"; fi
|
||||
|
||||
# Copy libexpat into the app bundle (which is keg-only)
|
||||
if [[ -d /usr/local/Cellar/expat ]]; then ditto /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks"; else ditto "${EXPATLIB}" "${CONTENTS}/Frameworks/libexpat.1.dylib"; fi
|
||||
## Copy libz into the app bundle
|
||||
## cp ${LOCAL_PREFIX}/lib/libz.1.dylib "${CONTENTS}/Frameworks"
|
||||
|
||||
# Copy libz into the app bundle
|
||||
ditto ${LOCAL_PREFIX}/lib/libz.1.dylib "${CONTENTS}/Frameworks"
|
||||
|
||||
# Copy libpng12 & 16 to the app bundle
|
||||
ditto ${LOCAL_PREFIX}/lib/libpng16.16.dylib "${CONTENTS}/Frameworks/libpng16.16.dylib"
|
||||
ditto ${LOCAL_PREFIX}/lib/libpng12.0.dylib "${CONTENTS}/Frameworks/libpng12.0.dylib"
|
||||
# Copy libpng16 to the app bundle
|
||||
cp ${LOCAL_PREFIX}/lib/libpng16.16.dylib "${CONTENTS}/Frameworks/libpng16.16.dylib"
|
||||
|
||||
# Copy libtiff 5 into the app bundle
|
||||
ditto ${LOCAL_PREFIX}/lib/libtiff.5.dylib "${CONTENTS}/Frameworks/libtiff.5.dylib"
|
||||
cp ${LOCAL_PREFIX}/lib/libtiff.5.dylib "${CONTENTS}/Frameworks/libtiff.5.dylib"
|
||||
|
||||
# Copy libomp to Frameworks
|
||||
ditto ${LOCAL_PREFIX}/lib/libomp.dylib "${CONTENTS}/Frameworks"
|
||||
cp ${LOCAL_PREFIX}/lib/libomp.dylib "${CONTENTS}/Frameworks"
|
||||
|
||||
# Prepare GTK+3 installation
|
||||
msg "Copying configuration files from ${GTK_PREFIX}:"
|
||||
@ -238,7 +243,7 @@ find -E "${LIB}" -type f -regex '.*\.(a|la|cache)$' | while read -r; do rm "${RE
|
||||
# Make Frameworks folder flat
|
||||
msg "Flattening the Frameworks folder"
|
||||
cp -RL "${LIB}"/gdk-pixbuf-2.0/2*/loaders/* "${LIB}"
|
||||
cp "${LIB}"/gtk-3.0/3*/immodules/*.{dylib,so} "${LIB}"
|
||||
cp "${LIB}"/gtk-3.0/3*/immodules/*.{dylib,so} "${LIB}" >/dev/null 2>&1
|
||||
rm -r "${LIB}"/gtk-3.0
|
||||
rm -r "${LIB}"/gdk-pixbuf-2.0
|
||||
|
||||
@ -368,27 +373,7 @@ if [[ -n $NOTARY ]]; then
|
||||
msg "Notarizing the application:"
|
||||
ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip"
|
||||
echo "Uploading..."
|
||||
uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.RawTherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'`
|
||||
echo "Result= $uuid" # Display identifier string
|
||||
sleep 15
|
||||
while :
|
||||
do
|
||||
fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status
|
||||
status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'`
|
||||
if [[ $status1 = "success" ]]; then
|
||||
xcrun stapler staple *app # staple the ticket
|
||||
xcrun stapler validate -v *app
|
||||
echo "Notarization success"
|
||||
break
|
||||
elif [[ $status1 = "in" ]]; then
|
||||
echo "Notarization still in progress, sleeping for 15 seconds and trying again"
|
||||
sleep 15
|
||||
else
|
||||
echo "Notarization failed fullstatus below"
|
||||
echo "$fullstatus"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
sudo xcrun notarytool submit "${APP}.zip" ${NOTARY} --wait
|
||||
fi
|
||||
|
||||
function CreateDmg {
|
||||
@ -450,39 +435,26 @@ function CreateDmg {
|
||||
msg "Notarizing the dmg:"
|
||||
zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg"
|
||||
echo "Uploading..."
|
||||
uuid=$(xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }')
|
||||
echo "dmg Result= ${uuid}" # Display identifier string
|
||||
sleep 15
|
||||
while :
|
||||
do
|
||||
fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status
|
||||
status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'`
|
||||
if [[ $status1 = "success" ]]; then
|
||||
xcrun stapler staple "${dmg_name}.dmg" # staple the ticket
|
||||
xcrun stapler validate -v "${dmg_name}.dmg"
|
||||
echo "dmg Notarization success"
|
||||
rm *dmg.zip
|
||||
break
|
||||
elif [[ $status1 = "in" ]]; then
|
||||
echo "dmg Notarization still in progress, sleeping for 15 seconds and trying again"
|
||||
sleep 15
|
||||
else
|
||||
echo "dmg Notarization failed fullstatus below"
|
||||
echo "$fullstatus"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
sudo xcrun notarytool submit "${dmg_name}.dmg.zip" ${NOTARY} --wait
|
||||
fi
|
||||
|
||||
# Zip disk image for redistribution
|
||||
msg "Zipping disk image for redistribution:"
|
||||
mkdir "${PROJECT_NAME}_macOS_${MINIMUM_SYSTEM_VERSION}_${arch}_${PROJECT_FULL_VERSION}_folder"
|
||||
ditto {"${PROJECT_NAME}_macOS_${MINIMUM_SYSTEM_VERSION}_${arch}_${PROJECT_FULL_VERSION}.dmg","rawtherapee-cli","${PROJECT_SOURCE_DATA_DIR}/INSTALL.txt"} "${PROJECT_NAME}_macOS_${MINIMUM_SYSTEM_VERSION}_${arch}_${PROJECT_FULL_VERSION}_folder"
|
||||
cp {"${PROJECT_NAME}_macOS_${MINIMUM_SYSTEM_VERSION}_${arch}_${PROJECT_FULL_VERSION}.dmg","${PROJECT_NAME}.app/Contents/Frameworks/rawtherapee-cli","${PROJECT_SOURCE_DATA_DIR}/INSTALL.readme.rtf"} "${PROJECT_NAME}_macOS_${MINIMUM_SYSTEM_VERSION}_${arch}_${PROJECT_FULL_VERSION}_folder"
|
||||
zip -r "${PROJECT_NAME}_macOS_${MINIMUM_SYSTEM_VERSION}_${arch}_${PROJECT_FULL_VERSION}.zip" "${PROJECT_NAME}_macOS_${MINIMUM_SYSTEM_VERSION}_${arch}_${PROJECT_FULL_VERSION}_folder/"
|
||||
if [[ -n $NIGHTLY ]]; then
|
||||
cp "${PROJECT_NAME}_macOS_${MINIMUM_SYSTEM_VERSION}_${arch}_${PROJECT_FULL_VERSION}.zip" "${PROJECT_NAME}_macOS_${arch}_latest.zip"
|
||||
fi
|
||||
if [[ -n $CONTINUOUS ]]; then
|
||||
BRANCH=$(git branch --show-current)
|
||||
if test -z "${BRANCH}"; then
|
||||
BRANCH=$(git rev-parse --short HEAD)
|
||||
fi
|
||||
mv "${PROJECT_NAME}_macOS_${arch}_latest.zip" "${PROJECT_NAME}_${BRANCH}_macOS_${CMAKE_BUILD_TYPE}.zip"
|
||||
fi
|
||||
}
|
||||
|
||||
CreateDmg
|
||||
msg "Finishing build:"
|
||||
echo "Script complete."
|
||||
|
Loading…
x
Reference in New Issue
Block a user