SConstruct 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # vim:ft=python
  2. import os
  3. double_conversion_sources = ['src/' + x for x in SConscript('src/SConscript')]
  4. double_conversion_test_sources = ['test/cctest/' + x for x in SConscript('test/cctest/SConscript')]
  5. DESTDIR = ARGUMENTS.get('DESTDIR', '')
  6. prefix = ARGUMENTS.get('prefix', '/usr/local')
  7. lib = ARGUMENTS.get('libsuffix', 'lib')
  8. libdir = os.path.join(DESTDIR + prefix, lib)
  9. env = Environment(CPPPATH='#/src', LIBS=['m', 'stdc++'],
  10. CXXFLAGS=ARGUMENTS.get('CXXFLAGS', ''))
  11. debug = ARGUMENTS.get('debug', 0)
  12. optimize = ARGUMENTS.get('optimize', 0)
  13. env.Replace(CXX = ARGUMENTS.get('CXX', 'g++'))
  14. # for shared lib, requires scons 2.3.0
  15. env['SHLIBVERSION'] = '0.0.0'
  16. CCFLAGS = []
  17. if int(debug):
  18. CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-g -Wall -Werror'))
  19. if int(optimize):
  20. CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-O3'))
  21. env.Append(CCFLAGS = " ".join(CCFLAGS))
  22. double_conversion_shared_objects = [
  23. env.SharedObject(src) for src in double_conversion_sources]
  24. double_conversion_static_objects = [
  25. env.StaticObject(src) for src in double_conversion_sources]
  26. library_name = 'double-conversion'
  27. static_lib = env.StaticLibrary(library_name, double_conversion_static_objects)
  28. static_lib_pic = env.StaticLibrary(library_name + '_pic', double_conversion_shared_objects)
  29. shared_lib = env.SharedLibrary(library_name, double_conversion_shared_objects)
  30. env.Program('run_tests', double_conversion_test_sources, LIBS=[static_lib])
  31. env.InstallVersionedLib(libdir, shared_lib)
  32. env.Install(libdir, static_lib)
  33. env.Install(libdir, static_lib_pic)
  34. env.Alias('install', libdir)