[third_party] Make mini_chromium relocatable
This will accommodate moving third_party/mini_chromium around.
The default location is unchanged for now.
There are GN variables that may need to be updated when Fuchsia's source
re-organizes its layout:
* mini_chromium_source_parent : this contains a BUILD.gn with groups and
encloses the mini_chromium_source_root. This is controlled by the
structure of the project that depends on this project.
* _mini_chromium_source_root : this is what is normally checked out from
git, the upstream source directory
* mini_chromium_import_root : points inside source_root to make GN files
accessible.
This first step breaks out case logic for "if (crashpad_is_in_fuchsia)"
even if the value is unchanged for now. This will faciliate a smaller
change when Fuchsia re-structures third_party sources.
Change-Id: I38276503604834576fc9eb9404f1332c87bed430
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3062424
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
GitOrigin-RevId: d5d78c14693a52fd3f55aa9a10450e9fbc778df9
diff --git a/build/crashpad_buildconfig.gni b/build/crashpad_buildconfig.gni
index 51b99c3..7244afa 100644
--- a/build/crashpad_buildconfig.gni
+++ b/build/crashpad_buildconfig.gni
@@ -34,6 +34,29 @@
crashpad_is_external = crashpad_dependencies == "external"
crashpad_is_standalone = crashpad_dependencies == "standalone"
+# This is the parent directory that contains the mini_chromium source dir.
+# This variable is not used when crashpad_is_in_chromium.
+if (crashpad_is_external || crashpad_is_in_dart) {
+ # External and Dart SDK builds assume crashpad and mini_chromium are peers.
+ mini_chromium_source_parent = "../mini_chromium"
+} else if (crashpad_is_in_fuchsia) {
+ mini_chromium_source_parent = "../third_party/mini_chromium"
+} else {
+ mini_chromium_source_parent = "../third_party/mini_chromium"
+}
+
+# This is the source directory of mini_chromium (what is checked out).
+_mini_chromium_source_root = "$mini_chromium_source_parent/mini_chromium"
+
+# This references the mini_chromium location for importing GN files.
+if (crashpad_is_external || crashpad_is_in_dart) {
+ mini_chromium_import_root = "../../$_mini_chromium_source_root"
+} else if (crashpad_is_in_fuchsia) {
+ mini_chromium_import_root = _mini_chromium_source_root
+} else {
+ mini_chromium_import_root = _mini_chromium_source_root
+}
+
if (crashpad_is_in_chromium) {
crashpad_is_mac = is_mac
crashpad_is_ios = is_ios
@@ -46,16 +69,8 @@
crashpad_is_clang = is_clang
} else {
- # External and Dart SDK builds assume crashpad and mini_chromium are peers.
- if (crashpad_is_external || crashpad_is_in_dart) {
- import("../../../mini_chromium/mini_chromium/build/compiler.gni")
- import("../../../mini_chromium/mini_chromium/build/platform.gni")
- } else {
- # Both standalone and in Fuchsia tree use mini_chromium, and it's mapped
- # into the same location in both cases.
- import("../third_party/mini_chromium/mini_chromium/build/compiler.gni")
- import("../third_party/mini_chromium/mini_chromium/build/platform.gni")
- }
+ import("$mini_chromium_import_root/build/compiler.gni")
+
crashpad_is_mac = mini_chromium_is_mac
crashpad_is_ios = mini_chromium_is_ios
crashpad_is_win = mini_chromium_is_win
diff --git a/client/BUILD.gn b/client/BUILD.gn
index a53ac46..5cf5532 100644
--- a/client/BUILD.gn
+++ b/client/BUILD.gn
@@ -66,13 +66,13 @@
public_deps = [
":common",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
deps = [
":common",
- "../third_party/mini_chromium:chromeos_buildflags",
+ "$mini_chromium_source_parent:chromeos_buildflags",
]
if (crashpad_is_win) {
@@ -132,7 +132,7 @@
public_configs = [ "..:crashpad_config" ]
public_deps = [
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
deps = [ "../util" ]
@@ -181,7 +181,7 @@
"../test",
"../third_party/googletest:googlemock",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
diff --git a/compat/BUILD.gn b/compat/BUILD.gn
index 91c437d..8d76325 100644
--- a/compat/BUILD.gn
+++ b/compat/BUILD.gn
@@ -145,7 +145,7 @@
]
if (!crashpad_is_win) {
- public_deps = [ "../third_party/mini_chromium:base" ]
+ public_deps = [ "$mini_chromium_source_parent:base" ]
}
deps = [ "../util:no_cfi_icall" ]
diff --git a/minidump/BUILD.gn b/minidump/BUILD.gn
index 459fd6b..515ec0f 100644
--- a/minidump/BUILD.gn
+++ b/minidump/BUILD.gn
@@ -75,7 +75,7 @@
deps = [
"../snapshot",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -101,7 +101,7 @@
deps = [
"../snapshot:context",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -136,7 +136,7 @@
"../snapshot:test_support",
"../test",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -179,7 +179,7 @@
"../snapshot:test_support",
"../test",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
diff --git a/snapshot/BUILD.gn b/snapshot/BUILD.gn
index 2d613b6..8b26e14 100644
--- a/snapshot/BUILD.gn
+++ b/snapshot/BUILD.gn
@@ -247,7 +247,7 @@
"../client:common",
"../compat",
"../minidump:format",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -269,7 +269,7 @@
public_configs = [ "..:crashpad_config" ]
deps = [
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -284,7 +284,7 @@
deps = [
":snapshot",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util:util",
]
seed_corpus = "elf/elf_image_reader_fuzzer_corpus"
@@ -319,7 +319,7 @@
deps = [
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -435,7 +435,7 @@
"../test",
"../third_party/googletest:googlemock",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -490,7 +490,7 @@
sources = [ "crashpad_info_client_options_test_module.cc" ]
deps = [
"../client",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
]
}
@@ -505,7 +505,7 @@
}
defines = [ "CRASHPAD_INFO_SIZE_TEST_MODULE_LARGE" ]
- deps += [ "../third_party/mini_chromium:base" ]
+ deps += [ "$mini_chromium_source_parent:base" ]
}
crashpad_loadable_module("crashpad_snapshot_test_module_small") {
@@ -519,7 +519,7 @@
}
defines = [ "CRASHPAD_INFO_SIZE_TEST_MODULE_SMALL" ]
- deps += [ "../third_party/mini_chromium:base" ]
+ deps += [ "$mini_chromium_source_parent:base" ]
}
if ((crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) &&
@@ -554,7 +554,7 @@
deps = [
"../client",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
]
}
@@ -564,7 +564,7 @@
deps = [
"../client",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -575,7 +575,7 @@
deps = [
"../client",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -586,7 +586,7 @@
deps = [
"../client",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
]
}
@@ -596,7 +596,7 @@
deps = [
"../client",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
if (crashpad_is_in_chromium) {
@@ -614,7 +614,7 @@
sources = [ "win/crashpad_snapshot_test_image_reader_module.cc" ]
deps = [
"../client",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
]
if (crashpad_is_in_chromium) {
if (symbol_level == 0) {
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 9348574..dfc84d1 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -124,7 +124,7 @@
deps = [
"../compat",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -204,7 +204,7 @@
"../compat",
"../third_party/googletest:googlemock",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -219,7 +219,7 @@
crashpad_executable("crashpad_test_test_multiprocess_exec_test_child") {
sources = [ "multiprocess_exec_test_child.cc" ]
- deps = [ "../third_party/mini_chromium:base" ]
+ deps = [ "$mini_chromium_source_parent:base" ]
}
}
@@ -232,8 +232,8 @@
":test",
"../third_party/googletest:googlemock",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
- "../third_party/mini_chromium:base_test_support",
+ "$mini_chromium_source_parent:base",
+ "$mini_chromium_source_parent:base_test_support",
]
if (crashpad_is_android) {
deps += [ "../util" ]
@@ -251,8 +251,8 @@
deps = [
":test",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
- "../third_party/mini_chromium:base_test_support",
+ "$mini_chromium_source_parent:base",
+ "$mini_chromium_source_parent:base_test_support",
]
if (crashpad_is_android) {
deps += [ "../util" ]
diff --git a/test/ios/BUILD.gn b/test/ios/BUILD.gn
index 59dd35d..4ba4ec4 100644
--- a/test/ios/BUILD.gn
+++ b/test/ios/BUILD.gn
@@ -41,7 +41,7 @@
"../../build:ios_enable_arc",
"../../build:ios_xctest",
"../../test/ios:google_test_runner_shared_headers",
- "../../third_party/mini_chromium:base",
+ "../$mini_chromium_source_parent:base",
]
frameworks = [ "UIKit.framework" ]
}
@@ -57,7 +57,7 @@
":google_test_runner_shared_headers",
"../../build:ios_enable_arc",
"../../third_party/googletest:googletest",
- "../../third_party/mini_chromium:base",
+ "../$mini_chromium_source_parent:base",
]
frameworks = [ "UIKit.framework" ]
}
diff --git a/third_party/mini_chromium/BUILD.gn b/third_party/mini_chromium/BUILD.gn
index c1eb588..2666111 100644
--- a/third_party/mini_chromium/BUILD.gn
+++ b/third_party/mini_chromium/BUILD.gn
@@ -17,7 +17,9 @@
group("base") {
if (crashpad_is_in_chromium) {
public_deps = [ "//base" ]
- } else if (crashpad_is_standalone || crashpad_is_in_fuchsia) {
+ } else if (crashpad_is_standalone) {
+ public_deps = [ "mini_chromium/base" ]
+ } else if (crashpad_is_in_fuchsia) {
public_deps = [ "mini_chromium/base" ]
} else if (crashpad_is_external) {
public_deps = [ "../../../../mini_chromium/mini_chromium/base" ]
diff --git a/tools/BUILD.gn b/tools/BUILD.gn
index 7da109b..91e20a0 100644
--- a/tools/BUILD.gn
+++ b/tools/BUILD.gn
@@ -22,7 +22,7 @@
public_configs = [ "..:crashpad_config" ]
- deps = [ "../third_party/mini_chromium:base" ]
+ deps = [ "$mini_chromium_source_parent:base" ]
}
if (!crashpad_is_ios) {
@@ -34,7 +34,7 @@
"../build:default_exe_manifest_win",
"../client",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -46,7 +46,7 @@
":tool_support",
"../build:default_exe_manifest_win",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -57,7 +57,7 @@
deps = [
":tool_support",
"../build:default_exe_manifest_win",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -72,7 +72,7 @@
"../compat",
"../minidump",
"../snapshot",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
@@ -104,7 +104,7 @@
":tool_support",
"../client",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -117,7 +117,7 @@
deps = [
":tool_support",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -138,7 +138,7 @@
deps = [
":tool_support",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
@@ -154,7 +154,7 @@
deps = [
":tool_support",
"../compat",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../util",
]
}
diff --git a/util/BUILD.gn b/util/BUILD.gn
index d9a33a2..dfb1a9a 100644
--- a/util/BUILD.gn
+++ b/util/BUILD.gn
@@ -22,10 +22,8 @@
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")
+ import("$mini_chromium_import_root/build/sysroot.gni")
}
action_foreach("mig") {
@@ -610,8 +608,8 @@
]
deps += [
- "../third_party/mini_chromium:base",
- "../third_party/mini_chromium:chromeos_buildflags",
+ "$mini_chromium_source_parent:base",
+ "$mini_chromium_source_parent:chromeos_buildflags",
]
if (crashpad_is_mac || crashpad_is_ios) {
@@ -664,11 +662,12 @@
deps = [
":util",
"../third_party/cpp-httplib",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../third_party/zlib",
"../tools:tool_support",
]
+ # TODO(b/189353575): make these relocatable using $mini_chromium_ variables
if (crashpad_is_standalone) {
remove_configs = [ "//third_party/mini_chromium/mini_chromium/build/config:Wexit_time_destructors" ]
} else if (crashpad_is_external) {
@@ -699,7 +698,7 @@
source_set("no_cfi_icall") {
sources = [ "misc/no_cfi_icall.h" ]
public_configs = [ "..:crashpad_config" ]
- public_deps = [ "../third_party/mini_chromium:build" ]
+ public_deps = [ "$mini_chromium_source_parent:build" ]
}
source_set("util_test") {
@@ -876,7 +875,7 @@
"../test",
"../third_party/googletest:googlemock",
"../third_party/googletest:googletest",
- "../third_party/mini_chromium:base",
+ "$mini_chromium_source_parent:base",
"../third_party/zlib",
]