| # Copyright 2024 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # This is the BUILDCONFIG for building partition_alloc as a standalone project. |
| # |
| # The config is based on: |
| # - skia: //gn/BUILDCONFIG.gn |
| # - chromium: //build/config/BUILDCONFIG.gn |
| |
| build_with_chromium = false |
| is_asan = false |
| |
| # It's best to keep the names and defaults of is_foo flags consistent with: |
| # - Chrome |
| # - Skia. |
| |
| declare_args() { |
| is_official_build = false |
| is_component_build = false |
| dcheck_always_on = true |
| } |
| |
| declare_args() { |
| is_debug = !is_official_build |
| } |
| |
| # Platform detection defaults: |
| if (target_os == "") { |
| target_os = host_os |
| } |
| if (current_os == "") { |
| current_os = target_os |
| } |
| if (target_cpu == "") { |
| target_cpu = host_cpu |
| } |
| if (target_cpu == "x86_64") { |
| target_cpu = "x64" |
| } |
| if (current_cpu == "") { |
| current_cpu = target_cpu |
| } |
| |
| is_android = current_os == "android" |
| is_chromeos = false |
| is_fuchsia = current_os == "fuchsia" |
| is_ios = current_os == "ios" |
| is_linux = current_os == "linux" |
| is_mac = current_os == "mac" |
| is_nacl = false |
| is_win = current_os == "win" || current_os == "winuwp" |
| is_cast_android = false |
| is_castos = false |
| is_chromeos_ash = false |
| is_cronet_build = false |
| enable_expensive_dchecks = false |
| dcheck_is_configurable = false |
| can_unwind_with_frame_pointers = false |
| is_posix = !is_win && !is_fuchsia |
| is_apple = is_mac || is_ios |
| |
| # TODO(crbug.com/41481467): Consider expanding the standalone configuration for |
| # additional OSes. |
| assert(is_linux, "PartitionAlloc standalone only support Linux for now") |
| is_clang = true |
| |
| # A component is either: |
| # - A static library (is_component_build=false) |
| # - A shared library (is_component_build=true) |
| template("component") { |
| if (is_component_build) { |
| _component_mode = "shared_library" |
| } else { |
| _component_mode = "static_library" |
| } |
| |
| target(_component_mode, target_name) { |
| forward_variables_from(invoker, "*") |
| } |
| } |
| |
| # Default configs |
| default_configs = [ |
| "//gn/partition_alloc:default", |
| "//gn/partition_alloc:no_exceptions", |
| "//gn/partition_alloc:no_rtti", |
| ] |
| |
| if (!is_debug) { |
| default_configs += [ |
| "//gn/partition_alloc:optimize", |
| "//gn/partition_alloc:NDEBUG", |
| ] |
| } |
| |
| # GCC-like toolchains, including Clang. |
| set_default_toolchain("//gn/toolchain:clang") |
| default_toolchain_name = "clang" |
| |
| set_defaults("source_set") { |
| configs = default_configs |
| } |
| |
| set_defaults("component") { |
| configs = default_configs |
| } |