X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=development%2FLyX-Mac-binary-release.sh;h=f2683fec4497d69203f557745a82efbde89b5488;hb=1e28965589bcf5ad85ed6d75ae2e59611989f78e;hp=2399394ed88cd0cf0f3c27202df855a95f8228cf;hpb=c518c57a78f3d240ed59deb81febe7800cca2d70;p=lyx.git diff --git a/development/LyX-Mac-binary-release.sh b/development/LyX-Mac-binary-release.sh index 2399394ed8..f2683fec44 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,7 +143,6 @@ 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 @@ -190,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=*) @@ -268,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*=*) @@ -281,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 ;; --*) @@ -297,7 +299,7 @@ while [ $# -gt 0 ]; do done if [ "${configure_qt_frameworks}" != "yes" ]; then - QtInstallDir=${QTDIR:-"/opt/qt4"} + QtInstallDir=${QTDIR} fi ARCH_LIST=${ARCH_LIST:-"ppc i386"} @@ -329,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 " []()") @@ -361,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" @@ -405,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 @@ -419,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 @@ -644,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 # ------------------------------------- @@ -690,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} -F${QtInstallDir}/lib" + CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch}" + LDFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch}" if [ "$configure_qt_frameworks" = "yes" ]; then export QT_CORE_CFLAGS="-FQtCore" @@ -946,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" @@ -964,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)) @@ -1002,10 +1009,22 @@ 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 + test -x ${INKSCAPE} && ${INKSCAPE} --export-type=png -w 560 -o dmg-background.png dmg-background.svgz + test -x ${INKSCAPE} && ${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 ' ') + test -f "${DmgBackground}" || make_image + 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 }') @@ -1057,7 +1076,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}" @@ -1078,6 +1097,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