Change some source_sets to static_library to shrink binary

The gn generated binaries are bigger than the gyp generated binaries.
One of the known differences was due to the nacl_global_rng and
g_NaCl_log_gio global variables which are in gn's chrome.dll but not in
gyp's. In some cases these global variables can serve as effective
canaries - removing them can lead to much code going away as well.

Changing from source_set to static_library means that the linker is not
required to link in the associated .obj files, which can save time and
space.

In this case no code was removed so the space savings was small - just
the 1.5 KB of space consumed by the globals.

R=phosek@chromium.org
BUG=630755

Review-Url: https://codereview.chromium.org/2519103003
2 files changed
tree: bcd421e8d6e488d58a8e0fbf2cfae2d9fe483181
  1. .gitignore
  2. .gn
  3. AUTHORS
  4. BUILD.gn
  5. COPYING
  6. DEPS
  7. LICENSE
  8. NOTICE
  9. OWNERS
  10. PRESUBMIT.py
  11. README.md
  12. SConstruct
  13. build/
  14. buildbot/
  15. codereview.settings
  16. config.gni
  17. docs/
  18. documentation/
  19. infra/
  20. pnacl/
  21. pynacl/
  22. run.py
  23. scons
  24. scons.bat
  25. scons.py
  26. site_scons/
  27. src/
  28. tests/
  29. toolchain_build/
  30. toolchain_revisions/
  31. tools/
README.md

Native Client

Welcome to Native Client. For the latest information about Native Client, see the Native Client project page.

Documentation

Most of the Native Client project documentation is available online:

Directory structure

The following list describes major files and directories that you‘ll see in your working copy of the repository, including some directories that don’t exist until you've built Native Client. Paths are relative to the native_client directory.

  • COPYING NOTICE README.md RELEASE_NOTES documentation/: Documentation, release, and license information.

  • SConstruct scons.bat scons scons-out/ site_scons/: Build-related files. The scons.bat and scons files, with data from SConstruct, let you build Native Client and its tests. The scons-out and site-scons directories don‘t exist in the git repository; they’re created when Native Client is built. The scons-out/*/staging directories contain files, such as the Native Client plug-in and compiled examples, that let you use and test Native Client.

  • src/: Core source code for Native Client.

  • src/include/: Header files that are missing from some platforms and are used by more than one major part of Native Client

  • src/shared/: Source code that's used by both trusted code (such as the service runtime) and untrusted code (such as Native Client modules)

  • src/third_party: Other people's source code

  • src/trusted/: Source code that's used only by trusted code

  • src/untrusted/: Source code that's used only by untrusted code

  • tests/common/: Source code for examples and tests.

  • ../third_party/: Third-party source code and binaries that aren't part of the service runtime. When built, the Native Client toolchain is in src/third_party/nacl_sdk/.

  • tools/: Utilities such as the plug-in installer.