diff --git a/SConstruct b/SConstruct index 3321483248..53d845c21b 100644 --- a/SConstruct +++ b/SConstruct @@ -782,6 +782,7 @@ def GetOptions(): result = Options() result.Add('mode', 'compilation mode (debug, release)', 'release') result.Add('sample', 'build sample (shell, process, lineprocessor)', '') + result.Add('cache', 'directory to use for scons build cache', '') result.Add('env', 'override environment settings (NAME0:value0,NAME1:value1,...)', '') result.Add('importenv', 'import environment settings (NAME0,NAME1,...)', '') for (name, option) in SIMPLE_OPTIONS.iteritems(): @@ -863,6 +864,8 @@ def VerifyOptions(env): Abort("Shared Object soname not applicable for static library.") if env['os'] != 'win32' and env['pgo'] != 'off': Abort("Profile guided optimization only supported on Windows.") + if env['cache'] and not os.path.isdir(env['cache']): + Abort("The specified cache directory does not exist.") if not (env['arch'] == 'arm' or env['simulator'] == 'arm') and ('unalignedaccesses' in ARGUMENTS): print env['arch'] print env['simulator'] @@ -1131,6 +1134,8 @@ def Build(): else: env.Default('library') + if env['cache']: + CacheDir(env['cache']) # We disable deprecation warnings because we need to be able to use # env.Copy without getting warnings for compatibility with older