Changeset: 2ce789c8d33f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2ce789c8d33f
Modified Files:
        buildtools/autogen/autogen/msc.py
        clients/NT/rules.msc
Branch: default
Log Message:

Add support for building and installing gems on Windows.


diffs (65 lines):

diff -r 21a58d022f81 -r 2ce789c8d33f buildtools/autogen/autogen/msc.py
--- a/buildtools/autogen/autogen/msc.py Thu Jan 06 14:50:36 2011 +0100
+++ b/buildtools/autogen/autogen/msc.py Thu Jan 06 17:18:19 2011 +0100
@@ -1029,6 +1029,38 @@
                    + msc_add_srcdir(i, msc, " -I")
     fd.write("INCLUDES = " + incs + "\n")
 
+def msc_gem(fd, var, gem, msc):
+    gemre = re.compile(r'\.files *= *\[ *(.*[^ ]) *\]')
+    rd = 'RUBY_DIR'
+    if gem.has_key('DIR'):
+        rd = gem['DIR'][0]
+    rd = msc_translate_dir(rd, msc)
+    fd.write('!IF defined(HAVE_RUBYGEM)\n')
+    for f in gem['FILES']:
+        msc['SCRIPTS'].append(f[:-4])
+        srcs = map(lambda x: x.strip('" '),
+                   gemre.search(open(os.path.join(msc['cwd'], 
f)).read()).group(1).split(', '))
+        srcs.append(f)
+        fd.write('%s: %s\n' % (f[:-4], ' '.join(srcs)))
+        fd.write('\tgem build %s\n' % f)
+        for src in srcs:
+            src = src.replace('/', '\\')
+            fd.write('%s: "$(SRCDIR)\\%s"\n' % (src, src))
+            if '\\' in src:
+                d = src[:src.rfind('\\')]
+                fd.write('\tif not exist "%s" $(MKDIR) "%s"\n' % (d, d))
+            fd.write('\t$(INSTALL) "$(SRCDIR)\\%s" "%s"\n' % (src, src))
+        msc['INSTALL'][f] = f, '', '', '', 'defined(HAVE_RUBYGEM)'
+        fd.write('install_%s: "%s" "%s"\n' % (f, f[:-4], rd))
+        fd.write('\tgem install "%s" --local --install-dir "%s" --force 
--rdoc\n' % (f[:-4], rd))
+        fd.write('"%s":\n' % rd)
+        fd.write('\tif not exist "%s" $(MKDIR) "%s"\n' % (rd, rd))
+    fd.write('!ELSE\n')
+    for f in gem['FILES']:
+        fd.write('%s:\n' % f[:-4])
+        fd.write('install_%s:\n' % f)
+    fd.write('!ENDIF\n')
+
 callantno = 0
 def msc_ant(fd, var, ant, msc):
     global callantno
@@ -1099,6 +1131,7 @@
                 'largeTOC_SHARED_MODS': msc_mods_to_libs,
                 'HEADERS': msc_headers,
                 'ANT': msc_ant,
+                'GEM': msc_gem,
                 }
 
 def output(tree, cwd, topdir):
diff -r 21a58d022f81 -r 2ce789c8d33f clients/NT/rules.msc
--- a/clients/NT/rules.msc      Thu Jan 06 14:50:36 2011 +0100
+++ b/clients/NT/rules.msc      Thu Jan 06 17:18:19 2011 +0100
@@ -35,6 +35,11 @@
 monetdbtools_CFLAGS=-I"$(MONETDB_INCLUDEDIR)\common"
 monetdbtools_LIBS=/libpath:"$(MONETDB_PREFIX)\lib" libstream.lib libmutils.lib
 
+!IFNDEF RUBYDIR
+RUBYDIR = C:\Ruby192
+!ENDIF
+RUBY_DIR=lib/ruby/gems/1.9.1
+
 pkg = clients
 CONFIG_H=clients_config.h
 VERSION=1.41.0
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to