Skip to content

Instantly share code, notes, and snippets.

@pgriess
Last active December 25, 2015 21:49
Show Gist options
  • Save pgriess/7045204 to your computer and use it in GitHub Desktop.
Save pgriess/7045204 to your computer and use it in GitHub Desktop.
Patch to get double_conversion building a library.
diff -ur double-conversion-PRISTINE/SConstruct double-conversion/SConstruct
--- double-conversion-PRISTINE/SConstruct 2012-06-10 13:25:57.000000000 -0500
+++ double-conversion/SConstruct 2013-10-18 13:25:36.000000000 -0500
@@ -1,14 +1,28 @@
+import os
+import os.path
+
double_conversion_sources = ['src/' + x for x in SConscript('src/SConscript')]
double_conversion_test_sources = ['test/cctest/' + x for x in SConscript('test/cctest/SConscript')]
-test = double_conversion_sources + double_conversion_test_sources
-print(test)
-env = Environment(CPPPATH='#/src', LIBS=['m', 'stdc++'])
+env = Environment(**os.environ)
debug = ARGUMENTS.get('debug', 0)
optimize = ARGUMENTS.get('optimize', 0)
if int(debug):
env.Append(CCFLAGS = '-g -Wall -Werror')
if int(optimize):
env.Append(CCFLAGS = '-O3')
-print double_conversion_sources
-print double_conversion_test_sources
-env.Program('run_tests', double_conversion_sources + double_conversion_test_sources)
+double_conversion_shared_objects = [
+ env.SharedObject(src) for src in double_conversion_sources]
+double_conversion_static_objects = [
+ env.StaticObject(src) for src in double_conversion_sources]
+library_name = 'double_conversion'
+shared_lib = env.SharedLibrary(library_name, double_conversion_shared_objects)
+static_lib = env.StaticLibrary(library_name, double_conversion_static_objects)
+env.Program('run_tests', double_conversion_test_sources, LIBS=[static_lib], CPPFLAGS='-Isrc', LINKFLAGS=os.environ['LDFLAGS'])
+env.Alias('install', [
+ env.Install(
+ os.path.join(os.environ['PREFIX'], 'lib'),
+ [shared_lib, static_lib]),
+ env.Install(
+ os.path.join(os.environ['PREFIX'], 'include'),
+ [os.path.join('src', f) for f in os.listdir('src') if f.endswith('.h')])
+])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment