Add static library versions of libdawn*

Chromium will want to have both static and shared library versions of
Dawn to use in non-component and component builds respectively.

The *_export.h files are modified to noop when *_SHARED_LIBRARY is not
defined so that the static library doesn't export symbols that aren't
imported in dependents (this would break compilation on Windows).

A dawn_library_combo is introduced in BUILD.gn that factors out all the
logic needed to produce shared libraries and handle the _EXPORT macros.

Also contains a fix to dawncpp to export only the methods that aren't
defined in the header (otherwise they get defined multiple times)

BUG=dawn:85

Change-Id: Ib747deb9308e1165dd66002487147ba279d3eac0
Reviewed-on: https://dawn-review.googlesource.com/c/3761
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
Corentin Wallez
2019-01-09 09:05:18 +00:00
committed by Commit Bot service account
parent 97d2a71684
commit bd48385d50
6 changed files with 209 additions and 156 deletions

View File

@@ -164,10 +164,8 @@ dawn_fuzzer_test("dawn_wire_server_and_frontend_fuzzer") {
]
deps = [
"${dawn_top_level}:libdawn_sources",
"${dawn_top_level}:libdawn_native_sources",
"${dawn_top_level}:libdawn_wire_sources",
"${dawn_top_level}:libdawn_static",
"${dawn_top_level}:libdawn_native_static",
"${dawn_top_level}:libdawn_wire_static",
]
additional_configs = [ "${dawn_top_level}:dawn_shared_library_public" ]
}