X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=development%2FLyX-Mac-binary-release.sh;h=8bad69d6121d83e4e289ee2c29ae45f19ce67e7b;hb=9dc6f09c6584f765576dfed9758889ecbb286937;hp=acde8c102871d3c3e035ff72314f11484ac2fd41;hpb=ca7defab45a685bbc0303c32b94afb5ec98d4118;p=features.git diff --git a/development/LyX-Mac-binary-release.sh b/development/LyX-Mac-binary-release.sh index acde8c1028..8bad69d612 100644 --- a/development/LyX-Mac-binary-release.sh +++ b/development/LyX-Mac-binary-release.sh @@ -47,7 +47,7 @@ LyXConfigureOptions="${LyXConfigureOptions} --disable-stdlib-debug" AspellConfigureOptions="--enable-warnings --enable-optimization=-O0 --enable-debug --disable-nls --enable-compile-in-filters --disable-pspell-compatibility" HunspellConfigureOptions="--with-warnings --disable-nls --disable-static" -QtMajorVersion=qt4 +QtMajorVersion=$(echo "${QtVersion}"|cut -d. -f1) QtConfigureOptions="${QtConfigureOptions} -opensource -silent -shared -confirm-license" # stupid special case... case "${QtVersion}:${QtAPI}" in @@ -63,7 +63,6 @@ case "${QtVersion}:${QtAPI}" in QtConfigureOptions="${QtConfigureOptions} -fast -no-strip" QtConfigureOptions="${QtConfigureOptions} -no-javascript-jit -no-pkg-config" QtConfigureOptions="${QtConfigureOptions} -nomake examples -nomake demos -nomake docs -nomake tools" - QtMajorVersion=qt5 ;; 5.6*|5.7*) QtConfigureOptions="${QtConfigureOptions} -no-strip" @@ -73,7 +72,6 @@ case "${QtVersion}:${QtAPI}" in QtConfigureOptions="${QtConfigureOptions} -skip qtquickcontrols" QtConfigureOptions="${QtConfigureOptions} -skip qttools" QtConfigureOptions="${QtConfigureOptions} -skip qtdeclarative" - QtMajorVersion=qt5 ;; 5.*) QtConfigureOptions="${QtConfigureOptions} -no-strip" @@ -82,7 +80,6 @@ case "${QtVersion}:${QtAPI}" in for component in ${QtSkipComponents} ; do QtConfigureOptions="${QtConfigureOptions} -skip ${component}" done - QtMajorVersion=qt5 ;; *) QtConfigureOptions="${QtConfigureOptions} -fast -no-exceptions" @@ -146,12 +143,12 @@ usage() { echo " --aspell-deployment=yes|no ." default yes echo " --with-qt-frameworks=yes|no." default no echo " --qt-deployment=yes|no ....." default yes - echo " --with-macosx-target=TARGET " default 10.4 "(Tiger)" echo " --with-sdkroot=SDKROOT ....." default 10.5 "(Leopard)" echo " --with-arch=ARCH ..........." default ppc,i386 echo " --with-build-path=PATH ....." default \${lyx-src-dir}/../lyx-build echo " --with-dmg-location=PATH ..." default \${build-path} echo " --with-binary-strip=yes ...." default no + echo " --codesign-identity=CSID ..." default is w/o CSID echo echo "All other arguments with -- are passed to configure" echo "including the defaults: ${LyXConfigureOptions}" @@ -189,8 +186,9 @@ while [ $# -gt 0 ]; do QTDIR=$(echo ${1}|cut -d= -f2) shift ;; - --with-macosx-target=*) + --with-macos-deployment-target=*) MACOSX_DEPLOYMENT_TARGET=$(echo ${1}|cut -d= -f2) + LyXConfigureOptions="${LyXConfigureOptions} ${1}" shift ;; --with-sdkroot=*) @@ -267,9 +265,15 @@ while [ $# -gt 0 ]; do aspell_deployment="no" shift ;; + --with-included-hunspell) + LyXConfigureOptions="${LyXConfigureOptions} ${1}" + hunspell_deployment="no" + shift + ;; --without-hunspell) LyXConfigureOptions="${LyXConfigureOptions} ${1}" hunspell_deployment="no" + hunspell_dictionaries="no" shift ;; --only-qt*=*) @@ -280,9 +284,8 @@ while [ $# -gt 0 ]; do LyxOnlyPackage=$(echo ${1}|cut -d= -f2) shift ;; - --enable-cxx11) - LyXConfigureOptions="${LyXConfigureOptions} ${1}" - EnableCXX11="--enable-cxx11" + --enable-cxx11|--enable-cxx-mode=*) + EnableCXXMode="${1}" shift ;; --*) @@ -328,7 +331,7 @@ QtBuildDir=${QtBuildDir:-"${LyxBuildDir}"/${QtBuildSubDir:-"qt-build"}} DictionarySourceDir=${DICTIONARYDIR:-$(dirname "${LyxSourceDir}")/dictionaries} DocumentationDir=$(dirname "${LyxSourceDir}")/Documents -DmgBackground="${LyxSourceDir}"/development/MacOSX/dmg-background.png +DmgBackground="${LyxSourceDir}"/development/MacOSX/dmg-background.tiff if [ -z "${LyXVersion}" ]; then LyXVersion=$(grep AC_INIT "${LyxSourceDir}"/configure.ac | cut -d, -f2 | tr -d " []()") @@ -360,13 +363,23 @@ case "${QtVersion}" in QtFrameworkVersion="5" ;; 5.12.*) - QtLibraries=${QtLibraries:-"QtDbus QtSvg QtXml QtPrintSupport QtMacExtras QtWidgets QtGui QtNetwork QtConcurrent QtCore"} + QtLibraries=${QtLibraries:-"QtDBus QtSvg QtXml QtPrintSupport QtMacExtras QtWidgets QtGui QtNetwork QtConcurrent QtCore"} QtFrameworkVersion="5" ;; 5*) QtLibraries=${QtLibraries:-"QtSvg QtXml QtPrintSupport QtMacExtras QtWidgets QtGui QtNetwork QtConcurrent QtCore"} QtFrameworkVersion="5" ;; +6*) + QtLibraries=${QtLibraries:-"QtCore5Compat QtDBus QtSvg QtXml QtPrintSupport QtSvgWidgets QtWidgets QtGui QtNetwork QtConcurrent QtCore"} + QtFrameworkVersion="A" + case "${EnableCXXMode}" in + --enable-cxx11|--enable-cxx-mode=11) + echo Warning: Adjust cxx standard "${EnableCXXMode}" for Qt 6. C++17 or better is required. + EnableCXXMode="--enable-cxx-mode=17" + ;; + esac + ;; *) QtLibraries=${QtLibraries:-"QtSvg QtXml QtGui QtNetwork QtCore"} QtFrameworkVersion="4" @@ -377,7 +390,7 @@ DMGNAME="${LyxBase}${LyXGitCommitHash:+-}${LyXGitCommitHash}" DMGSIZE="550m" # Check for existing SDKs -SDKs=$(echo ${DEVELOPER_SDKS}/MacOSX10*sdk) +SDKs=$(echo ${DEVELOPER_SDKS}/MacOSX1[01]*sdk) case $SDKs in *${SDKROOT}*) ;; @@ -404,6 +417,21 @@ esac MYCFLAGS="-mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" MYLDFLAGS="-mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" +case "${EnableCXXMode}" in +--enable-cxx11|--enable-cxx-mode=11) + export CC=cc + export CXX="c++ -stdlib=libc++" + export CXXFLAGS=-std=c++11 + LyXConfigureOptions="${LyXConfigureOptions} --enable-cxx-mode=11" + ;; +--enable-cxx-mode=17) + export CC=cc + export CXX="c++ -stdlib=libc++" + export CXXFLAGS=-std=c++17 + LyXConfigureOptions="${LyXConfigureOptions} ${EnableCXXMode}" + ;; +esac + build_qt() { echo Build Qt library ${QtSourceDir} if [ "${QtInstallDir}" = "${QtBuildDir}" ]; then @@ -418,16 +446,6 @@ build_qt() { "${QtSourceDir}"/configure ${QtConfigureOptions} ${QTARCHS} -prefix "${QtInstallDir}" make -j1 && make -j1 install ) - if [ -d "${QtInstallDir}" -a ! -f "${QtInstallDir}"/include/QtCore ]; then - cd "${QtInstallDir}" && ( - mkdir -p include - cd include - for libnm in ${QtLibraries} ; do - test -d ${libnm} -o -L ${libnm} || \ - ( ln -s ../lib/${libnm}.framework/Headers ${libnm} && echo Link to framework ${libnm} ) - done - ) - fi } case ${QtOnlyPackage:-"no"} in @@ -643,14 +661,6 @@ build_lyx() { rm -rf "${LyxAppPrefix}" fi - case "${EnableCXX11}" in - "--enable-cxx11") - export CC=cc - export CXX="c++ -stdlib=libc++" - export CXXFLAGS=-std=c++11 - ;; - esac - # ------------------------------------- # Automate configure check # ------------------------------------- @@ -689,8 +699,8 @@ build_lyx() { if [ -d "${LyxBuildDir}" ]; then rm -r "${LyxBuildDir}"; fi mkdir -p "${LyxBuildDir}" && cd "${LyxBuildDir}" - CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYCFLAGS}" - LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch} ${MYLDFLAGS}" + CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch}" + LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch}" if [ "$configure_qt_frameworks" = "yes" ]; then export QT_CORE_CFLAGS="-FQtCore" @@ -899,6 +909,8 @@ code_sign() { "${condir}"/PlugIns/*/lib*.dylib \ "${condir}"/Library/Spotlight/* \ "${target}"/inkscape \ + "${target}"/lilypond \ + "${target}"/lilypond-book \ "${target}"/maxima \ "${target}"/tex2lyx \ "${target}"/lyxeditor \ @@ -943,12 +955,10 @@ copy_dictionaries() { cp -p -r "${ASpellInstallDir}/lib/aspell-0.60"/* "${ASpellResources}"/data cp -p -r "${ASpellInstallDir}/share/aspell"/* "${ASpellResources}"/dicts fi - if [ -d "${HunSpellInstallDir}" -a "yes" = "${hunspell_dictionaries}" ]; then + if [ -d "${DictionarySourceDir}" -a "yes" = "${hunspell_dictionaries}" ]; then HunSpellResources="${LyxAppPrefix}/Contents/Resources" - if [ -d "${DictionarySourceDir}" ]; then - ( cd "${DictionarySourceDir}" && find dicts -name .svn -prune -o -type f -print | cpio -pmdv "${HunSpellResources}" ) - deduplicate "${HunSpellResources}"/dicts - fi + ( cd "${DictionarySourceDir}" && find dicts -name .svn -prune -o -type f -print | cpio -pmdv "${HunSpellResources}" ) + deduplicate "${HunSpellResources}"/dicts fi if [ -d "${DictionarySourceDir}" -a "yes" = "${thesaurus_deployment}" ]; then MyThesResources="${LyxAppPrefix}/Contents/Resources" @@ -961,7 +971,7 @@ set_bundle_display_options() { X_BOUNDS=$2 Y_BOUNDS=$3 Y_POSITION=$((Y_BOUNDS - 65)) - Y_BOUNDS=$((Y_BOUNDS + 20)) + Y_BOUNDS=$((Y_BOUNDS + 50)) LYX_X_POSITION=$((X_BOUNDS / 4)) LYX_Y_POSITION=$Y_POSITION APP_X_POSITION=$((3 * X_BOUNDS / 4)) @@ -999,10 +1009,19 @@ set_bundle_display_options() { EOF } +# The image was made with with inkscape and tiffutil from dmg-background.svgz +make_image() { + INKSCAPE=/Applications/Inkscape.app/Contents/MacOS/inkscape + cd "${LyxSourceDir}"/development/MacOSX + ${INKSCAPE} --export-type=png -w 560 -o dmg-background.png dmg-background.svgz + ${INKSCAPE} --export-type=png -w 1120 -o dmg-background@2x.png dmg-background.svgz + tiffutil -cathidpicheck dmg-background.png dmg-background@2x.png -out dmg-background.tiff +} + make_dmg() { cd "${1}" - BGSIZE=$(file "$DmgBackground" | awk -F , '/PNG/{print $2 }' | tr x ' ') + BGSIZE=$(file "$DmgBackground" | awk -F , '/TIFF/{ print $10 $4 ;}/PNG/{ print $2; }'|sed -e 's/width=//' -e 's/height=//' -e 's/x//') BG_W=$(echo ${BGSIZE} | awk '{print $1 }') BG_H=$(echo ${BGSIZE} | awk '{print $2 }') @@ -1030,7 +1049,7 @@ make_dmg() { ln -s /Applications/ "${VOLUME}"/Applications test -d "${DocumentationDir}" && ditto --hfsCompression "${DocumentationDir}" "${VOLUME}" set_bundle_display_options "${VOLUME}" ${BG_W} ${BG_H} - ${XCODE_DEVELOPER}/Tools/SetFile -a C "${VOLUME}" + PATH="${XCODE_DEVELOPER}/Tools:$PATH" SetFile -a C "${VOLUME}" mv "${VOLUME}/Pictures" "${VOLUME}/.Pictures" # Unmount the disk image @@ -1054,7 +1073,7 @@ build_package() { for arch in ${ARCH_LIST} ; do DMGARCH="${DMGARCH}-${arch}" done - QtDmgArchSuffix=${QtMajorVersion}${DMGARCH}${QtAPI}.dmg + QtDmgArchSuffix="qt"${QtMajorVersion}${DMGARCH}${QtAPI}.dmg test -n "${DMGLocation}" && ( make_dmg "${DMGLocation}" @@ -1075,6 +1094,6 @@ if [ ${LyxOnlyPackage:-"no"} = "no" ]; then convert_universal copy_dictionaries test -n "${CODESIGN_IDENTITY}" && code_sign "${LYX_BUNDLE_PATH}" - find "${LyxAppPrefix}" -type d -exec chmod a-w '{}' \; + find "${LyxAppPrefix}" -type d -exec chmod go-w '{}' \; fi build_package