Move more things to the lib tool

This commit is contained in:
Eryn Wells 2015-10-17 00:13:11 -07:00
parent e0f3f0a2b4
commit bd7a79c9e1
2 changed files with 17 additions and 15 deletions

View file

@ -2,7 +2,6 @@
# Eryn Wells <eryn@erynwells.me>
import logging
import os
import sys
import SCons.Environment
@ -146,20 +145,6 @@ class Environment(SCons.Environment.Environment):
'''Return the main source root directory for this environment.'''
return self['SRC_ROOT']
@property
def lib_dirs(self):
for lib in os.listdir(self['LIB_ROOT'].abspath):
lib_dir = self['LIB_ROOT'].Dir(lib)
if not lib_dir.isdir():
continue
yield (lib, lib_dir)
def process_lib_dirs(self):
self.log('Processing libs in #{} ...'.format(self.lib_root.path))
for name, lib in self.lib_dirs:
self.log(' - {}'.format(name))
self.LibDir(name)
def process_src(self):
out_dir = self.build_root.Dir('src')
# TODO: Do the thing.

View file

@ -5,9 +5,12 @@
SCons builder for a lib directory.
'''
import os
import SCons.Errors
import SCons.Script
def _lib(env, name):
return env['LIBS'].get(name)
@ -18,6 +21,19 @@ def _register_lib(env, name, lib):
env['LIBS'][name] = lib
def _lib_dirs(env):
for lib in os.listdir(env.lib_root.abspath):
lib_dir = env.lib_root.Dir(lib)
if not lib_dir.isdir():
continue
yield (lib, lib_dir)
def _process_lib_dirs(env):
for name, _ in _lib_dirs(env):
env.LibDir(name)
def _process_lib_dir(env, lib, src_dir=None, out_dir=None, inc_dir=None):
if not src_dir:
src_dir = env.lib_root.Dir(lib)
@ -64,6 +80,7 @@ def generate(env):
env.AddMethod(_build_library(env, env.StaticLibrary), 'StaticLibrary')
env.AddMethod(_build_library(env, env.SharedLibrary), 'SharedLibrary')
env.AddMethod(_lib, 'lib')
env.AddMethod(_process_lib_dirs, 'process_lib_dirs')
def exists(env):
return True