scons: seperate the BSP build with the kernel build

BSPs could have their own components/ etc. If they point to the same
folder, SCons would find the wrong source code to compile.
This commit is contained in:
Grissiom 2014-04-10 15:03:11 +08:00
parent f91f22b31f
commit a03816ef9a
1 changed files with 12 additions and 5 deletions

View File

@ -192,18 +192,25 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
LINKCOMSTR = 'LINK $TARGET'
)
# board build script
objs = SConscript('SConscript', variant_dir='build', duplicate=0)
Repository(Rtt_Root)
# we need to seperate the variant_dir for BSPs and the kernels. BSPs could
# have their own components etc. If they point to the same folder, SCons
# would find the wrong source code to compile.
bsp_vdir = 'build/bsp'
kernel_vdir = 'build/kernel'
# board build script
objs = SConscript('SConscript', variant_dir=bsp_vdir, duplicate=0)
# include kernel
objs.extend(SConscript(Rtt_Root + '/src/SConscript', variant_dir='build/src', duplicate=0))
objs.extend(SConscript(Rtt_Root + '/src/SConscript', variant_dir=kernel_vdir + '/src', duplicate=0))
# include libcpu
if not has_libcpu:
objs.extend(SConscript(Rtt_Root + '/libcpu/SConscript', variant_dir='build/libcpu', duplicate=0))
objs.extend(SConscript(Rtt_Root + '/libcpu/SConscript',
variant_dir=kernel_vdir + '/libcpu', duplicate=0))
# include components
objs.extend(SConscript(Rtt_Root + '/components/SConscript',
variant_dir='build/components',
variant_dir=kernel_vdir + '/components',
duplicate=0,
exports='remove_components'))