diff --git a/mac-setup/.gitignore b/mac-setup/.gitignore index e95836ab..ce27e251 100644 --- a/mac-setup/.gitignore +++ b/mac-setup/.gitignore @@ -1,3 +1,10 @@ macdylibbundler Xournal++.app - +gtk-osx-build-setup.sh +tmp-jhbuild-revision +poppler-* +poppler.tar.xz +openjpeg* +gtk-mac-bundler +.xournalpp* +*.zip diff --git a/mac-setup/Info.plist b/mac-setup/Info.plist index 87e079be..edc35e93 100644 --- a/mac-setup/Info.plist +++ b/mac-setup/Info.plist @@ -76,7 +76,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - Xournal++ 1.0.6 + Xournal++ CFBundlePackageType APPL CFBundleShortVersionString diff --git a/mac-setup/README.md b/mac-setup/README.md new file mode 100644 index 00000000..874823bb --- /dev/null +++ b/mac-setup/README.md @@ -0,0 +1,32 @@ +## Build Xournal++ .app +Do not install macports or homebrew. If you have installed it, you need to +create a new user, and use this for the whole process. jhbuild does not work, +if there is such an environment installed. + +### Make sure the Development environement is installed +Open a Terminal, and type in **git**, confirm popup from Appstore with "Install" to install development tools. + +### Build GTK +Execute in this folder. +````bash +./build-gtk3.sh +```` + +The build will fail. After first failure (missing python module six) +Download from here: https://pypi.org/project/six/ +Execute +````bash +$HOME/gtk/inst/bin/python setup.py install +```` + +### Build Xournal++ +````bash +cmake -DCMAKE_INSTALL_PREFIX:PATH=$HOME/gtk/inst -DENABLE_MATHTEX=OFF .. +make -j 4 +make install +```` + +### Build App +````bash +./build-app.sh +```` diff --git a/mac-setup/build-app.sh b/mac-setup/build-app.sh index 8a3e6e74..c3429b56 100755 --- a/mac-setup/build-app.sh +++ b/mac-setup/build-app.sh @@ -11,43 +11,42 @@ cd "${0%/*}" # delete old app, if there echo "clean old app" +export PATH="$HOME/.local/bin:$HOME/gtk/inst/bin:$PATH" + rm -rf ./Xournal++.app +rm ./Xournal++.zip -echo "prepare macdylibbundler" -if [ ! -d "macdylibbundler" ]; then - git clone https://github.com/auriamg/macdylibbundler.git macdylibbundler - cd macdylibbundler +echo "prepare gtk-mac-bundler" +if [ ! -d "gtk-mac-bundler" ]; then + git clone https://gitlab.gnome.org/GNOME/gtk-mac-bundler.git + cd gtk-mac-bundler else - cd macdylibbundler + cd gtk-mac-bundler git pull fi -make -j 2 - +make install cd .. -echo "copy binaries" -mkdir -p Xournal++.app/Contents/MacOS -mkdir -p Xournal++.app/Contents/Resources -cp ../build/src/xournalpp ./Xournal++.app/Contents/MacOS/xournalpp +echo "create package" -./macdylibbundler/dylibbundler -od -b -x ./Xournal++.app/Contents/MacOS/xournalpp -d ./Xournal++.app/Contents/libs/ +gtk-mac-bundler xournalpp.bundle -mdkir -p ./Xournal++.app/Contents/lib +mkdir -p Xournal++.app/Contents/Resources -echo "copy pixbuf libs" -cp -r /usr/local/lib/gdk-pixbuf-2.0 ./Xournal++.app/Contents/lib +export bundle_etc="./Xournal++.app/Contents/Resources/etc" +export GTK_IM_MODULE_FILE="$bundle_etc/gtk-2.0/gtk.immodules" +export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-2.0/gdk-pixbuf.loaders" -echo "copy pixbuf lib dependencies" -./macdylibbundler/dylibbundler -od -b -x ./Xournal++.app/Contents/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so -d ./Xournal++.app/Contents/libs/ +mkdir -p ./Xournal++.app/Contents/Resources/etc/gtk-2.0/ +gdk-pixbuf-query-loaders > ./Xournal++.app/Contents/Resources/etc/gtk-2.0/gdk-pixbuf.loaders +sed -i -e "s:$HOME/gtk/inst/:@executable_path/../Resources/:g" ./Xournal++.app/Contents/Resources/etc/gtk-2.0/gdk-pixbuf.loaders -echo "copy icons" -## TODO +echo "Copy UI" -echo "finalize packaging" +cp -rp ../ui ./Xournal++.app/Contents/Resources/ -cp icon/xournalpp.icns ./Xournal++.app/Contents/Resources/xournalpp.icns -cp Info.plist ./Xournal++.app/Contents/Info.plist -cp -rvp ../ui ./Xournal++.app/Contents/Resources/ +echo "Create zip" +zip -r Xournal++.zip Xournal++.app echo "finished" diff --git a/mac-setup/build-gtk3.sh b/mac-setup/build-gtk3.sh new file mode 100755 index 00000000..c713c78a --- /dev/null +++ b/mac-setup/build-gtk3.sh @@ -0,0 +1,12 @@ +export PATH="$HOME/.local/bin:$PATH" + +# missing six python lib: +# after first failure download, unpack and install with +# /Users/yourname/gtk/inst/bin/python setup.py install + +curl https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/gtk-osx-build-setup.sh -o gtk-osx-build-setup.sh +chmod +x gtk-osx-build-setup.sh +./gtk-osx-build-setup.sh + +jhbuild bootstrap +jhbuild build python meta-gtk-osx-bootstrap meta-gtk-osx-gtk3 diff --git a/mac-setup/build-poppler.sh b/mac-setup/build-poppler.sh new file mode 100755 index 00000000..de0f51ce --- /dev/null +++ b/mac-setup/build-poppler.sh @@ -0,0 +1,29 @@ +export PATH="$HOME/.local/bin:$PATH" + +curl -L https://github.com/uclouvain/openjpeg/archive/v2.3.0.tar.gz -o openjpeg.tar.gz +tar xf openjpeg.tar.gz +cd openjpeg-* +mkdir build +cd build +echo "Build OpenJpeg" +pwd +$HOME/gtk/inst/bin/cmake -DCMAKE_INSTALL_PREFIX:PATH=$HOME/gtk/inst .. +make -j8 +make install +cd .. +cd .. + +export LIBRARY_PATH="$HOME/gtk/inst/lib:$LIBRARY_PATH" + +curl https://poppler.freedesktop.org/poppler-0.72.0.tar.xz -o poppler.tar.xz +tar xf poppler.tar.xz +cd poppler-* +mkdir build +cd build +echo "Build Poppler" +pwd +$HOME/gtk/inst/bin/cmake -DCMAKE_INSTALL_PREFIX:PATH=$HOME/gtk/inst .. +make -j8 +make install +cd .. +cd .. diff --git a/mac-setup/xournalpp.bundle b/mac-setup/xournalpp.bundle new file mode 100644 index 00000000..2f9768e3 --- /dev/null +++ b/mac-setup/xournalpp.bundle @@ -0,0 +1,81 @@ + + + + + ${env:HOME}/gtk/inst + . + + + + + + + + gtk+-3.0 + + + ${project}/Info.plist + + ${prefix}/bin/xournalpp + + + + ${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/immodules/*.so + + + + + ${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/printbackends/*.so + + + + + ${prefix}/lib/gdk-pixbuf-2.0/${pkg:gdk-pixbuf-2.0:gdk_pixbuf_binary_version}/loaders/*.so + + + + + ${prefix}/lib/libpoppler-glib*.dynlib + + + + + ${prefix}/share/locale + + + + + + + + + ${prefix}/share/themes + + + + ${prefix}/share/icons + + + + ${project}/icon/xournalpp.icns + + + diff --git a/readme/MacBuild.md b/readme/MacBuild.md index 6b83f1c3..b8b57ae7 100644 --- a/readme/MacBuild.md +++ b/readme/MacBuild.md @@ -1,4 +1,6 @@ -# Xournal++ Mac Build +# Xournal++ Mac Build (development) + +**To create an .app see [Mac Setup](../mac-setup/README.md)** ## Install Homebrew https://brew.sh/ @@ -21,11 +23,3 @@ cd build cmake .. -DENABLE_MATHTEX=OFF make ```` - -## APP Building -Currently not ready, Xournal++ can be executed from Build directory with -````bash -./src/xournalpp -```` - -Work in progress