SConstruct 935 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. env = DefaultEnvironment()
  2. def ParseOptions():
  3. AddOption('--mode',
  4. dest='mode',
  5. action='store',
  6. type='string',
  7. default='dbg',
  8. help='build in opt mode, default dbg mode')
  9. AddOption("--ntest",
  10. action="store_true",
  11. dest="ntest",
  12. default=False,
  13. help="dont build test")
  14. ParseOptions()
  15. env.Append(LIBS=[
  16. 'gflags',
  17. 'glog',
  18. ])
  19. env['MODE'] = GetOption('mode')
  20. env['NTEST'] = GetOption('ntest')
  21. if env['MODE'] == 'opt':
  22. env.Append(CCFLAGS='-O2 -g')
  23. env.Append(LIBS='tcmalloc')
  24. else:
  25. env.Append(CCFLAGS='-g')
  26. env.Append(LIBS='tcmalloc_debug')
  27. env.Append(CPPPATH=Dir(env['MODE']).abspath)
  28. def Test(env, target, source):
  29. if env['NTEST']:
  30. return
  31. test_env = env.Clone()
  32. test_env.Append(LIBS=[
  33. 'gtest',
  34. 'gmock',
  35. ])
  36. test_target = test_env.Program(target, source)
  37. return test_target
  38. env.AddMethod(Test, 'Test')
  39. Export('env')
  40. SConscript('Src/SConscript', variant_dir=env['MODE'], duplicate=0)