blob: 3e06d60f41add8c6edb6f882696da39d2332721f [file] [log] [blame]
Oystein Eftevaagdd727e42017-12-05 08:49:55 -08001# Copyright (C) 2017 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15import("//build_overrides/build.gni")
16
Primiano Tucci4c5efa42018-10-23 13:15:13 +010017# Summary of our build configurations:
18
19# 1. Standalone builds
20# perfetto_build_standalone = true
21# perfetto_build_with_embedder = false
22# perfetto_build_with_android = false
23# build_with_chromium = false
24
25# 2. Android tree builds
26# perfetto_build_standalone = false
27# perfetto_build_with_android = true
28# perfetto_build_with_embedder = false
29# build_with_chromium = false
30
31# 3. Chromium tree builds
32# perfetto_build_standalone = false
33# perfetto_build_with_android = false
34# perfetto_build_with_embedder = true
35# build_with_chromium = true
36
37# 4. Builds in other embedder trees
38# perfetto_build_standalone = false
39# perfetto_build_with_android = false
40# perfetto_build_with_embedder = true
41# build_with_chromium = false
42
43# Note that |build_with_chromium| is a global convention used by several
44# projects, set outside of our control.
45
Primiano Tucci6d848532018-01-17 10:32:33 +000046declare_args() {
47 # The Android blueprint file generator overrides this to true.
Primiano Tucci4c5efa42018-10-23 13:15:13 +010048 perfetto_build_with_android = false
Lalit Magantid0e76792018-02-12 14:25:01 +000049
50 # Whether the ftrace producer and the service should be started
51 # by the integration test or assumed to be running.
52 start_daemons_for_testing = true
Primiano Tucci6d848532018-01-17 10:32:33 +000053}
54
Primiano Tucci4c5efa42018-10-23 13:15:13 +010055if (!defined(perfetto_build_with_embedder)) {
56 perfetto_build_with_embedder = build_with_chromium
57}
Primiano Tucci4bdc4c42018-05-10 15:52:33 +010058
Primiano Tucci4c5efa42018-10-23 13:15:13 +010059perfetto_build_standalone =
60 !perfetto_build_with_android && !build_with_chromium &&
61 !perfetto_build_with_embedder
62
63if (perfetto_build_standalone || perfetto_build_with_android) {
Oystein Eftevaagdd727e42017-12-05 08:49:55 -080064 perfetto_root_path = "//"
Primiano Tucci4c5efa42018-10-23 13:15:13 +010065} else if (!defined(perfetto_root_path)) {
Oystein Eftevaagdd727e42017-12-05 08:49:55 -080066 perfetto_root_path = "//third_party/perfetto/"
67}
Lalit Magantid0e76792018-02-12 14:25:01 +000068
69# If we're building in the Android tree, we expect that the testing infra
70# will start the binaries in the system image before the tests are run.
Primiano Tucci4c5efa42018-10-23 13:15:13 +010071if (perfetto_build_with_android) {
Lalit Magantid0e76792018-02-12 14:25:01 +000072 start_daemons_for_testing = false
73}
Primiano Tucci4c5efa42018-10-23 13:15:13 +010074
75# Cross-checks.
76
77# If |build_with_chromium| is true then also |perfetto_build_with_embedder|
78# must be true
79assert(!build_with_chromium || perfetto_build_with_embedder)