Difference between revisions of "CompilingMacOsX"
m (→Packaging) |
|||
(One intermediate revision by the same user not shown) | |||
Line 149: | Line 149: | ||
=Packaging= | =Packaging= | ||
If <code> | If <code>$PREFIX/bin/inkscape</code> works when executed and you want to turn it into an app or a DMG, have a look at the files inside the <code>inkscape/packaging/macos</code> directory. More info can be found on upstream mibap: | ||
* https://github.com/dehesselle/mibap | * https://github.com/dehesselle/mibap | ||
Follow the steps to install the toolset, package the app, and create a DMG. | Follow the steps to install the toolset, package the app, and create a DMG. In case you use upstream mibap, you will get the app under <code>/Users/Shared/work/mibap-*/</code> and you will get a DMG file in the same place you ran <code>./build_inkscape.sh</code>. | ||
=See also= | =See also= |
Revision as of 02:51, 6 December 2022
Using MacPorts
- Download and install MacPorts
- Edit the MacPorts variants config (optional).
Add this line to/opt/local/etc/macports/variants.conf
-x11 +quartz
- In Terminal (Applications>Utilities>Terminal) type
sudo port install \ adwaita-icon-theme \ boehmgc \ boost \ cairo \ ccache \ cmake \ double-conversion \ gdl3 \ gettext \ gsl \ gtkmm3 \ gtk-osx-application-gtk3 \ lcms2 \ libsoup \ libxslt \ ninja \ poppler \ potrace \ py-lxml \ py-numpy \ -x11 +quartz
- In Terminal, get Inkscape
git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git
- And build inkscape
# use a clean MacPorts environment (optional) LIBPREFIX="/opt/local" export PATH="$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin" # where to install PREFIX="$PWD/install-prefix" # where to build mkdir build cd build cmake \ -G Ninja \ -DCMAKE_PREFIX_PATH="$LIBPREFIX" \ -DCMAKE_INSTALL_PREFIX="$PREFIX" \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DWITH_OPENMP=OFF \ ../inkscape ninja ninja install
Note: Using ccache and ninja is not required, but very common because it speeds up compilation.
- Run Inkscape
$PREFIX/bin/inkscape
Using Homebrew
If you are using Homebrew instead, you can still use the above guidelines with small modifications.
List of packages to install with brew (for Inkscape 1.1):
brew install \
adwaita-icon-theme \
bdw-gc \
boost \
cairomm \
ccache \
cmake \
double-conversion \
gettext \
gsl \
gspell \
gtk-mac-integration \
gtkmm3 \
imagemagick \
intltool \
lcms2 \
libomp \
libsoup@2 \
libxslt \
ninja \
poppler \
potrace
You may substitute imagemagick
with graphicsmagick
.
gtk-mac-integration
is not needed with latest 1.2-dev
.
Some keg-only libraries need to be added to $PKG_CONFIG_PATH
Some libraries can cause trouble if they are picked up from the SDK instead of Homebrew (observed with libxslt
and libxml2
). Adding them to $PKG_CONFIG_PATH
should fix this.
Check out the source if you haven't already:
git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git
Then cd inkscape
and follow the steps below.
This was tested on an M1 MacBook Air with macOS 11.6 and Inkscape 1.2-dev, and an M2 MacBook Air with macOS 13.0.1 and Inkscape 1.2.1, 1.2.x from git.
# use a clean Homebrew environment (optional)
LIBPREFIX="/opt/homebrew"
export PATH="$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin"
# keg-only libraries
export PKG_CONFIG_PATH="$LIBPREFIX/opt/icu4c/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$LIBPREFIX/opt/libsoup@2/lib/pkgconfig"
# prevent picking up libxslt and libxml2 from the (wrong) SDK
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$LIBPREFIX/opt/libxslt/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$LIBPREFIX/opt/libxml2/lib/pkgconfig"
# where to install
PREFIX="$PWD/install-prefix"
mkdir -p build
cd build
cmake \
-G Ninja \
-DCMAKE_SHARED_LINKER_FLAGS="-L$LIBPREFIX/lib" \
-DCMAKE_EXE_LINKER_FLAGS="-L$LIBPREFIX/lib" \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DWITH_DBUS=OFF \
..
ninja
ninja install
Packaging
If $PREFIX/bin/inkscape
works when executed and you want to turn it into an app or a DMG, have a look at the files inside the inkscape/packaging/macos
directory. More info can be found on upstream mibap:
Follow the steps to install the toolset, package the app, and create a DMG. In case you use upstream mibap, you will get the app under /Users/Shared/work/mibap-*/
and you will get a DMG file in the same place you ran ./build_inkscape.sh
.
See also
- Tracking Dependencies
- Extension requirements
- Compiling Inkscape
- Notes on Packaging for OS X
- https://github.com/valerioa/Inkscape-MacOS-Curated-Build
- ipatch's collection of notes about building Inkscape using Homebrew