diff options
Diffstat (limited to 'build/SConscript.main')
-rw-r--r-- | build/SConscript.main | 76 |
1 files changed, 71 insertions, 5 deletions
diff --git a/build/SConscript.main b/build/SConscript.main index fff2233..07d01ad3 100644 --- a/build/SConscript.main +++ b/build/SConscript.main @@ -379,6 +379,35 @@ windows_opt.Tool('target_optimized') windows_opt.ApplySConscript(['$CHROME_SRC_DIR/build/release.scons']) # -------------------------------------------------------------------------- +# Platform-independent "msvs" mode for generating Visual Studio +# project and solution files from any platform. + +DeclareBit('msvs', 'Generate Visual Studio files') + +msvs_env = windows_env.Clone() + +msvs_env.Tool('target_platform_windows') +msvs_env.Tool('component_targets_msvs') # Per target project support. + +del msvs_env['BUILDERS']['MSVSProject'] +del msvs_env['BUILDERS']['MSVSSolution'] +msvs_env.Tool('MSVSNew') + +msvs_env.Tool('midl') + +environment_list.append(msvs_env) +msvs_env.Replace( + BUILD_TYPE = 'msvs', + BUILD_TYPE_DESCRIPTION = 'Generate Visual Studio files', + HOST_PLATFORMS = ['*'], + ICU_LIBS = [], +) +msvs_env.SetBits('windows', 'msvs') +# TODO(sgk): turn into separate debug + release env adding +# to a common .sln file +msvs_env.Tool('target_debug') + +# -------------------------------------------------------------------------- # Linux specific linux_env = root_env.Clone() @@ -624,6 +653,30 @@ mac_env.Append( ) +# -------------------------------------------------------------------------- +# Platform-independent "xcode" mode for generating XCode files +# from any platform. + +DeclareBit('xcode', 'Generate XCode files') + +# TODO(sgk): remove this after we update Hammer modules. +DeclareBit('mac', 'Target platform is mac.') + +xcode_env = mac_env.Clone() +# TODO(sgk): uncomment when xcode generation becomes real. +#environment_list.append(xcode_env) +xcode_env.Replace( + BUILD_TYPE = 'xcode', + BUILD_TYPE_DESCRIPTION = 'Generate XCode files', + HOST_PLATFORMS = ['*'], + ICU_LIBS = [], +) +xcode_env.SetBits('mac', 'xcode') +# TODO(sgk): turn into separate debug + release env adding +# to a common .sln file +xcode_env.Tool('target_debug') + + # ------------------------------------------------------------------------- @@ -671,11 +724,6 @@ if GetOption('help'): Help(help_fmt % (components, all_system_libs)) - -Import('build_component') -Default(None) # Reset default target to empty. -Default(Alias(build_component)) # Set default target based on where built. - # ------------------------------------------------------------------------- # Invoke all the SConscripts in each of the environments that make sense on @@ -684,6 +732,24 @@ BuildComponents(environment_list) # ------------------------------------------------------------------------- +Default(None) # Reset default target to empty. + +modes = GetTargetModes().keys() + +if set(modes) - set(['msvs', 'xcode']): + # There's at least one mode being built besides the platform- + # independent 'msvs' or 'xcode' modes. Build the current + # build_component's Alias as default--that is, "base" when we're + # in the base/ subdirectory, "chrome" under chrome/, etc. + Import('build_component') + Default(Alias(build_component)) # Set default target based on where built. + +if 'msvs' in modes: + # We're in --mode=msvs, so add its Alias(es) to the default targets. + Default(Alias('solutions')) + +# ------------------------------------------------------------------------- + # This must occur after BuildComponents so that the dependency graph # will be populated. vs_env = windows_env.Clone() |