SConstruct 957 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. if GetOption('mode') == 'opt':
  20. env['MODE'] = 'Opt'
  21. env.Append(CCFLAGS='-O2 -g')
  22. env.Append(LIBS='tcmalloc')
  23. else:
  24. env['MODE'] = 'Dbg'
  25. env.Append(CCFLAGS='-g')
  26. env.Append(LIBS='tcmalloc_debug')
  27. env['NTEST'] = GetOption('ntest')
  28. env.Append(CPPPATH=Dir(env['MODE']).abspath)
  29. def Test(test_env, target, source):
  30. if test_env['NTEST']:
  31. return
  32. local_env = test_env.Clone()
  33. local_env.Append(LIBS=[
  34. 'gtest',
  35. 'gmock',
  36. ])
  37. test_target = local_env.Program(target, source)
  38. return test_target
  39. env.AddMethod(Test, 'Test')
  40. Export('env')
  41. SConscript('Src/SConscript', variant_dir=env['MODE'], duplicate=0)