Commit 8bd3b9e
Merge branch 'master' of gitorious.org:supplement/birdfont
Changed files (9)
modifiedconfiguremodifiedinstallmodifiedlibbirdfont/PenTool.valamodifiedmac/birdfont.shmodifiedmac/build_mac.pyaddedmac/build_macport.pymodifiedmac/create_dmg.pyaddedmac/install_macport.pyaddedwrite_config.py
Diff
@@ -5,6 +5,7 @@ import sys import time; from optparse import OptionParser import version+import write_config import re VERSION = version.VERSION@@ -16,24 +17,6 @@ WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' -def write_config ():- print ("Writing Config.vala")-- vars = (('VERSION', VERSION),- ('BUILD_TIMESTAMP', time.asctime( time.localtime(time.time()))),- ('PREFIX', options.prefix),- )-- f = open('./libbirdfont/Config.vala', 'w+')- f.write("// Don't edit this file -- it is generated by the build script\n")- f.write("namespace BirdFont {\n")-- var_line = ' internal static const string %s = "%s";\n'- for name, value in vars:- f.write(var_line % (name, value))-- f.write("}")- def test_program_version (program, a, b, c): print ("Checking for %s version >= %s.%s.%s" % (program, a, b, c)) process = subprocess.Popen (program + ' --version', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)@@ -100,5 +83,5 @@ parser.add_option("-p", "--prefix", dest="prefix", help="install prefix", metava if not options.prefix: options.prefix = "/usr" -write_config () configure ()+write_config ()@@ -52,9 +52,11 @@ for file in os.listdir('./icons'): install ('linux/birdfont.desktop', '/share/applications') install ('linux/birdfont.png', '/share/icons/hicolor/48x48/apps')+ install ('build/bin/birdfont', '/bin') install ('build/bin/birdfont-export', '/bin')-install ('build/libbirdfont.so', '/lib')+install ('build/bin/libbirdfont.so', '/lib')+ install ('build/birdfont.1.gz', '/share/man/man1') install ('build/birdfont-export.1.gz', '/share/man/man1') @@ -148,6 +148,7 @@ public class PenTool : Tool { foreach (Path p in g.path_list) { p.close (); }+ g.close_path (); g.redraw_area (0, 0, g.allocation.width, g.allocation.height); } @@ -1,3 +1,3 @@ #!/bin/bash cd "${0%/*}"-./birdfont +/opt/local/bin/birdfont @@ -5,6 +5,7 @@ import shutil import subprocess import sys + LOCAL_LIBS = [ "libxml2.2", "libgio-2.0.0",@@ -34,7 +35,75 @@ LOCAL_LIBS = [ "libpango-1.0.0", "libfreetype.6", "libfontconfig.1",- "liblzma.5"+ "liblzma.5",+ "libGL.1", # GL+ "libICE.6",+ "libSM.6",+ "libX11-xcb.1",+ "libX11.6",+ "libXau.6",+ "libXcomposite.1",+ "libXcursor.1",+ "libXdamage.1",+ "libXdmcp.6",+ "libXext.6",+ "libXfixes.3",+ "libXi.6",+ "libXinerama.1",+ "libXrandr.2",+ "libXrender.1",+ "libXt.6",+ "libatk-1.0.0",+ "libbz2.1.0",+ "libcairo.2",+ "libdbus-1.3",+ "libdbus-glib-1.2",+ "libenchant.1",+ "libexpat.1",+ "libffi.6",+ "libfontconfig.1",+ "libfreetype.6",+ "libgailutil.18",+ "libgdk-x11-2.0.0",+ "libgdk_pixbuf-2.0.0",+ "libgeoclue.0",+ "libgio-2.0.0",+ "libglib-2.0.0",+ "libgmodule-2.0.0",+ "libgobject-2.0.0",+ "libgstapp-0.10.0",+ "libgstaudio-0.10.0",+ "libgstbase-0.10.0",+ "libgstfft-0.10.0",+ "libgstinterfaces-0.10.0",+ "libgstpbutils-0.10.0",+ "libgstreamer-0.10.0",+ "libgstvideo-0.10.0",+ "libgthread-2.0.0",+ "libgtk-x11-2.0.0",+ "libiconv.2",+ "libicudata.49",+ "libicui18n.49",+ "libicuuc.49",+ "libintl.8",+ "libjavascriptcoregtk-1.0.0",+ "libjpeg.8",+ "liblzma.5",+ "liborc-0.4.0",+ "libpango-1.0.0",+ "libpangocairo-1.0.0",+ "libpangoft2-1.0.0",+ "libpixman-1.0",+ "libpng15.15",+ "libsoup-2.4.1",+ "libsqlite3.0",+ "libwebkitgtk-1.0.0",+ "libxcb-render.0",+ "libxcb-shm.0",+ "libxcb.1",+ "libxml2.2",+ "libxslt.1",+ "libz.1" ] def run(cmd):@@ -43,7 +112,7 @@ def run(cmd): if not process.returncode == 0: print("Error: " + cmd) exit(1)-+ def build(): # Compile birdfont on MacOSX 10.5 (Leopard) @@ -83,9 +152,10 @@ def build(): 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") +def copy_libs (): # clean run("rm -rf build/mac/birdfont.app")-+ # copy files run("mkdir -p build/mac/birdfont.app") run("mkdir -p build/mac/birdfont.app/Contents")@@ -105,10 +175,16 @@ def build(): 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")- + for program in ['libbirdfont.dylib', 'birdfont', 'birdfont-export']:+ 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/" + program)+ + for program in LOCAL_LIBS:+ 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/" + program + ".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") @@ -129,6 +205,17 @@ def build(): run("install_name_tool -change /usr/local/lib/libbirdfont.dylib @executable_path/libbirdfont.dylib " + "build/mac/birdfont.app/Contents/MacOs/birdfont-export") - print ("Done.");+ # pango+ run("cp /opt/local/lib/pango/1.6.0/modules/pango-* ./build/mac/birdfont.app/Contents/MacOs")+ + # configuration+ run("cp -r /opt/local/etc build/mac/birdfont.app/Contents/MacOs/")++ run("pango-querymodules | sed -e 's:/opt/local/lib/pango/1.6.0/modules/::g'> etc/pango/pango.modules")+)++ print ("Done.")+ build()+copy_libs ()new file mode 100755@@ -0,0 +1,67 @@+#!/usr/bin/python++import os+import shutil+import subprocess+import sys++def run(cmd):+ process = subprocess.Popen (cmd, shell=True)+ process.communicate()[0]+ if not process.returncode == 0:+ print("Error: " + cmd)+ exit(1)++def build ():+ #libbirdfont+ run("rm -rf build")+ run("mkdir -p build/libbirdfont")+ run("mkdir -p build/bin")++ run("valac -C --basedir build/libbirdfont/ --enable-experimental-non-null --enable-experimental --define=MAC --library libbirdfont -H build/libbirdfont/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("cp libbirdfont/*.c build/libbirdfont/")++ run("""gcc -c build/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/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/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/bin/")++ # birdfont+ run("mkdir -p build/birdfont")+ + run("valac -C --enable-experimental-non-null --enable-experimental --define=MAC 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/birdfont/")++ run("""gcc -c ./build/libbirdfont/birdfont.h build/birdfont/*.c -D 'GETTEXT_PACKAGE="birdfont"' $(pkg-config --cflags libxml-2.0) $(pkg-config --cflags gio-2.0) $(pkg-config --cflags cairo) $(pkg-config --cflags glib-2.0) $(pkg-config --cflags gdk-pixbuf-2.0) $(pkg-config --cflags webkit-1.0) -I ./build/libbirdfont/""")+ run("mv ./*.o build/birdfont/")++ run("gcc build/birdfont/*.o ./build/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/bin/birdfont")++ # birdfont-export+ run("mkdir -p build/birdfont-export")+ + run("valac -C --enable-experimental-non-null --enable-experimental --define=MAC 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/birdfont-export/")++ run("""gcc -c ./build/libbirdfont/birdfont.h build/birdfont-export/*.c -D 'GETTEXT_PACKAGE="birdfont"' $(pkg-config --cflags libxml-2.0) $(pkg-config --cflags gio-2.0) $(pkg-config --cflags cairo) $(pkg-config --cflags glib-2.0) $(pkg-config --cflags gdk-pixbuf-2.0) $(pkg-config --cflags webkit-1.0) -I ./build/libbirdfont/""")+ run("mv ./*.o build/birdfont-export/")++ run("gcc build/birdfont-export/*.o ./build/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/bin/birdfont-export")++ run("touch build/installed")+ run("touch build/configured")++ # application launcher+ run("mkdir -p build/BirdFont.app")+ run("mkdir -p build/BirdFont.app/Contents")+ run("mkdir -p build/BirdFont.app/Contents/MacOs")+ run("mkdir -p build/BirdFont.app/Contents/Resources")++ run("cp mac/birdfont.sh build/BirdFont.app/Contents/MacOs")+ run("cp mac/Info.plist build/BirdFont.app/Contents/") + run("cp mac/birdfont.icns build/BirdFont.app/Contents/Resources")+ +build ()++@@ -17,7 +17,7 @@ def run(cmd): def create_dmg (): run("rm -rf build/mac/birdfont-" + version.VERSION + ".dmg") - run("hdiutil create -megabytes 55 -fs HFS+ -volname birdfont build/mac/birdfont-" + version.VERSION)+ run("hdiutil create -megabytes 79 -fs HFS+ -volname birdfont build/mac/birdfont-" + version.VERSION) # run("cp -r build/mac/birdfont.app /Volumes/birdfont/") print ("Copy the files with Finder, we don't know the path here.") new file mode 100755@@ -0,0 +1,45 @@+#!/usr/bin/python+import os+import subprocess+import glob+from optparse import OptionParser++def install (file, dir):+ if dest == "":+ f = prefix + dir + '/'+ else:+ f = dest + prefix + dir + '/'+ + s = file.rfind ('/')+ if s > -1:+ f += file[s + 1:]+ else:+ f += file+ print ("install: " + f + " in " + file + ' ' + dest + prefix + dir + '/')+ subprocess.check_call ('install -d ' + dest + prefix + dir, shell=True)+ subprocess.check_call ('install ' + file + ' ' + dest + prefix + dir + '/', shell=True)++parser = OptionParser()+parser.add_option ("-p", "--prefix", dest="prefix", help="install prefix", metavar="PREFIX")+parser.add_option ("-d", "--dest", dest="dest", help="install to this directory", metavar="DEST")++(options, args) = parser.parse_args()++if not options.prefix:+ options.prefix = "/opt/local"++if not options.dest:+ options.dest = ""++prefix = options.prefix+dest = options.dest++install ('build/bin/birdfont', '/bin')+install ('build/bin/birdfont-export', '/bin') +install ('build/bin/libbirdfont.dylib', '/lib')++# install application launcher+subprocess.check_call ('mkdir -p ' + dest + '/Applications/', shell=True)+subprocess.check_call ('cp -r build/BirdFont.app ' + dest + '/Applications/', shell=True)++new file mode 100755@@ -0,0 +1,19 @@+#!/usr/bin/python++def write_config ():+ print ("Writing Config.vala")++ vars = (('VERSION', VERSION),+ ('BUILD_TIMESTAMP', time.asctime( time.localtime(time.time()))),+ ('PREFIX', options.prefix),+ )++ f = open('./libbirdfont/Config.vala', 'w+')+ f.write("// Don't edit this file -- it is generated by the build script\n")+ f.write("namespace BirdFont {\n")++ var_line = ' internal static const string %s = "%s";\n'+ for name, value in vars:+ f.write(var_line % (name, value))++ f.write("}")