Clone in a terminal:
Commit be38834
Johan Mattsson - 2013-01-25T21:37:07+00:00
be38834214268bf810d9ce79961c49be280d6e10johan.mattsson.m@gmail.com

build on mac

Changed files (5)

Diff

diff --git a/README b/READMEindex 518f714..7edce8e 100644--- a/README+++ b/README@@ -1,5 +1,5 @@ -----------------------Birdfont – font editor+Birdfont – Font Editor ----------------------  Birdfont is a font editor that creates outline vector graphics and exports@@ -10,7 +10,7 @@ License: GNU GPL v3 Webpage: http://birdfont.org  ---------------------Building from source+Building from Source --------------------  Install vala and all required libraries, they are most likely in packages @@ -30,7 +30,7 @@ doit sudo ./install  -------------------------Bulding windows binaries+Bulding Windows Binaries ------------------------  Windows binaries are cross compiled with mingw on a Ubuntu system. Install@@ -44,8 +44,15 @@ Compile and build the installer with: cd win32 ./build_win32.py +---------------------+Building Mac binaries+---------------------++Compile all dependencies using MacPorts and run:+./mac/build_mac.py+ ---------------------Precompiled packages+Precompiled Packages --------------------  A Windows binary is avalilable at http://birdfont.orgdiff --git a/mac/Info.plist b/mac/Info.plistnew file mode 100644index 0000000..43ff9ef--- /dev/null+++ b/mac/Info.plist@@ -0,0 +1,26 @@+<?xml version="1.0" encoding="UTF-8"?>+!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">+<plist version="1.0">+<dict>+  <key>CFBundleGetInfoString</key>+  <string>Birdfont</string>+  <key>CFBundleExecutable</key>+  <string>birdfont.sh</string>+  <key>CFBundleIdentifier</key>+  <string>org.birdfont</string>+  <key>CFBundleName</key>+  <string>birdfont</string>+  <key>CFBundleIconFile</key>+  <string>birdfont.icns</string>+  <key>CFBundleShortVersionString</key>+  <string>0.01</string>+  <key>CFBundleInfoDictionaryVersion</key>+  <string>6.0</string>+  <key>CFBundlePackageType</key>+  <string>APPL</string>+  <key>IFMajorVersion</key>+  <integer>0</integer>+  <key>IFMinorVersion</key>+  <integer>9</integer>+</dict>+</plist>\ No newline at end of filediff --git a/mac/birdfont.icns b/mac/birdfont.icnsnew file mode 100644index 0000000..295644dBinary files /dev/null and b/mac/birdfont.icns differdiff --git a/mac/birdfont.sh b/mac/birdfont.shnew file mode 100755index 0000000..7a0e5ed--- /dev/null+++ b/mac/birdfont.sh@@ -0,0 +1,3 @@+#!/bin/bash+cd "${0%/*}"+./birdfont\ No newline at end of filediff --git a/mac/build_mac.py b/mac/build_mac.pynew file mode 100755index 0000000..3974eac--- /dev/null+++ b/mac/build_mac.py@@ -0,0 +1,140 @@+#!/usr/bin/python++import os+import shutil+import subprocess+import sys++LOCAL_LIBS = [+	"libxml2.2",+	"libgio-2.0.0",+	"libgobject-2.0.0",+	"libglib-2.0.0",+	"libintl.8",+	"libcairo.2",+	"libgdk_pixbuf-2.0.0",+	"libwebkitgtk-1.0.0",+	"libgtk-x11-2.0.0",+	"libsoup-2.4.1",+	"libjavascriptcoregtk-1.0.0",+	"libgdk-x11-2.0.0",+	"libatk-1.0.0",+	"libpangocairo-1.0.0",+	"libXrender.1",+	"libXinerama.1",+	"libXi.6",+	"libXrandr.2",+	"libXcursor.1",+	"libXcomposite.1",+	"libXdamage.1",+	"libpangoft2-1.0.0",+	"libXfixes.3",+	"libX11.6",+	"libXext.6",+	"libpango-1.0.0",+	"libfreetype.6",+	"libfontconfig.1"+]++def run(cmd):+	process = subprocess.Popen (cmd, shell=True)+	process.communicate()[0]+	if not process.returncode == 0:+		print("Error: " + cmd)+		exit(1)++def build():+	# Compile birdfont on MacOSX 10.5 (Leopard)+	+	#libbirdfont+	run("mkdir -p build/mac/libbirdfont")+	run("mkdir -p build/mac/bin")++	run("valac -C --library libbirdfont -H birdfont.h libbirdfont/* --pkg libxml-2.0 --pkg gio-2.0  --pkg cairo --pkg libsoup-2.4 --pkg gdk-pixbuf-2.0 --pkg webkit-1.0")++	run("mv libbirdfont/*.c build/mac/libbirdfont/ ")+	run("mv ./*.h build/mac/libbirdfont/")++	run("""gcc -c build/mac/libbirdfont/*.c -shared -fno-common -fPIC -D 'GETTEXT_PACKAGE="birdfont"' $(pkg-config --cflags --libs libxml-2.0) $(pkg-config --cflags --libs gio-2.0) $(pkg-config --cflags --libs cairo) $(pkg-config --cflags --libs glib-2.0) $(pkg-config --cflags --libs gdk-pixbuf-2.0) $(pkg-config --cflags --libs webkit-1.0) -I ./build/mac/birdfont""")++	run("mv ./*.o build/mac/libbirdfont/ ")++	run("gcc -dynamiclib -Wl,-headerpad_max_install_names,-undefined,dynamic_lookup,-compatibility_version,1.0,-current_version,1.0,-install_name,/usr/local/lib/libbirdfont.dylib -shared build/mac/libbirdfont/*.o $(pkg-config --cflags --libs libxml-2.0) $(pkg-config --cflags --libs gio-2.0) $(pkg-config --cflags --libs cairo) $(pkg-config --cflags --libs glib-2.0) $(pkg-config --cflags --libs gdk-pixbuf-2.0) $(pkg-config --cflags --libs webkit-1.0) -shared -o libbirdfont.dylib")++	run("mv libbirdfont.dylib build/mac/bin/")++	# birdfont+	run("mkdir -p build/mac/birdfont")+	+	run("valac -C birdfont/* --vapidir=./ --pkg libxml-2.0 --pkg gio-2.0  --pkg cairo --pkg libsoup-2.4 --pkg gdk-pixbuf-2.0 --pkg webkit-1.0 --pkg gtk+-2.0 --pkg libbirdfont")++	run("mv birdfont/*.c build/mac/birdfont/")++	run("""gcc -c ./build/mac/libbirdfont/birdfont.h build/mac/birdfont/*.c -D 'GETTEXT_PACKAGE="birdfont"' $(pkg-config --cflags --libs libxml-2.0) $(pkg-config --cflags --libs gio-2.0) $(pkg-config --cflags --libs cairo) $(pkg-config --cflags --libs glib-2.0) $(pkg-config --cflags --libs gdk-pixbuf-2.0) $(pkg-config --cflags --libs webkit-1.0) -I ./build/mac/libbirdfont/""")++	run("mv ./*.o build/mac/birdfont/")++	run("gcc build/mac/birdfont/*.o ./build/mac/bin/libbirdfont.dylib $(pkg-config --cflags --libs libxml-2.0) $(pkg-config --cflags --libs gio-2.0) $(pkg-config --cflags --libs cairo) $(pkg-config --cflags --libs glib-2.0) $(pkg-config --cflags --libs gdk-pixbuf-2.0) $(pkg-config --cflags --libs webkit-1.0) $(pkg-config --cflags --libs gtk+-2.0) -o ./build/mac/bin/birdfont")++	# birdfont-export+	run("mkdir -p build/mac/birdfont-export")+	+	run("valac -C birdfont-export/* --vapidir=./ --pkg libxml-2.0 --pkg gio-2.0  --pkg cairo --pkg libsoup-2.4 --pkg gdk-pixbuf-2.0 --pkg webkit-1.0 --pkg gtk+-2.0 --pkg libbirdfont")++	run("mv birdfont-export/*.c build/mac/birdfont-export/")++	run("""gcc -c ./build/mac/libbirdfont/birdfont.h build/mac/birdfont-export/*.c -D 'GETTEXT_PACKAGE="birdfont"' $(pkg-config --cflags --libs libxml-2.0) $(pkg-config --cflags --libs gio-2.0) $(pkg-config --cflags --libs cairo) $(pkg-config --cflags --libs glib-2.0) $(pkg-config --cflags --libs gdk-pixbuf-2.0) $(pkg-config --cflags --libs webkit-1.0) -I ./build/mac/libbirdfont/""")++	run("mv ./*.o build/mac/birdfont-export/")++	run("gcc build/mac/birdfont-export/*.o ./build/mac/bin/libbirdfont.dylib $(pkg-config --cflags --libs libxml-2.0) $(pkg-config --cflags --libs gio-2.0) $(pkg-config --cflags --libs cairo) $(pkg-config --cflags --libs glib-2.0) $(pkg-config --cflags --libs gdk-pixbuf-2.0) $(pkg-config --cflags --libs webkit-1.0) $(pkg-config --cflags --libs gtk+-2.0) -o ./build/mac/bin/birdfont-export")++	# copy files +	run("mkdir -p build/mac/birdfont.app")+	run("mkdir -p build/mac/birdfont.app/Contents")+	run("mkdir -p build/mac/birdfont.app/Contents/MacOs")+	run("mkdir -p build/mac/birdfont.app/Contents/Resources")++	run("cp build/mac/bin/* build/mac/birdfont.app/Contents/MacOs")+	run("cp mac/birdfont.sh build/mac/birdfont.app/Contents/MacOs")+	run("cp mac/Info.plist build/mac/birdfont.app/")+	run("cp -r layout build/mac/birdfont.app/Contents/MacOs")+	run("cp -r icons build/mac/birdfont.app/Contents/MacOs")+	run("cp mac/birdfont.icns build/mac/birdfont.app/Contents/Resources")+	+	for lib in LOCAL_LIBS:+		run("cp /opt/local/lib/" + lib + ".dylib mac/Info.plist build/mac/birdfont.app/Contents/MacOs")+			+	run("cp /usr/lib/libgcc_s.1.dylib ./build/mac/birdfont.app/Contents/MacOs")++	# library path for libbirdfont	+	for lib in LOCAL_LIBS:+		run("install_name_tool -change /opt/local/lib/" + lib + ".dylib @executable_path/" + lib +			+ ".dylib build/mac/birdfont.app/Contents/MacOs/libbirdfont.dylib")+		+	run("install_name_tool -change /usr/lib/libgcc_s.1.dylib @executable_path/libgcc_s.1.dylib "+		+ "build/mac/birdfont.app/Contents/MacOs/libbirdfont.dylib")++	run("install_name_tool -change /usr/local/lib/libbirdfont.dylib @executable_path/libbirdfont.dylib "+		+ "build/mac/birdfont.app/Contents/MacOs/libbirdfont.dylib")	++	# library path for birdfont	+	for lib in LOCAL_LIBS:+		run("install_name_tool -change /opt/local/lib/" + lib + ".dylib @executable_path/" + lib +			+ ".dylib build/mac/birdfont.app/Contents/MacOs/birdfont")+		+	run("install_name_tool -change /usr/lib/libgcc_s.1.dylib @executable_path/libgcc_s.1.dylib "+		+ "build/mac/birdfont.app/Contents/MacOs/birdfont")++	run("install_name_tool -change /usr/local/lib/libbirdfont.dylib @executable_path/libbirdfont.dylib "+		+ "build/mac/birdfont.app/Contents/MacOs/birdfont")	+	+#	run("rm -rf build/mac/birdfont.dmg")	+#	run("hdiutil create -megabytes 50 -fs HFS+ -volname birdfont build/mac/birdfont")+#	run("open build/mac/birdfont.dmg")	+#	run("cp -r build/mac/birdfont.app /Volumes/birdfont/")+#	run("hdiutil detach /Volumes/birdfont")	++	print ("Done.");++build()

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112