| | 543 | if bldr.extraWarningLevel == SConsAddons.EnvironmentBuilder.EnvironmentBuilder.GV: |
|---|
| | 544 | env.Append(CCFLAGS = ['-Winline', '-Wreturn-type', '-Werror']) |
|---|
| | 545 | |
|---|
| | 546 | |
|---|
| | 547 | |
|---|
| | 548 | # ---- Command-line option processing ---- # |
|---|
| | 549 | def EnvironmentBuilderAddOptions(self, opts): |
|---|
| | 550 | """ The EnvironmentBuilder has support for adding command line options to an |
|---|
| | 551 | option processing object. This object has to be an instance |
|---|
| | 552 | of SConsAddons.Options. Once the options are added, the user |
|---|
| | 553 | will be able to set defaults for the environment builder. |
|---|
| | 554 | |
|---|
| | 555 | TODO: Add options for tags. |
|---|
| | 556 | """ |
|---|
| | 557 | import SConsAddons.Options as sca_opts |
|---|
| | 558 | |
|---|
| | 559 | assert isinstance(opts, sca_opts.Options) |
|---|
| | 560 | opts.AddOption(sca_opts.SeparatorOption("\nEnvironment Builder Defaults")) |
|---|
| | 561 | opts.AddOption(sca_opts.EnumOption('default_debug_level', |
|---|
| | 562 | 'Default debug level for environment builder.', |
|---|
| | 563 | 'standard', |
|---|
| | 564 | ['none','minimal','standard','extensive','maximum'], |
|---|
| | 565 | {'none':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.NONE, |
|---|
| | 566 | 'minimal':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.STANDARD, |
|---|
| | 567 | 'standard':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.STANDARD, |
|---|
| | 568 | 'extensive':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.EXTENSIVE, |
|---|
| | 569 | 'maximum':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.MAXIMUM})) |
|---|
| | 570 | opts.AddOption(sca_opts.EnumOption('default_opt_level', |
|---|
| | 571 | 'Default optimization level for environment builder.', |
|---|
| | 572 | 'standard', |
|---|
| | 573 | ['none','minimal','standard','extensive','maximum'], |
|---|
| | 574 | {'none':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.NONE, |
|---|
| | 575 | 'minimal':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.STANDARD, |
|---|
| | 576 | 'standard':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.STANDARD, |
|---|
| | 577 | 'extensive':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.EXTENSIVE, |
|---|
| | 578 | 'maximum':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.MAXIMUM})) |
|---|
| | 579 | opts.AddOption(sca_opts.EnumOption('default_warning_level', |
|---|
| | 580 | 'Default optimization level for environment builder.', |
|---|
| | 581 | 'standard', [], |
|---|
| | 582 | {'none':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.NONE, |
|---|
| | 583 | 'minimal':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.STANDARD, |
|---|
| | 584 | 'standard':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.STANDARD, |
|---|
| | 585 | 'extensive':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.EXTENSIVE, |
|---|
| | 586 | 'maximum':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.MAXIMUM})) |
|---|
| | 587 | opts.AddOption(sca_opts.EnumOption('extra_warning_level', |
|---|
| | 588 | 'extra warning level for environment builder.', |
|---|
| | 589 | 'none', [], |
|---|
| | 590 | {'none':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.NONE, |
|---|
| | 591 | 'gv':SConsAddons.EnvironmentBuilder.EnvironmentBuilder.GV})) |
|---|
| | 592 | |
|---|
| | 593 | if GetPlatform() == "darwin": |
|---|
| | 594 | opts.Add(sca_opts.BoolOption('darwin_universal', |
|---|
| | 595 | 'Build universal binaries.', False)) |
|---|
| | 596 | opts.Add('darwin_sdk', 'Darwin Platform SDK.', '') |
|---|
| | 597 | |
|---|
| | 598 | def EnvironmentBuilderReadOptions(self, optEnv): |
|---|
| | 599 | """ Read the processed options from the given environment. """ |
|---|
| | 600 | self.defaultDebugLevel = optEnv["default_debug_level"] |
|---|
| | 601 | self.defaultOptLevel = optEnv["default_opt_level"] |
|---|
| | 602 | self.defaultWarningLevel = optEnv["default_warning_level"] |
|---|
| | 603 | self.extraWarningLevel = optEnv["extra_warning_level"] |
|---|
| | 604 | |
|---|
| | 605 | if GetPlatform() == "darwin": |
|---|
| | 606 | self.darwinUniversalEnabled = optEnv["darwin_universal"] |
|---|
| | 607 | self.darwinSdk = optEnv["darwin_sdk"] |
|---|
| | 608 | |
|---|