chromium-src-build/internal
phoglund 2c424a41e9 Revert of Revert of Sync Windows build flags between GYP and GN (patchset #1 id:1 of https://codereview.chromium.org/1185963004/)
Reason for revert:
Appears this was innocent after all.

Original issue's description:
> Revert of Sync Windows build flags between GYP and GN (patchset #4 id:60001 of https://codereview.chromium.org/1183613006/)
>
> Reason for revert:
> Speculative revert for Linux GN clobber compile failure:
>
> FAILED: python ../../remoting/webapp/build-webapp.py ...
> Traceback (most recent call last):
>   File "../../remoting/webapp/build-webapp.py", line 487, in <module>
>     sys.exit(main())
>   File "../../remoting/webapp/build-webapp.py", line 483, in main
>     return buildWebApp(**vars(args))
>   File "../../remoting/webapp/build-webapp.py", line 257, in buildWebApp
>     + buildtype + ': ' + service_environment)
> Exception: Invalid service_environment targeted for Release:
> ninja: build stopped: subcommand failed.
>
> Original issue's description:
> > Sync Windows build flags between GYP and GN
> >
> > In GN, turn on omtimize:max for base targets on all platforms, not just Android (matches GYP).
> >
> > In GN, don't duplicate /Os twice, make standard optimize = /O1 (matches GYP). Don't specify redundant optimization flags that are included as part of /O1 or /O2 (doesn't match GYP flag-wise, but should match functionality-wise).
> >
> > In GN, add a min Windows version of XP to x86 architecture binaries (matches GYP).
> >
> > In GYP, remove /GT ("EnableFiberSafeOptimizations"). This flag is super old (pre-dates GYP) and was likely turned on because it has the word "optimization" in it. It was only specified in official builds. However, according to the docs, this is making optimizations fiber safe (i.e. slower, by not caching the TLS pointer), rather than enabling optimizations for fibers. We don't use fibers so this flag is unnecessary and may be making TLS access slightly slower.
> >
> > Committed: https://crrev.com/67021f4d70fe838a5d78133bc6d5b305dfd70d72
> > Cr-Commit-Position: refs/heads/master@{#334742}
>
> TBR=scottmg@chromium.org,brettw@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/1becf72a2d1b5eec4468cc950142b083e9b24fbe
> Cr-Commit-Position: refs/heads/master@{#334782}

TBR=scottmg@chromium.org,brettw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1184953004

Cr-Original-Commit-Position: refs/heads/master@{#334795}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6a18ffd1f1e656bba0d905c30fad6b46ec4ffcff
2015-06-17 09:09:26 +00:00
..
README.chromium Dropping unneeded set of vsprops. 2009-12-30 04:39:17 +00:00
release_defaults.gypi With this change, each target can select an optimization level for Windows official builds by setting a variable name "optimize" to one of three possible values: 2011-12-20 21:37:37 +00:00
release_impl.gypi Disable fpo one more time, this time for non-official (canary) builds. 2012-02-09 21:04:32 +00:00
release_impl_official.gypi Revert of Revert of Sync Windows build flags between GYP and GN (patchset #1 id:1 of https://codereview.chromium.org/1185963004/) 2015-06-17 09:09:26 +00:00

README.chromium

Internal property sheets:
  essential.vsprops
    Contains the common settings used throughout the projects. Is included by either ..\debug.vsprops or ..\release.vsprops, so in general, it is not included directly.

  release_defaults.vsprops
    Included by ..\release.vsprops. Its settings are overriden by release_impl$(CHROME_BUILD_TYPE).vsprops. Uses the default VS setting which is "Maximize Speed". Results in relatively fast build with reasonable optimization level but without whole program optimization to reduce build time.

  release_impl.vsprops
    Included by ..\release.vsprops by default when CHROME_BUILD_TYPE is undefined. Includes release_defaults.vsprops.

  release_impl_checksenabled.vsprops
    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_checksenabled. Matches what release_defaults.vsprops does, but doesn't actually inherit from it as we couldn't quite get that working. The only difference is that _DEBUG is set instead of NDEBUG. Used for keeping debug checks enabled with a build that is fast enough to dogfood with.

  release_impl_official.vsprops
    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_official. Includes release_defaults.vsprops. Enables Whole Program Optimizations (WPO), which doubles the build time. Results in much more optimized build. Uses "Full Optimization" and "Flavor small code".

  release_impl_pgo_instrument.vsprops
    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_pgo_instrument. Includes release_defaults.vsprops. Enables Profile Guided Optimization (PGO) instrumentation (first pass). Uses "Full Optimization" and "Flavor small code".

  release_impl_pgo_optimize.vsprops
    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_pgo_optimize. Includes release_defaults.vsprops. Enables Profile Guided Optimization (PGO) optimization (second pass). Uses "Full Optimization" and "Flavor small code".

  release_impl_purify.vsprops
    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_purify. Includes release_defaults.vsprops. Disables optimizations. Used with Purify to test without debug tools and without optimization; i.e. NDEBUG is defined but the compiler doesn't optimize the binary.