SConstruct 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import os
  2. import sys
  3. import SCons.cpp
  4. import rtconfig
  5. if os.getenv('RTT_ROOT'):
  6. RTT_ROOT = os.getenv('RTT_ROOT')
  7. else:
  8. RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
  9. sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
  10. from building import *
  11. Export('RTT_ROOT')
  12. # add target option
  13. AddOption('--app',
  14. dest='app',
  15. nargs=1, type='string',
  16. action='store',
  17. metavar='DIR',
  18. help='installation prefix')
  19. # add target option
  20. AddOption('--type',
  21. dest='type',
  22. nargs=1, type='string',
  23. action='store',
  24. metavar='DIR',
  25. help='installation prefix')
  26. app = GetOption('app')
  27. if GetOption('type') == 'ext':
  28. linkflags = rtconfig.LFLAGS + ' -e 0'
  29. else:
  30. linkflags = rtconfig.LFLAGS + ' -e main'
  31. env = Environment(tools = ['mingw'],
  32. AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
  33. CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
  34. CXX = rtconfig.CXX,
  35. AR = rtconfig.AR, ARFLAGS = '-rc',
  36. LINK = rtconfig.LINK, LINKFLAGS = linkflags,
  37. CPPPATH = [
  38. RTT_ROOT + '/include',
  39. RTT_ROOT + '/bsp/' + rtconfig.BSP,
  40. RTT_ROOT + '/components/finsh',
  41. RTT_ROOT + '/components/rtgui/include',
  42. RTT_ROOT + '/components/rgtui/common',
  43. RTT_ROOT + '/components/rtgui/server',
  44. RTT_ROOT + '/components/rtgui/widgets',
  45. RTT_ROOT + '/components/libdl',
  46. RTT_ROOT + '/components/external/ftk/ftk/src/os/rt-thread',
  47. RTT_ROOT + '/components/external/ftk/ftk/src/demos',
  48. RTT_ROOT + '/components/external/ftk/ftk/apps/common',
  49. RTT_ROOT + '/components/external/ftk/ftk/src',
  50. RTT_ROOT + '/components/dfs',
  51. RTT_ROOT + '/components/dfs/include',
  52. RTT_ROOT + '/components/libc/newlib',
  53. RTT_ROOT + '/components/external/cairo/cairo-1.10.2/src',
  54. RTT_ROOT + '/components/external/cairo/'
  55. ])
  56. env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
  57. PrepareModuleBuilding(env, RTT_ROOT)
  58. dir = app + '/build/' + rtconfig.BSP
  59. objs = SConscript(app + '/Sconscript', variant_dir=dir, duplicate=0)
  60. TARGET = dir + '/' + app + '.' + rtconfig.TARGET_EXT
  61. # build program
  62. env.Program(TARGET, objs)