build: Make crashpad_dependencies="external" work in the GN build

…for macOS, at least.

Change-Id: Iba45328d957de17198180d171677a45468c9adc2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2290842
Reviewed-by: Eric Astor <epastor@google.com>
Commit-Queue: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Mark Mentovai 2020-07-10 17:12:39 -04:00 committed by Commit Bot
parent e3c94b87f0
commit fd001f792e
8 changed files with 222 additions and 192 deletions

View File

@ -175,7 +175,7 @@ if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) {
]
}
}
} else if (crashpad_is_standalone) {
} else if (crashpad_is_standalone || crashpad_is_external) {
test("crashpad_client_test") {
deps = [
"client:client_test",

View File

@ -33,12 +33,18 @@ if (current_cpu == "") {
current_cpu = target_cpu
}
import("//build/crashpad_buildconfig.gni")
if (crashpad_is_standalone) {
_mini_chromium_dir = "//third_party/mini_chromium/mini_chromium"
} else if (crashpad_is_external) {
_mini_chromium_dir = "//../../mini_chromium/mini_chromium"
}
if (current_os == "win") {
set_default_toolchain(
"//third_party/mini_chromium/mini_chromium/build:msvc_toolchain_$current_cpu")
set_default_toolchain("$_mini_chromium_dir/build:msvc_toolchain_$current_cpu")
} else {
set_default_toolchain(
"//third_party/mini_chromium/mini_chromium/build:gcc_like_toolchain")
set_default_toolchain("$_mini_chromium_dir/build:gcc_like_toolchain")
}
declare_args() {
@ -53,19 +59,18 @@ declare_args() {
}
_default_configs = [
"//third_party/mini_chromium/mini_chromium/build:default",
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
"//third_party/mini_chromium/mini_chromium/build:Wimplicit_fallthrough",
"$_mini_chromium_dir/build:default",
"$_mini_chromium_dir/build:Wexit_time_destructors",
"$_mini_chromium_dir/build:Wimplicit_fallthrough",
]
if (crashpad_use_libfuzzer) {
_default_configs += [ "//build:crashpad_fuzzer_flags" ]
}
_default_executable_configs =
_default_configs + [
"//third_party/mini_chromium/mini_chromium/build:executable",
"//third_party/mini_chromium/mini_chromium/build:win_console",
_default_executable_configs = _default_configs + [
"$_mini_chromium_dir/build:executable",
"$_mini_chromium_dir/build:win_console",
]
set_defaults("source_set") {

View File

@ -16,4 +16,5 @@ source_set("cpp-httplib") {
testonly = true
include_dirs = [ "cpp-httplib" ]
sources = [ "cpp-httplib/httplib.h" ]
deps = [ "../zlib" ]
}

View File

@ -34,58 +34,64 @@ if (crashpad_is_in_chromium) {
testonly = true
public_deps = [ "//third_party/googletest:gmock" ]
}
} else if (crashpad_is_standalone) {
} else if (crashpad_is_standalone || crashpad_is_external) {
if (crashpad_is_standalone) {
googletest_dir = "googletest"
mini_chromium_dir = "//third_party/mini_chromium/mini_chromium"
} else if (crashpad_is_external) {
googletest_dir = "../../../../googletest"
mini_chromium_dir = "//../../mini_chromium/mini_chromium"
}
config("googletest_private_config") {
visibility = [ ":*" ]
include_dirs = [ "googletest/googletest" ]
include_dirs = [ "$googletest_dir/googletest" ]
defines = [ "GUNIT_NO_GOOGLE3=1" ]
}
config("googletest_public_config") {
include_dirs = [ "googletest/googletest/include" ]
include_dirs = [ "$googletest_dir/googletest/include" ]
}
static_library("googletest") {
testonly = true
sources = [
"googletest/googletest/include/gtest/gtest-death-test.h",
"googletest/googletest/include/gtest/gtest-matchers.h",
"googletest/googletest/include/gtest/gtest-message.h",
"googletest/googletest/include/gtest/gtest-param-test.h",
"googletest/googletest/include/gtest/gtest-printers.h",
"googletest/googletest/include/gtest/gtest-spi.h",
"googletest/googletest/include/gtest/gtest-test-part.h",
"googletest/googletest/include/gtest/gtest-typed-test.h",
"googletest/googletest/include/gtest/gtest.h",
"googletest/googletest/include/gtest/gtest_pred_impl.h",
"googletest/googletest/include/gtest/gtest_prod.h",
"googletest/googletest/include/gtest/internal/custom/gtest-port.h",
"googletest/googletest/include/gtest/internal/custom/gtest-printers.h",
"googletest/googletest/include/gtest/internal/custom/gtest.h",
"googletest/googletest/include/gtest/internal/gtest-death-test-internal.h",
"googletest/googletest/include/gtest/internal/gtest-filepath.h",
"googletest/googletest/include/gtest/internal/gtest-internal.h",
"googletest/googletest/include/gtest/internal/gtest-param-util.h",
"googletest/googletest/include/gtest/internal/gtest-port-arch.h",
"googletest/googletest/include/gtest/internal/gtest-port.h",
"googletest/googletest/include/gtest/internal/gtest-string.h",
"googletest/googletest/include/gtest/internal/gtest-type-util.h",
"googletest/googletest/src/gtest-all.cc",
"googletest/googletest/src/gtest-death-test.cc",
"googletest/googletest/src/gtest-filepath.cc",
"googletest/googletest/src/gtest-internal-inl.h",
"googletest/googletest/src/gtest-matchers.cc",
"googletest/googletest/src/gtest-port.cc",
"googletest/googletest/src/gtest-printers.cc",
"googletest/googletest/src/gtest-test-part.cc",
"googletest/googletest/src/gtest-typed-test.cc",
"googletest/googletest/src/gtest.cc",
"$googletest_dir/googletest/include/gtest/gtest-death-test.h",
"$googletest_dir/googletest/include/gtest/gtest-matchers.h",
"$googletest_dir/googletest/include/gtest/gtest-message.h",
"$googletest_dir/googletest/include/gtest/gtest-param-test.h",
"$googletest_dir/googletest/include/gtest/gtest-printers.h",
"$googletest_dir/googletest/include/gtest/gtest-spi.h",
"$googletest_dir/googletest/include/gtest/gtest-test-part.h",
"$googletest_dir/googletest/include/gtest/gtest-typed-test.h",
"$googletest_dir/googletest/include/gtest/gtest.h",
"$googletest_dir/googletest/include/gtest/gtest_pred_impl.h",
"$googletest_dir/googletest/include/gtest/gtest_prod.h",
"$googletest_dir/googletest/include/gtest/internal/custom/gtest-port.h",
"$googletest_dir/googletest/include/gtest/internal/custom/gtest-printers.h",
"$googletest_dir/googletest/include/gtest/internal/custom/gtest.h",
"$googletest_dir/googletest/include/gtest/internal/gtest-death-test-internal.h",
"$googletest_dir/googletest/include/gtest/internal/gtest-filepath.h",
"$googletest_dir/googletest/include/gtest/internal/gtest-internal.h",
"$googletest_dir/googletest/include/gtest/internal/gtest-param-util.h",
"$googletest_dir/googletest/include/gtest/internal/gtest-port-arch.h",
"$googletest_dir/googletest/include/gtest/internal/gtest-port.h",
"$googletest_dir/googletest/include/gtest/internal/gtest-string.h",
"$googletest_dir/googletest/include/gtest/internal/gtest-type-util.h",
"$googletest_dir/googletest/src/gtest-all.cc",
"$googletest_dir/googletest/src/gtest-death-test.cc",
"$googletest_dir/googletest/src/gtest-filepath.cc",
"$googletest_dir/googletest/src/gtest-internal-inl.h",
"$googletest_dir/googletest/src/gtest-matchers.cc",
"$googletest_dir/googletest/src/gtest-port.cc",
"$googletest_dir/googletest/src/gtest-printers.cc",
"$googletest_dir/googletest/src/gtest-test-part.cc",
"$googletest_dir/googletest/src/gtest-typed-test.cc",
"$googletest_dir/googletest/src/gtest.cc",
]
sources -= [ "googletest/googletest/src/gtest-all.cc" ]
sources -= [ "$googletest_dir/googletest/src/gtest-all.cc" ]
public_configs = [ ":googletest_public_config" ]
configs -= [
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
]
configs -= [ "$mini_chromium_dir/build:Wexit_time_destructors" ]
configs += [ ":googletest_private_config" ]
if (crashpad_is_fuchsia) {
deps = [ "../fuchsia" ]
@ -97,33 +103,31 @@ if (crashpad_is_in_chromium) {
visibility = [ ":*" ]
testonly = true
sources = [ "googletest/googletest/src/gtest_main.cc" ]
sources = [ "$googletest_dir/googletest/src/gtest_main.cc" ]
deps = [ ":googletest" ]
}
test("gtest_all_test") {
sources = [
"googletest/googletest/test/googletest-death-test-test.cc",
"googletest/googletest/test/googletest-filepath-test.cc",
"googletest/googletest/test/googletest-message-test.cc",
"googletest/googletest/test/googletest-options-test.cc",
"googletest/googletest/test/googletest-port-test.cc",
"googletest/googletest/test/googletest-printers-test.cc",
"googletest/googletest/test/googletest-test-part-test.cc",
"googletest/googletest/test/gtest-typed-test2_test.cc",
"googletest/googletest/test/gtest-typed-test_test.cc",
"googletest/googletest/test/gtest-typed-test_test.h",
"googletest/googletest/test/gtest_main_unittest.cc",
"googletest/googletest/test/gtest_pred_impl_unittest.cc",
"googletest/googletest/test/gtest_prod_test.cc",
"googletest/googletest/test/gtest_skip_test.cc",
"googletest/googletest/test/gtest_unittest.cc",
"googletest/googletest/test/production.cc",
"googletest/googletest/test/production.h",
]
configs -= [
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
"$googletest_dir/googletest/test/googletest-death-test-test.cc",
"$googletest_dir/googletest/test/googletest-filepath-test.cc",
"$googletest_dir/googletest/test/googletest-message-test.cc",
"$googletest_dir/googletest/test/googletest-options-test.cc",
"$googletest_dir/googletest/test/googletest-port-test.cc",
"$googletest_dir/googletest/test/googletest-printers-test.cc",
"$googletest_dir/googletest/test/googletest-test-part-test.cc",
"$googletest_dir/googletest/test/gtest-typed-test2_test.cc",
"$googletest_dir/googletest/test/gtest-typed-test_test.cc",
"$googletest_dir/googletest/test/gtest-typed-test_test.h",
"$googletest_dir/googletest/test/gtest_main_unittest.cc",
"$googletest_dir/googletest/test/gtest_pred_impl_unittest.cc",
"$googletest_dir/googletest/test/gtest_prod_test.cc",
"$googletest_dir/googletest/test/gtest_skip_test.cc",
"$googletest_dir/googletest/test/gtest_unittest.cc",
"$googletest_dir/googletest/test/production.cc",
"$googletest_dir/googletest/test/production.h",
]
configs -= [ "$mini_chromium_dir/build:Wexit_time_destructors" ]
configs += [ ":googletest_private_config" ]
deps = [
":googletest",
@ -136,37 +140,33 @@ if (crashpad_is_in_chromium) {
}
test("gtest_environment_test") {
sources = [ "googletest/googletest/test/gtest_environment_test.cc" ]
sources = [ "$googletest_dir/googletest/test/gtest_environment_test.cc" ]
configs += [ ":googletest_private_config" ]
deps = [ ":googletest" ]
}
test("gtest_listener_test") {
sources = [ "googletest/googletest/test/googletest-listener-test.cc" ]
sources = [ "$googletest_dir/googletest/test/googletest-listener-test.cc" ]
deps = [ ":googletest" ]
}
test("gtest_macro_stack_footprint_test") {
sources = [
"googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc",
]
sources = [ "$googletest_dir/googletest/test/gtest_test_macro_stack_footprint_test.cc" ]
deps = [ ":googletest" ]
}
test("gtest_no_test") {
sources = [ "googletest/googletest/test/gtest_no_test_unittest.cc" ]
sources = [ "$googletest_dir/googletest/test/gtest_no_test_unittest.cc" ]
deps = [ ":googletest" ]
}
test("gtest_param_test") {
sources = [
"googletest/googletest/test/googletest-param-test-test.cc",
"googletest/googletest/test/googletest-param-test-test.h",
"googletest/googletest/test/googletest-param-test2-test.cc",
]
configs -= [
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
"$googletest_dir/googletest/test/googletest-param-test-test.cc",
"$googletest_dir/googletest/test/googletest-param-test-test.h",
"$googletest_dir/googletest/test/googletest-param-test2-test.cc",
]
configs -= [ "$mini_chromium_dir/build:Wexit_time_destructors" ]
configs += [ ":googletest_private_config" ]
deps = [ ":googletest" ]
@ -180,24 +180,25 @@ if (crashpad_is_in_chromium) {
}
test("gtest_premature_exit_test") {
sources = [ "googletest/googletest/test/gtest_premature_exit_test.cc" ]
sources = [ "$googletest_dir/googletest/test/gtest_premature_exit_test.cc" ]
deps = [ ":googletest" ]
}
test("gtest_repeat_test") {
sources = [ "googletest/googletest/test/gtest_repeat_test.cc" ]
sources = [ "$googletest_dir/googletest/test/gtest_repeat_test.cc" ]
configs += [ ":googletest_private_config" ]
deps = [ ":googletest" ]
}
test("gtest_skip_in_environment_setup_test") {
sources =
[ "googletest/googletest/test/gtest_skip_in_environment_setup_test.cc" ]
sources = [
"$googletest_dir/googletest/test/gtest_skip_in_environment_setup_test.cc",
]
deps = [ ":googletest" ]
}
test("gtest_sole_header_test") {
sources = [ "googletest/googletest/test/gtest_sole_header_test.cc" ]
sources = [ "$googletest_dir/googletest/test/gtest_sole_header_test.cc" ]
deps = [
":googletest",
":googletest_main",
@ -205,13 +206,13 @@ if (crashpad_is_in_chromium) {
}
test("gtest_stress_test") {
sources = [ "googletest/googletest/test/gtest_stress_test.cc" ]
sources = [ "$googletest_dir/googletest/test/gtest_stress_test.cc" ]
configs += [ ":googletest_private_config" ]
deps = [ ":googletest" ]
}
test("gtest_unittest_api_test") {
sources = [ "googletest/googletest/test/gtest-unittest-api_test.cc" ]
sources = [ "$googletest_dir/googletest/test/gtest-unittest-api_test.cc" ]
deps = [ ":googletest" ]
}
@ -235,11 +236,11 @@ if (crashpad_is_in_chromium) {
config("googlemock_private_config") {
visibility = [ ":*" ]
include_dirs = [ "googletest/googlemock" ]
include_dirs = [ "$googletest_dir/googlemock" ]
}
config("googlemock_public_config") {
include_dirs = [ "googletest/googlemock/include" ]
include_dirs = [ "$googletest_dir/googlemock/include" ]
if (crashpad_is_clang) {
cflags_cc = [
@ -256,34 +257,32 @@ if (crashpad_is_in_chromium) {
static_library("googlemock") {
testonly = true
sources = [
"googletest/googlemock/include/gmock/gmock-actions.h",
"googletest/googlemock/include/gmock/gmock-cardinalities.h",
"googletest/googlemock/include/gmock/gmock-function-mocker.h",
"googletest/googlemock/include/gmock/gmock-generated-actions.h",
"googletest/googlemock/include/gmock/gmock-matchers.h",
"googletest/googlemock/include/gmock/gmock-more-actions.h",
"googletest/googlemock/include/gmock/gmock-more-matchers.h",
"googletest/googlemock/include/gmock/gmock-nice-strict.h",
"googletest/googlemock/include/gmock/gmock-spec-builders.h",
"googletest/googlemock/include/gmock/gmock.h",
"googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h",
"googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h",
"googletest/googlemock/include/gmock/internal/custom/gmock-port.h",
"googletest/googlemock/include/gmock/internal/gmock-internal-utils.h",
"googletest/googlemock/include/gmock/internal/gmock-port.h",
"googletest/googlemock/include/gmock/internal/gmock-pp.h",
"googletest/googlemock/src/gmock-all.cc",
"googletest/googlemock/src/gmock-cardinalities.cc",
"googletest/googlemock/src/gmock-internal-utils.cc",
"googletest/googlemock/src/gmock-matchers.cc",
"googletest/googlemock/src/gmock-spec-builders.cc",
"googletest/googlemock/src/gmock.cc",
"$googletest_dir/googlemock/include/gmock/gmock-actions.h",
"$googletest_dir/googlemock/include/gmock/gmock-cardinalities.h",
"$googletest_dir/googlemock/include/gmock/gmock-function-mocker.h",
"$googletest_dir/googlemock/include/gmock/gmock-generated-actions.h",
"$googletest_dir/googlemock/include/gmock/gmock-matchers.h",
"$googletest_dir/googlemock/include/gmock/gmock-more-actions.h",
"$googletest_dir/googlemock/include/gmock/gmock-more-matchers.h",
"$googletest_dir/googlemock/include/gmock/gmock-nice-strict.h",
"$googletest_dir/googlemock/include/gmock/gmock-spec-builders.h",
"$googletest_dir/googlemock/include/gmock/gmock.h",
"$googletest_dir/googlemock/include/gmock/internal/custom/gmock-generated-actions.h",
"$googletest_dir/googlemock/include/gmock/internal/custom/gmock-matchers.h",
"$googletest_dir/googlemock/include/gmock/internal/custom/gmock-port.h",
"$googletest_dir/googlemock/include/gmock/internal/gmock-internal-utils.h",
"$googletest_dir/googlemock/include/gmock/internal/gmock-port.h",
"$googletest_dir/googlemock/include/gmock/internal/gmock-pp.h",
"$googletest_dir/googlemock/src/gmock-all.cc",
"$googletest_dir/googlemock/src/gmock-cardinalities.cc",
"$googletest_dir/googlemock/src/gmock-internal-utils.cc",
"$googletest_dir/googlemock/src/gmock-matchers.cc",
"$googletest_dir/googlemock/src/gmock-spec-builders.cc",
"$googletest_dir/googlemock/src/gmock.cc",
]
sources -= [ "googletest/googlemock/src/gmock-all.cc" ]
sources -= [ "$googletest_dir/googlemock/src/gmock-all.cc" ]
public_configs = [ ":googlemock_public_config" ]
configs -= [
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
]
configs -= [ "$mini_chromium_dir/build:Wexit_time_destructors" ]
configs += [ ":googlemock_private_config" ]
deps = [ ":googletest" ]
}
@ -292,7 +291,7 @@ if (crashpad_is_in_chromium) {
# Tests outside of this file should use ../../test:googlemock_main instead.
visibility = [ ":*" ]
testonly = true
sources = [ "googletest/googlemock/src/gmock_main.cc" ]
sources = [ "$googletest_dir/googlemock/src/gmock_main.cc" ]
deps = [
":googlemock",
":googletest",
@ -301,20 +300,20 @@ if (crashpad_is_in_chromium) {
test("gmock_all_test") {
sources = [
"googletest/googlemock/test/gmock-actions_test.cc",
"googletest/googlemock/test/gmock-cardinalities_test.cc",
"googletest/googlemock/test/gmock-function-mocker_test.cc",
"googletest/googlemock/test/gmock-generated-actions_test.cc",
"googletest/googlemock/test/gmock-generated-matchers_test.cc",
"googletest/googlemock/test/gmock-internal-utils_test.cc",
"googletest/googlemock/test/gmock-matchers_test.cc",
"googletest/googlemock/test/gmock-more-actions_test.cc",
"googletest/googlemock/test/gmock-nice-strict_test.cc",
"googletest/googlemock/test/gmock-port_test.cc",
"googletest/googlemock/test/gmock-pp-string_test.cc",
"googletest/googlemock/test/gmock-pp_test.cc",
"googletest/googlemock/test/gmock-spec-builders_test.cc",
"googletest/googlemock/test/gmock_test.cc",
"$googletest_dir/googlemock/test/gmock-actions_test.cc",
"$googletest_dir/googlemock/test/gmock-cardinalities_test.cc",
"$googletest_dir/googlemock/test/gmock-function-mocker_test.cc",
"$googletest_dir/googlemock/test/gmock-generated-actions_test.cc",
"$googletest_dir/googlemock/test/gmock-generated-matchers_test.cc",
"$googletest_dir/googlemock/test/gmock-internal-utils_test.cc",
"$googletest_dir/googlemock/test/gmock-matchers_test.cc",
"$googletest_dir/googlemock/test/gmock-more-actions_test.cc",
"$googletest_dir/googlemock/test/gmock-nice-strict_test.cc",
"$googletest_dir/googlemock/test/gmock-port_test.cc",
"$googletest_dir/googlemock/test/gmock-pp-string_test.cc",
"$googletest_dir/googlemock/test/gmock-pp_test.cc",
"$googletest_dir/googlemock/test/gmock-spec-builders_test.cc",
"$googletest_dir/googlemock/test/gmock_test.cc",
]
configs += [
":googlemock_private_config",
@ -337,9 +336,9 @@ if (crashpad_is_in_chromium) {
test("gmock_link_test") {
sources = [
"googletest/googlemock/test/gmock_link2_test.cc",
"googletest/googlemock/test/gmock_link_test.cc",
"googletest/googlemock/test/gmock_link_test.h",
"$googletest_dir/googlemock/test/gmock_link2_test.cc",
"$googletest_dir/googlemock/test/gmock_link_test.cc",
"$googletest_dir/googlemock/test/gmock_link_test.h",
]
configs += [ ":googlemock_private_config" ]
deps = [
@ -350,10 +349,8 @@ if (crashpad_is_in_chromium) {
}
test("gmock_stress_test") {
sources = [ "googletest/googlemock/test/gmock_stress_test.cc" ]
configs -= [
"//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors",
]
sources = [ "$googletest_dir/googlemock/test/gmock_stress_test.cc" ]
configs -= [ "$mini_chromium_dir/build:Wexit_time_destructors" ]
configs += [ ":googlemock_private_config" ]
deps = [
":googlemock",

View File

@ -19,6 +19,8 @@ group("base") {
public_deps = [ "//base" ]
} else if (crashpad_is_standalone || crashpad_is_in_fuchsia) {
public_deps = [ "mini_chromium/base" ]
} else if (crashpad_is_external) {
public_deps = [ "../../../../mini_chromium/mini_chromium/base" ]
} else if (crashpad_is_in_dart) {
public_deps = [ "//third_party/mini_chromium/mini_chromium/base" ]
}

View File

@ -18,8 +18,10 @@ if (crashpad_is_in_chromium || crashpad_is_in_fuchsia || crashpad_is_in_dart) {
zlib_source = "external"
} else if (!crashpad_is_win && !crashpad_is_fuchsia) {
zlib_source = "system"
} else {
} else if (crashpad_is_standalone) {
zlib_source = "embedded"
} else if (crashpad_is_external) {
zlib_source = "external_with_embedded_build"
}
config("zlib_config") {
@ -30,6 +32,9 @@ config("zlib_config") {
} else if (zlib_source == "embedded") {
defines = [ "CRASHPAD_ZLIB_SOURCE_EMBEDDED" ]
include_dirs = [ "zlib" ]
} else if (zlib_source == "external_with_embedded_build") {
defines = [ "CRASHPAD_ZLIB_SOURCE_EXTERNAL_WITH_EMBEDDED_BUILD" ]
include_dirs = [ "../../../../zlib/src" ]
}
}
@ -43,36 +48,41 @@ if (zlib_source == "external") {
public_configs = [ ":zlib_config" ]
libs = [ "z" ]
}
} else if (zlib_source == "embedded") {
} else if (zlib_source == "embedded" ||
zlib_source == "external_with_embedded_build") {
static_library("zlib") {
if (zlib_source == "embedded") {
zlib_dir = "zlib"
} else if (zlib_source == "external_with_embedded_build") {
zlib_dir = "../../../../zlib/src"
}
sources = [
"zlib/adler32.c",
"zlib/compress.c",
"zlib/crc32.c",
"zlib/crc32.h",
"zlib/deflate.c",
"zlib/deflate.h",
"zlib/gzclose.c",
"zlib/gzguts.h",
"zlib/gzlib.c",
"zlib/gzread.c",
"zlib/gzwrite.c",
"zlib/infback.c",
"zlib/inffast.c",
"zlib/inffast.h",
"zlib/inffixed.h",
"zlib/inflate.c",
"zlib/inflate.h",
"zlib/inftrees.c",
"zlib/inftrees.h",
"zlib/names.h",
"zlib/trees.c",
"zlib/trees.h",
"zlib/uncompr.c",
"zlib/zconf.h",
"zlib/zlib.h",
"zlib/zutil.c",
"zlib/zutil.h",
"$zlib_dir/adler32.c",
"$zlib_dir/compress.c",
"$zlib_dir/crc32.c",
"$zlib_dir/crc32.h",
"$zlib_dir/deflate.c",
"$zlib_dir/deflate.h",
"$zlib_dir/gzclose.c",
"$zlib_dir/gzguts.h",
"$zlib_dir/gzlib.c",
"$zlib_dir/gzread.c",
"$zlib_dir/gzwrite.c",
"$zlib_dir/infback.c",
"$zlib_dir/inffast.c",
"$zlib_dir/inffast.h",
"$zlib_dir/inffixed.h",
"$zlib_dir/inflate.c",
"$zlib_dir/inflate.h",
"$zlib_dir/inftrees.c",
"$zlib_dir/inftrees.h",
"$zlib_dir/trees.c",
"$zlib_dir/trees.h",
"$zlib_dir/uncompr.c",
"$zlib_dir/zconf.h",
"$zlib_dir/zlib.h",
"$zlib_dir/zutil.c",
"$zlib_dir/zutil.h",
"zlib_crashpad.h",
]
@ -102,16 +112,24 @@ if (zlib_source == "external") {
]
}
if (crashpad_is_standalone) {
configs -= [
"//third_party/mini_chromium/mini_chromium/build:Wimplicit_fallthrough",
]
} else if (crashpad_is_external) {
configs -=
[ "//../../mini_chromium/mini_chromium/build:Wimplicit_fallthrough" ]
}
if (zlib_source == "embedded") {
sources += [ "$zlib_dir/names.h" ]
if (current_cpu == "x86" || current_cpu == "x64") {
sources += [
"zlib/crc_folding.c",
"zlib/fill_window_sse.c",
"zlib/x86.c",
"zlib/x86.h",
"$zlib_dir/crc_folding.c",
"$zlib_dir/fill_window_sse.c",
"$zlib_dir/x86.c",
"$zlib_dir/x86.h",
]
if (!crashpad_is_win || crashpad_is_clang) {
cflags += [
@ -123,7 +141,8 @@ if (zlib_source == "external") {
cflags += [ "-Wno-incompatible-pointer-types" ]
}
} else {
sources += [ "zlib/simd_stub.c" ]
sources += [ "$zlib_dir/simd_stub.c" ]
}
}
}
}

View File

@ -20,7 +20,8 @@
// proper <zlib.h> depending on how the build has been configured.
#if defined(CRASHPAD_ZLIB_SOURCE_SYSTEM) || \
defined(CRASHPAD_ZLIB_SOURCE_EXTERNAL)
defined(CRASHPAD_ZLIB_SOURCE_EXTERNAL) || \
defined(CRASHPAD_ZLIB_SOURCE_EXTERNAL_WITH_EMBEDDED_BUILD)
#include <zlib.h>
#elif defined(CRASHPAD_ZLIB_SOURCE_EMBEDDED)
#include "third_party/zlib/zlib/zlib.h"

View File

@ -25,6 +25,8 @@ if (crashpad_is_in_chromium) {
if (crashpad_is_mac || crashpad_is_ios) {
if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) {
import("//build/config/sysroot.gni")
} else if (crashpad_is_external) {
import("../../../mini_chromium/mini_chromium/build/sysroot.gni")
} else {
import("//third_party/mini_chromium/mini_chromium/build/sysroot.gni")
}
@ -627,6 +629,9 @@ if (!crashpad_is_android && !crashpad_is_ios) {
if (crashpad_is_standalone) {
remove_configs = [ "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors" ]
} else if (crashpad_is_external) {
remove_configs =
[ "//../../mini_chromium/mini_chromium/build:Wexit_time_destructors" ]
}
if (crashpad_is_win) {