Difference between revisions of "CompilingMacOsX"
m (→Using Homebrew) |
|||
Line 109: | Line 109: | ||
<syntaxhighlight lang="bash">git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git</syntaxhighlight> | <syntaxhighlight lang="bash">git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git</syntaxhighlight> | ||
Then <code>cd inkscape</code> 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. | 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. |
Revision as of 16:02, 5 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
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