Difference between revisions of "CompilingMacOsX"

From Inkscape Wiki
Jump to navigation Jump to search
(potrace, remove outdated troubleshooting)
(remove outdated stuff)
Line 2: Line 2:


<ol>
<ol>
<li>Install [http://developer.apple.com/tools/xcode/ Xcode tools] from the App Store
<li>Download and install [http://www.macports.org/ MacPorts]
<li>Download and install [http://www.macports.org/ MacPorts]
<li>Edit the MacPorts variants config (optional).
<li>Edit the MacPorts variants config (optional).
Line 8: Line 7:
<pre>-x11 +quartz</pre>
<pre>-x11 +quartz</pre>
<li>In Terminal (Applications>Utilities>Terminal) type
<li>In Terminal (Applications>Utilities>Terminal) type
<syntaxhighlight lang="bash">sudo port selfupdate
<syntaxhighlight lang="bash">sudo port install \
sudo port install \
    adwaita-icon-theme \
     cmake cairo boehmgc gettext libxslt lcms2 boost \
     boehmgc \
     poppler gsl adwaita-icon-theme gdl3 gtkmm3 libsoup \
    boost \
     cairo \
    ccache \
    cmake \
     double-conversion \
     double-conversion \
    gdl3 \
    gettext \
    gsl \
    gtkmm3 \
     gtk-osx-application-gtk3 \
     gtk-osx-application-gtk3 \
    lcms2 \
    libsoup \
    libxslt \
    ninja \
    poppler \
     potrace \
     potrace \
    py-lxml \
    py-numpy \
     -x11 +quartz
     -x11 +quartz
</syntaxhighlight>
</syntaxhighlight>
Line 25: Line 38:
export PATH="$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export PATH="$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin"


# where to build and install
# where to install
PREFIX="$PWD/install-prefix"
PREFIX="$PWD/install-prefix"
# where to build
mkdir build
mkdir build
cd build
cd build


cmake \
cmake \
    -G Ninja \
     -DCMAKE_PREFIX_PATH="$LIBPREFIX" \
     -DCMAKE_PREFIX_PATH="$LIBPREFIX" \
     -DCMAKE_INSTALL_PREFIX="$PREFIX" \
     -DCMAKE_INSTALL_PREFIX="$PREFIX" \
    -DCMAKE_C_COMPILER_LAUNCHER=ccache \
    -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
     -DWITH_OPENMP=OFF \
     -DWITH_OPENMP=OFF \
     ..
     ..


make install
ninja
ninja install
</syntaxhighlight>
</syntaxhighlight>
''Note: Using [https://en.wikipedia.org/wiki/Ccache ccache] and [https://ninja-build.org/ ninja] is not required, but very common because it speeds up compilation.''
<li>Run Inkscape
<li>Run Inkscape
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Line 43: Line 63:
</syntaxhighlight>
</syntaxhighlight>
</ol>
</ol>
== Speed up Installation ==
You can use <code>[https://en.wikipedia.org/wiki/Ccache ccache]</code> (<code>sudo port install ccache</code>) to speed up re-compilation.
Also, [https://ninja-build.org/ ninja] (<code>sudo port install ninja</code>) is a faster alternative to <code>make</code>.
Modify your call to <code>cmake</code> like this:
cmake \
        -DCMAKE_C_COMPILER_LAUNCHER=ccache \
        -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
        -G Ninja \
        # more cmake options here
ninja
ninja install
= Using Homebrew =
[https://github.com/ipatch/homebrew-us-05/blob/master/inkscape/inkscape-building-for-macOS.md See] for a collection of notes using homebrew infrastructure 🛣 to build Inkscape 1.x from master using CMake + Ninja
= Misc =
{{Needs_update}}
== Extension Python modules  ==
In case you are using a Python version installed through MacPorts do a search for both modules and install the ones suitable for the Python version activated within MacPorts.
<pre>port search lxml numpy</pre>
For further info refer to the [[GettingEffectsWorking#on_Mac_OS_X|Getting Effects Working]] section of this wiki.
== Creating an .app bundle ==
TODO
== Creating a disk image to distribute Inkscape ==
TODO
= Links =
== User Examples ==
* [github.com/ipatch] | A recent '''2019''' collection of notes about building Inkscape from master using CMake + Ninja | [https://github.com/ipatch/homebrew-us-05/blob/master/inkscape/inkscape-building-for-macOS.md Notes]
* Adam Strzeleki has outlined some improvements to this process on the Inkscape [http://www.nabble.com/Inkscape-native-Mac-OS-X-build---look-improvements-td14733036.html email list]. See his screenshot from January 10, 2008 [http://www.nabble.com/attachment/14733036/1/Inkscape%20OSX%20PL.gif here].
* JiHO has a video of his builds [http://jo.irisson.free.fr/?p=34 here] and [http://jo.irisson.free.fr/?p=62 here].
* Mac OS X native (aqua), PPC-only, Tiger-only build of 0.47, can be retrieved here: [http://verkehrsplanung.com/Inkscape_aqua_PPC_047.zip]. NOT FOR PRODUCTIVE USE - JUST TESTING! - (Nevertheless I'm doing quite a bit productive work on it… (-;)
== Apple Documentation ==
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.
== Packaging ==
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.


=See also=
=See also=
* [[Tracking Dependencies]]
* [[Extension requirements]]
*[[Compiling Inkscape]]
*[[Compiling Inkscape]]
*[[Notes on Packaging for OS X]]
*[[Notes on Packaging for OS X]]
* https://github.com/valerioa/Inkscape-MacOS-Curated-Build
* https://github.com/valerioa/Inkscape-MacOS-Curated-Build
* [https://github.com/ipatch/homebrew-us-05/blob/master/inkscape/inkscape-building-for-macOS.md ipatch's collection of notes] about building Inkscape using Homebrew


[[Category:Developer Documentation]]
[[Category:Developer Documentation]]

Revision as of 10:14, 2 January 2020

Using MacPorts

  1. Download and install MacPorts
  2. Edit the MacPorts variants config (optional).
    Add this line to /opt/local/etc/macports/variants.conf
    -x11 +quartz
  3. 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
    
  4. In Terminal, get Inkscape
    git clone --recurse-submodules git@gitlab.com:inkscape/inkscape.git
    
  5. 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 \
        ..
    
    ninja
    ninja install
    

    Note: Using ccache and ninja is not required, but very common because it speeds up compilation.

  6. Run Inkscape
    $PREFIX/bin/inkscape
    

See also