From dcb4bb2b305f65efb1a16163b96514063e055a19 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Mon, 15 Aug 2011 05:36:54 +0200 Subject: [PATCH] update a2lib converter --- build/convert-lib-x64.py | 36 ++++++++++++++---------------------- build/convert-lib-x86.py | 36 ++++++++++++++---------------------- 2 files changed, 28 insertions(+), 44 deletions(-) diff --git a/build/convert-lib-x64.py b/build/convert-lib-x64.py index 71962098..84bf2403 100644 --- a/build/convert-lib-x64.py +++ b/build/convert-lib-x64.py @@ -1,21 +1,14 @@ -# script by Mikhail Titov -# http://mail.gnome.org/archives/gtk-list/2011-March/msg00103.html +# a2lib script by Mikhail Titov +# http://live.gnome.org/GTK%2B/Win32/NativeBuildWithOBS import os,re,sys,shutil from os.path import join, getsize from subprocess import Popen, PIPE os.environ['PATH'] = os.environ['PATH'] + ";C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin\\amd64;C:\\mozilla-build\\mingw64\\bin" -#gendef = "C:\\workspace\\glibmm-2.27.99\\MSVC_Net2008\\gendef\\Win32\\Debug\\gendef.exe" -# dll = re.sub(".a", "", lib) -# output = Popen([gendef, d, dll, lib], stdout=PIPE).communicate()[0] +root = "c:\\mozilla-build\\build\\xchat-wdk\\dep-x64" -def gen(dll): - name = re.sub("^lib", "", dll) - name = re.sub("(?:-\\d).dll", "", name) -# shutil.copyfile(lib, name + ".lib") - print("Working on %s\n" % dll) - output = Popen(["nm", "lib%s.dll.a" % name], stdout=PIPE).communicate()[0] - d = "%s.def" % name +def gen(dll,lib,d): + output = Popen(["nm", lib], stdout=PIPE).communicate()[0] with open(d, "wb") as f: f.write(b"EXPORTS\n") for line in output.split(b"\r\n"): @@ -23,16 +16,15 @@ def gen(dll): line = re.sub(b"^.* T _|^.* I __nm__", b"", line) #|^.* I _ f.write(line + b"\n") f.write(str.encode("LIBRARY %s\n" % dll)) - p = Popen(["lib", "/machine:x64", "/def:%s" % d]) #, shell = True) + p = Popen(["lib", "/MACHINE:X64", "/def:%s" % d]) #, shell = True) -root = "c:\\mozilla-build\\build\\xchat-wdk\\dep-x64" os.chdir(root + "\\lib") for root, dirs, files in os.walk(root + "\\bin"): - for name in files: - if (re.search(".dll", name)): - print("Processing: %s\n" % name) - gen(name) - -#gen("libatk-1.0-0.dll") -# glibmm-2.4.def libglibmm-2.4-1.dll libglibmm-2.4.dll.a -# dumpbin /SYMBOLS /OUT:dumpbin.out libglibmm-2.4.dll.a + for f in files: + if (re.search(".dll", f)): + name = re.sub("^lib", "", f) + name = re.sub("(?:-\\d).dll", "", name) + print("Working on %s\n" % f) + d = "%s.def" % name + lib = "lib%s.dll.a" % name + gen(f, lib, d) diff --git a/build/convert-lib-x86.py b/build/convert-lib-x86.py index dbf89b37..bcb8afbf 100644 --- a/build/convert-lib-x86.py +++ b/build/convert-lib-x86.py @@ -1,21 +1,14 @@ -# script by Mikhail Titov -# http://mail.gnome.org/archives/gtk-list/2011-March/msg00103.html +# a2lib script by Mikhail Titov +# http://live.gnome.org/GTK%2B/Win32/NativeBuildWithOBS import os,re,sys,shutil from os.path import join, getsize from subprocess import Popen, PIPE os.environ['PATH'] = os.environ['PATH'] + ";C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE;C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin;C:\\mozilla-build\\mingw32\\bin" -#gendef = "C:\\workspace\\glibmm-2.27.99\\MSVC_Net2008\\gendef\\Win32\\Debug\\gendef.exe" -# dll = re.sub(".a", "", lib) -# output = Popen([gendef, d, dll, lib], stdout=PIPE).communicate()[0] +root = "c:\\mozilla-build\\build\\xchat-wdk\\dep-x86" -def gen(dll): - name = re.sub("^lib", "", dll) - name = re.sub("(?:-\\d).dll", "", name) -# shutil.copyfile(lib, name + ".lib") - print("Working on %s\n" % dll) - output = Popen(["nm", "lib%s.dll.a" % name], stdout=PIPE).communicate()[0] - d = "%s.def" % name +def gen(dll,lib,d): + output = Popen(["nm", lib], stdout=PIPE).communicate()[0] with open(d, "wb") as f: f.write(b"EXPORTS\n") for line in output.split(b"\r\n"): @@ -23,16 +16,15 @@ def gen(dll): line = re.sub(b"^.* T _|^.* I __nm__", b"", line) #|^.* I _ f.write(line + b"\n") f.write(str.encode("LIBRARY %s\n" % dll)) - p = Popen(["lib", "/machine:x86", "/def:%s" % d]) #, shell = True) + p = Popen(["lib", "/MACHINE:X86", "/def:%s" % d]) #, shell = True) -root = "c:\\mozilla-build\\build\\xchat-wdk\\dep-x86" os.chdir(root + "\\lib") for root, dirs, files in os.walk(root + "\\bin"): - for name in files: - if (re.search(".dll", name)): - print("Processing: %s\n" % name) - gen(name) - -#gen("libatk-1.0-0.dll") -# glibmm-2.4.def libglibmm-2.4-1.dll libglibmm-2.4.dll.a -# dumpbin /SYMBOLS /OUT:dumpbin.out libglibmm-2.4.dll.a + for f in files: + if (re.search(".dll", f)): + name = re.sub("^lib", "", f) + name = re.sub("(?:-\\d).dll", "", name) + print("Working on %s\n" % f) + d = "%s.def" % name + lib = "lib%s.dll.a" % name + gen(f, lib, d)