Difference between revisions of "CompilingMacOsX"
Jump to navigation
Jump to search
(add table of contents) |
(libxslt/libxml2 SDK fix) |
||
Line 104: | Line 104: | ||
Some keg-only libraries need to be added to <code>$PKG_CONFIG_PATH</code> | Some keg-only libraries need to be added to <code>$PKG_CONFIG_PATH</code> | ||
This was tested on an M1 MacBook Air with macOS 11.6 and Inkscape 1.2-dev | Some libraries can cause trouble if they are picked up from the SDK instead of Homebrew (observed with <code>libxslt</code> and <code>libxml2</code>). Adding them to <code>$PKG_CONFIG_PATH</code> should fix this. | ||
This was tested on an M1 MacBook Air with macOS 11.6 and Inkscape 1.2-dev. | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 110: | Line 112: | ||
LIBPREFIX="/opt/homebrew" | LIBPREFIX="/opt/homebrew" | ||
export PATH="$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin" | export PATH="$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin" | ||
# keg-only libraries | # keg-only libraries | ||
export PKG_CONFIG_PATH="$LIBPREFIX/opt/icu4c/lib/pkgconfig" | export PKG_CONFIG_PATH="$LIBPREFIX/opt/icu4c/lib/pkgconfig" | ||
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$LIBPREFIX/opt/libsoup@2/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 | # where to install | ||
Line 126: | Line 129: | ||
cmake \ | cmake \ | ||
-G Ninja \ | -G Ninja \ | ||
-DCMAKE_SHARED_LINKER_FLAGS="-L$LIBPREFIX/lib" \ | -DCMAKE_SHARED_LINKER_FLAGS="-L$LIBPREFIX/lib" \ | ||
-DCMAKE_EXE_LINKER_FLAGS="-L$LIBPREFIX/lib" \ | -DCMAKE_EXE_LINKER_FLAGS="-L$LIBPREFIX/lib" \ |
Revision as of 09:45, 6 January 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 \
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.
This was tested on an M1 MacBook Air with macOS 11.6 and Inkscape 1.2-dev.
# 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