Commit ebd005e
macport package
Changed files (8)
modifiedconfiguremodifiedinstallmodifiedmac/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') @@ -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",@@ -35,7 +36,7 @@ LOCAL_LIBS = [ "libfreetype.6", "libfontconfig.1", "liblzma.5",- "libGL.1",+ "libGL.1", # GL "libICE.6", "libSM.6", "libX11-xcb.1",@@ -111,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) @@ -151,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")@@ -173,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") @@ -197,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("}")