Improve LDF C/C++ Preprocessor for conditional syntax // Issue #837

This commit is contained in:
Ivan Kravets
2016-11-29 23:44:54 +02:00
parent 8b121a1ccb
commit 12e1cc95b6
2 changed files with 8 additions and 9 deletions

View File

@ -79,9 +79,10 @@ class LibBuilderFactory(object):
class LibBuilderBase(object):
DEFAULT_LDF_MODE = 1
CLASSIC_SCANNER = SCons.Scanner.C.CScanner()
INTELLISENSE_SCANNER = SCons.Scanner.C.SConsCPPScannerWrapper("CScanner",
"CPPPATH")
ADVANCED_SCANNER = SCons.Scanner.C.CScanner(advanced=True)
INC_DIRS_CACHE = None
def __init__(self, env, path, manifest=None, verbose=False):
@ -160,7 +161,7 @@ class LibBuilderBase(object):
@property
def lib_ldf_mode(self):
return int(self.env.get("LIB_LDF_MODE", 1))
return int(self.env.get("LIB_LDF_MODE", self.DEFAULT_LDF_MODE))
@property
def depbuilders(self):
@ -281,11 +282,8 @@ class LibBuilderBase(object):
result = []
for path in self._validate_search_paths(search_paths):
try:
assert isinstance(self, ProjectAsLibBuilder) or \
self.lib_ldf_mode == 2
incs = self.env.File(path).get_found_includes(
self.env, LibBuilderBase.INTELLISENSE_SCANNER,
tuple(inc_dirs))
self.env, LibBuilderBase.ADVANCED_SCANNER, tuple(inc_dirs))
except: # pylint: disable=bare-except
incs = self.env.File(path).get_found_includes(
self.env, LibBuilderBase.CLASSIC_SCANNER, tuple(inc_dirs))
@ -635,7 +633,8 @@ def BuildDependentLibraries(env, src_dir):
project.env = env
project.search_deps_recursive(lib_builders)
if int(env.get("LIB_LDF_MODE", 1)) == 1 and project.depbuilders:
if int(env.get("LIB_LDF_MODE", LibBuilderBase.DEFAULT_LDF_MODE)) == 1 \
and project.depbuilders:
correct_found_libs(lib_builders)
if project.depbuilders:

View File

@ -477,7 +477,7 @@ class PlatformBase(PlatformPackagesMixin, PlatformRunMixin):
}
if "tool-scons" not in self.packages:
self.packages['tool-scons'] = {
"version": "~3.20401.1",
"version": "~3.20401.2",
"optional": False
}