Difference between revisions of "CompilingMacOsX"

From Inkscape Wiki
Jump to navigation Jump to search
m
 
 
(233 intermediate revisions by 34 users not shown)
Line 1: Line 1:
== Compiling Inkscape under Mac OS X ==
+
= Using MacPorts =
  
You can run Inkscape by compiling by using Fink.  http://fink.sourceforge.net
+
<ol>
 +
<li>Download and install [http://www.macports.org/ MacPorts]
 +
<li>Edit the MacPorts variants config (optional).
 +
<br>Add this line to <code>/opt/local/etc/macports/variants.conf</code>
 +
<pre>-x11 +quartz</pre>
 +
<li>In Terminal (Applications>Utilities>Terminal) type
 +
<syntaxhighlight lang="bash">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
 +
</syntaxhighlight>
 +
<li>In Terminal, get Inkscape
 +
<syntaxhighlight lang="bash">git clone --recurse-submodules https://gitlab.com/inkscape/inkscape.git</syntaxhighlight>
 +
<li>And build inkscape
 +
<syntaxhighlight lang="bash">
 +
# use a clean MacPorts environment (optional)
 +
LIBPREFIX="/opt/local"
 +
export PATH="$LIBPREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin"
  
It's as simple as: #fink -y install inkscape
+
# where to install
 +
PREFIX="$PWD/install-prefix"
  
Fink will get all the dependencies and install them (assuming "fink list inkscape" shows that inkscape's latest version is installed.)
+
# 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 \
 +
    ..
  
If you build inkscape yourself, use a full 10.3 install of unstable fink.
+
ninja
 +
ninja install
 +
</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
 +
<syntaxhighlight lang="bash">
 +
$PREFIX/bin/inkscape
 +
</syntaxhighlight>
 +
</ol>
  
You may need set the following variables to compile cvs
+
= Using Homebrew =
(taken right out of fink's .info file). This is in bash syntax.
 
(I havent experimented with this list to see whats the minimum required.. but if I dont include any of the following than it breaks.)
 
<pre>
 
export ACLOCAL_FLAGS="-I /sw/share/aclocal"
 
export CFLAGS=-I/sw/include
 
export LDFLAGS=-L/sw/lib
 
export CXXFLAGS=$CFLAGS
 
export CPPFLAGS=$CXXFLAGS
 
export LIBRARY_PATH=/usr/X11R6/lib:/sw/lib
 
export CPATH=/sw/include
 
export PATH="/usr/X11R6/bin:"$PATH
 
export LIBS="-L/sw/lib -lintl "$LIBS
 
</pre>
 
  
---
+
If you are using [https://brew.sh/ Homebrew] instead, you can still use the above guidelines with small modifications.
  
Update: There is a problem with rendering cursors on mac due to a gcc bug. At this point fink is maintaining an inkscape package and they are going to use a patch to fix it for 0.38.1 so I recommend fink package. If you are interested in patching yourself, visit tracker item 932944 at https://sourceforge.net/tracker/index.php?func=detail&aid=932944&group_id=93438&atid=604306 .
+
List of '''packages''' to install with brew
  
-- Spundun
+
<syntaxhighlight lang="bash">
 +
brew install \
 +
    adwaita-icon-theme \
 +
    bdw-gc \
 +
    boost \
 +
    cairomm \
 +
    ccache \
 +
    cmake \
 +
    double-conversion \
 +
    gdl \
 +
    gettext \
 +
    graphicsmagick \
 +
    gsl \
 +
    gtk-mac-integration \
 +
    gtkmm3 \
 +
    gtkspell3 \
 +
    imagemagick \
 +
    intltool \
 +
    lcms2 \
 +
    libsoup \
 +
    libsvg-cairo \
 +
    libxslt \
 +
    ninja \
 +
    poppler \
 +
    potrace
 +
</syntaxhighlight>
  
 +
Since '''Homebrew''' only offers <code>gettext</code> as a keg (not linked to <code>/usr/local</code>) an extra option needs to be passed on to <code>cmake</code>.
  
If you need to run "./autogen.sh":
+
Modify the script in step 5 by changing <code>LIBPREFIX="/usr/local"</code> and adding the following line to the cmake arguments:
  
fink install automake1.8 autoconf2.5
+
<syntaxhighlight lang="bash">
 +
    -DIntl_INCLUDE_DIR="/usr/local/opt/gettext/include" \
 +
</syntaxhighlight>
  
Otherwise:
+
=See also=
 +
* [[Tracking Dependencies]]
 +
* [[Extension requirements]]
 +
*[[Compiling Inkscape]]
 +
*[[Notes on Packaging for OS X]]
 +
* 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
  
fink install �
+
[[Category:Developer Documentation]]
        intltool �
 
        glib2 glib2-dev glib2-shlibs �
 
        gtk+2 gtk+2-shlibs gtk+2-dev �
 
        libpng3 libpng3-shlibs �
 
        libsigc++2 libsigc++2-shlibs �
 
        gtkmm2.4 gtkmm2.4-dev gtkmm2.4-shlibs �
 
        libtool14 libtool14-shlibs �
 
        libxml2 libxml2-shlibs �
 
        libsigc++2 libsigc++2-shlibs �
 
        popt popt-shlibs
 
export CPPFLAGS=-I/sw/include
 
export LDFLAGS=-L/sw/lib
 
# Run ./autogen.sh here if things break below...
 
./configure --prefix=/sw
 
make
 
make install
 
 
 
 
 
-- Kees Cook
 
 
 
Since gc 6.4 is needed, once fink is updated, you can install: "fink install gc gc-shlibs", but until then, you'll need to compile it yourself.  :(
 
 
 
 
 
Some packaging links:
 
http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html
 
http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/
 
 
 
---
 
 
 
See the new Info.plist.in file in CVS, as well as packaging/osx-app.sh for building a .app directory.  I have no idea what I'm doing, and I'm doing it blind, so any help is appreciated.  I'm guessing at appropriate paths in src/path-prefix.h, which get activated with configure's --enable-osxapp now.
 
 
 
Also, we probably need to do all this stuff too:
 
http://gimp-app.sourceforge.net/gimp.app.howto.txt
 
 
 
 
 
 
 
 
 
 
 
------
 
 
 
I have succesfully built Inkscape 0.40-1 via Fink under Mac OS X 10.3
 
 
 
After I have moved to "~/Desktop/Inkscape.app/Contents" following the way explained for the Gimp.app
 
 
 
The application lauches itself with a double-click and it is available there http://niwaconcept.free.fr//x11/Inkscape.zip
 
 
 
But if it can be stored there that would be better. The file is 60 Mb do dwnload, and then 280 Mb for the software itself.
 
 
 
M-Rick
 
 
 
upload:inkscape-0.40-2.jpg
 
upload:inkscape-0.40-1.jpg
 
 
 
----
 
 
 
I've downloaded the zip and copied the resulting .app to /Applications.
 
 
 
Running it gives the following errors:
 
 
 
<pre>/Applications/Inkscape.app/Contents/MacOS robmyers$ ./Inkscape
 
dyld: ./Inkscape can't open library: /Volumes/Utilisateurs/Users/aymeric/Desktop/Gimp/ScriptExec/build/ScriptExec.build/ScriptExec.build/Objects-normal/ppc/libstdc++_ZeroLink.dylib 
 
(No such file or directory, errno = 2)
 
Trace/BPT trap</pre>
 
 
 
- robmyers .
 
 
 
 
 
 
 
----
 
 
 
Strange ....
 
And it puts all the path of my computer ...
 
 
 
And scriptExec is the script used by gimp.app, once compiled it is said to change the name.
 
 
 
When I ran inkscape from my computer, I did from many locations and no problems, I will see I have errors feedbacks.
 
 
 
I am not specialized in programming so if someone wants to help no problem.
 
 
 
M-Rick
 
 
 
----
 
 
 
Ok it's done.
 
 
 
 
 
Anyway, there are a few bugs, also present in Fink :
 
 
 
Some menus appear behind the windows.
 
 
 
Impossible to export as bitmap, there is an error message "The chosen area to be exported is invalid" and I have it even if I change the path.
 
 
 
I made a DMG, you can download and test it there http://niwaconcept.free.fr//x11/Inkscape.zip
 
 
 
M-Rick
 
 
 
----
 
 
 
That works perfectly. And the .dmg window looks very good, it's a perfect Mac installer.
 
 
 
Thanks!
 
 
 
- robmyers .
 
 
 
----
 
 
 
Erk! But when I try it on a machine without Fink installed, I get the following error:
 
<pre>
 
dyld: /Applications/Inkscape.app/Contents/Resources/bin/inkscape can't open library: /sw/lib/libgtkmm-2.4.1.dylib  (No such file or directory, errno = 2)
 
</pre>
 
 
 
This despite the fact that libgtkmm is present in the Inkscape.app/Contents/Resources/lib/ directory.
 
 
 
- robmyers .
 
 
 
 
 
----
 
 
 
Yes, I just made an update for it. I tricked it, because it is looking for a sw folder, so i made a link to the software, just double-click it and and it will create it automatically for you, until I find the way to not have to do this.
 
 
 
M-Rick
 
 
 
----
 
 
 
Does Gimp.app do this? What happens if someone uses Fink and /sw already exists?
 
 
 
Downloading, running and installing, this now works after a couple of runs. Don't know if I was being impatient. :-)
 
 
 
- Inkscape MacOSX Testing Team (i.e. robmyers :-) ).
 
 
 
 
 
----
 
 
 
No Gimp.app doesn't do that. Inkscape does that because I haven't found yet the way it tries to find the share folder.
 
If you already have Fink installed, well, it will not erase it just add the link.
 
 
 
Inkscape.app has a problem with the GTK pixmaps location, so I have made a script inside the software that will create a link automatically. So for the first launch, it is better to launch under an admin session.
 
But if you have Fink already installed, it won't work unless you are root, so if you don't want to login as root, you can change the settings of the folders /sw and /sw/share to Group/Admin and Acces/Read and Write.
 
 
 
If someone finds the way to correct this, we won't have to do this trick anymore.
 
 
 
M-Rick
 
 
 
----
 
 
 
I think the program will need to add the pixmap location dynamically to $GTK_PATH on startup using setenv before starting Inkscape proper?
 
 
 
- robmyers .
 
 
 
----
 
 
 
I've installed inkscape.app. It works quite well on Japanese environment. "KANJI" can be used!
 
 
 
Ken
 
 
 
upload:japanese.jpg
 
 
 
-----
 
 
 
I've installed it and it works. Very nice. The background image in the DMG is a nice touch, though you could maybe add the standard 'drag this icon to your applications folder' text to that. I still find Inkscape rather slow -- with the Windows version I assumed it was just a porting issue. Is the same true here? I have an SVG document with about 1000 objects. BTW, curious bug -- tooltips for floating palettes appear ''below'' them!
 
 
 
-----
 
 
 
Damn, I'm at work and don't have my mac with me! Can't wait to get home and install this!!! I'll see what I can do about some of these problems, too.
 
 
 
-----
 
 
 
I gave the DMG a try on my PowerBook running 10.3, with Fink and Gimp.app installed.  It seems to work ok, except most of the tool icons don't show up.  When I hover over them I get a blue Aqua-lozenge background and the tooltip, but the icon never shows up.  The only ones that do are New File, Open File, Save, Print, Undo, Redo, Copy, Cut, and Paste.  FYI.
 
 
 
-Ken-ichi
 
 
 
 
 
-----
 
 
 
A note about the icons: the app icon is fantastic, as is the inkscape SVG document icon. The other document icons are good too, but the file extension badge shouldn't stick out from the page image (see [http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGIcons/chapter_5_section_2.html#//apple_ref/doc/uid/20000967/TPXREF117]).
 
 
 
------
 
 
 
Has anyone besides me noticed that inkscape loads VERY slowly (>1.5 minutes)?  Is this normal?
 
 
 
Marcus Collins
 
 
 
------
 
 
 
On my PowerBookG4 12in 867MHz, loading time of Inkscape(fink): 20 sec, Inkscape.app: 135 sec. VERY slowly.(v_v)
 
 
 
Ken
 
 
 
----
 
 
 
Well yes it is very slow. Even via Fink, the delay in launch time is due to library checking .... I ond't know how to solve it, so if someone is ready to check the sources it's OK. I don't know the exact command it uses to check them. Once this corrected, it will launch fast as in Fink.
 
 
 
For the pixmaps, it's because of the problem just above, since I don't know how it checks the lib paths, the pixmaps checking is wrong, so you must make a link from Inkscape.app/Contents/Resources/lib/libgtkmm-2.4.1.dylib to /sw/lib
 
 
 
M-Rick
 
 
 
----
 
 
 
I've added Inkscape to FreeSMUG (Free Software Mac User Group) directory:
 
http://www.freesmug.org/review/inkscape
 
 
 
Happy MhACking.
 
 
 
Gand.
 
 
 
----
 
 
 
About freesmug.org you talk about menus that appears behind windows. It appears only if you use quartz-wm. For people who have for example kde, it works fine, but it's slower to launch/use.
 
 
 
Darwinports has the 0.41 package now. It still has awfull dependencies (why compiling ALL gnome just to get inkscape?). But it works fine. I didn't try your .dmg file thou.
 
 
 
iznogoud_
 
 
 
----
 
 
 
Dose Inkscape.app work well on Tiger?
 
 
 
Ken
 
----
 
I have tried, and tried again, but I am unable to compile Fink on Tiger. I know it's early days (only been out for a week) but I find it interesting that compilation fails - what has changed? Does it involve the new compiler? (GCC 4.x) Error is:
 
 
 
  object-edit.cpp: In function `void sp_spiral_outer_set(SPItem*, const
 
  NR::Point&, const NR::Point&, unsigned int)':
 
  object-edit.cpp:842: error: `__isfinite' undeclared (first use this function)
 
  object-edit.cpp:842: error: (Each undeclared identifier is reported only once
 
  for each function it appears in.)
 
  make[2]: *** [object-edit.o] Error 1
 
  make[1]: *** [all-recursive] Error 1
 
 
 
I am busy downloading Inkscape.app with the hope that it will work.
 
 
 
Dawid Loubser
 
----
 
Help! Please help me get this to work. I need Inkscape!
 

Latest revision as of 17:26, 18 April 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 https://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
    

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

brew install \
    adwaita-icon-theme \
    bdw-gc \
    boost \
    cairomm \
    ccache \
    cmake \
    double-conversion \
    gdl \
    gettext \
    graphicsmagick \
    gsl \
    gtk-mac-integration \
    gtkmm3 \
    gtkspell3 \
    imagemagick \
    intltool \
    lcms2 \
    libsoup \
    libsvg-cairo \
    libxslt \
    ninja \
    poppler \
    potrace

Since Homebrew only offers gettext as a keg (not linked to /usr/local) an extra option needs to be passed on to cmake.

Modify the script in step 5 by changing LIBPREFIX="/usr/local" and adding the following line to the cmake arguments:

    -DIntl_INCLUDE_DIR="/usr/local/opt/gettext/include" \

See also