15f9996aaSopenharmony_ci# Copyright (c) 2013 The Chromium Authors. All rights reserved. 25f9996aaSopenharmony_ci# Use of this source code is governed by a BSD-style license that can be 35f9996aaSopenharmony_ci# found in the LICENSE file. 45f9996aaSopenharmony_ci 55f9996aaSopenharmony_ciimport("//build/config/allocator.gni") 65f9996aaSopenharmony_ciimport("//build/config/c++/c++.gni") 75f9996aaSopenharmony_ciimport("//build/config/coverage/coverage.gni") 85f9996aaSopenharmony_ciimport("//build/config/features.gni") 95f9996aaSopenharmony_ci 105f9996aaSopenharmony_ciimport("//build/config/sanitizers/sanitizers.gni") 115f9996aaSopenharmony_ci 125f9996aaSopenharmony_cideclare_args() { 135f9996aaSopenharmony_ci # When set (the default) enables C++ iterator debugging in debug builds. 145f9996aaSopenharmony_ci # Iterator debugging is always off in release builds (technically, this flag 155f9996aaSopenharmony_ci # affects the "debug" config, which is always available but applied by 165f9996aaSopenharmony_ci # default only in debug builds). 175f9996aaSopenharmony_ci # 185f9996aaSopenharmony_ci # Iterator debugging is generally useful for catching bugs. But it can 195f9996aaSopenharmony_ci # introduce extra locking to check the state of an iterator against the state 205f9996aaSopenharmony_ci # of the current object. For iterator- and thread-heavy code, this can 215f9996aaSopenharmony_ci # significantly slow execution. 225f9996aaSopenharmony_ci enable_iterator_debugging = true 235f9996aaSopenharmony_ci enable_predefined_macro = false 245f9996aaSopenharmony_ci} 255f9996aaSopenharmony_ci 265f9996aaSopenharmony_ci# ============================================== 275f9996aaSopenharmony_ci# PLEASE DO NOT ADD MORE THINGS TO THIS LIST 285f9996aaSopenharmony_ci# ============================================== 295f9996aaSopenharmony_ci# 305f9996aaSopenharmony_ci# Legacy feature defines applied to all targets. 315f9996aaSopenharmony_ci# 325f9996aaSopenharmony_ci# These are applied to every single compile in the build and most of them are 335f9996aaSopenharmony_ci# only relevant to a few files. This bloats command lines and causes 345f9996aaSopenharmony_ci# unnecessary recompiles when flags are flipped. 355f9996aaSopenharmony_ci# 365f9996aaSopenharmony_ci# To pass defines to source code from the build, use the buildflag system which 375f9996aaSopenharmony_ci# will write headers containing the defines you need. This isolates the define 385f9996aaSopenharmony_ci# and means its definition can participate in the build graph, only recompiling 395f9996aaSopenharmony_ci# things when it actually changes. 405f9996aaSopenharmony_ci# 415f9996aaSopenharmony_ci# See //build/buildflag_header.gni for instructions on generating headers. 425f9996aaSopenharmony_ci# 435f9996aaSopenharmony_ci# This will also allow you to scope your build flag to a BUILD.gn file (or a 445f9996aaSopenharmony_ci# .gni file if you need it from more than one place) rather than making global 455f9996aaSopenharmony_ci# flags. See //build/config/BUILDCONFIG.gn for advice on where to define 465f9996aaSopenharmony_ci# build flags. 475f9996aaSopenharmony_ciconfig("feature_flags") { 485f9996aaSopenharmony_ci # Don't use deprecated V8 APIs anywhere. 495f9996aaSopenharmony_ci defines = [ "V8_DEPRECATION_WARNINGS" ] 505f9996aaSopenharmony_ci if (use_udev) { 515f9996aaSopenharmony_ci defines += [ "USE_UDEV" ] 525f9996aaSopenharmony_ci } 535f9996aaSopenharmony_ci if (is_win || is_linux) { 545f9996aaSopenharmony_ci defines += [ "USE_AURA=1" ] 555f9996aaSopenharmony_ci } 565f9996aaSopenharmony_ci if (is_linux) { 575f9996aaSopenharmony_ci defines += [ 585f9996aaSopenharmony_ci "USE_GLIB=1", 595f9996aaSopenharmony_ci "USE_NSS_CERTS=1", 605f9996aaSopenharmony_ci "USE_X11=1", 615f9996aaSopenharmony_ci ] 625f9996aaSopenharmony_ci } 635f9996aaSopenharmony_ci 645f9996aaSopenharmony_ci if ((is_asan || is_lsan || is_tsan || is_msan) && using_sanitizer) { 655f9996aaSopenharmony_ci defines += [ 665f9996aaSopenharmony_ci "MEMORY_TOOL_REPLACES_ALLOCATOR", 675f9996aaSopenharmony_ci "MEMORY_SANITIZER_INITIAL_SIZE", 685f9996aaSopenharmony_ci ] 695f9996aaSopenharmony_ci } 705f9996aaSopenharmony_ci if (is_asan && using_sanitizer) { 715f9996aaSopenharmony_ci defines += [ "ADDRESS_SANITIZER" ] 725f9996aaSopenharmony_ci } 735f9996aaSopenharmony_ci if (is_lsan) { 745f9996aaSopenharmony_ci defines += [ "LEAK_SANITIZER" ] 755f9996aaSopenharmony_ci } 765f9996aaSopenharmony_ci if (is_tsan) { 775f9996aaSopenharmony_ci defines += [ 785f9996aaSopenharmony_ci "THREAD_SANITIZER", 795f9996aaSopenharmony_ci "DYNAMIC_ANNOTATIONS_EXTERNAL_IMPL=1", 805f9996aaSopenharmony_ci "WTF_USE_DYNAMIC_ANNOTATIONS_NOIMPL=1", 815f9996aaSopenharmony_ci ] 825f9996aaSopenharmony_ci } 835f9996aaSopenharmony_ci if (is_msan) { 845f9996aaSopenharmony_ci defines += [ "MEMORY_SANITIZER" ] 855f9996aaSopenharmony_ci } 865f9996aaSopenharmony_ci if (is_ubsan || is_ubsan_null || is_ubsan_vptr || is_ubsan_security) { 875f9996aaSopenharmony_ci defines += [ "UNDEFINED_SANITIZER" ] 885f9996aaSopenharmony_ci } 895f9996aaSopenharmony_ci if (use_clang_coverage) { 905f9996aaSopenharmony_ci defines += [ "CLANG_COVERAGE" ] 915f9996aaSopenharmony_ci } 925f9996aaSopenharmony_ci if (is_official_build) { 935f9996aaSopenharmony_ci defines += [ "OFFICIAL_BUILD" ] 945f9996aaSopenharmony_ci } 955f9996aaSopenharmony_ci 965f9996aaSopenharmony_ci # ============================================== 975f9996aaSopenharmony_ci # PLEASE DO NOT ADD MORE THINGS TO THIS LIST 985f9996aaSopenharmony_ci # ============================================== 995f9996aaSopenharmony_ci # 1005f9996aaSopenharmony_ci # See the comment at the top. 1015f9996aaSopenharmony_ci} 1025f9996aaSopenharmony_ci 1035f9996aaSopenharmony_ci# Debug/release ---------------------------------------------------------------- 1045f9996aaSopenharmony_ci 1055f9996aaSopenharmony_ciconfig("debug") { 1065f9996aaSopenharmony_ci defines = [ 1075f9996aaSopenharmony_ci "DYNAMIC_ANNOTATIONS_ENABLED=1", 1085f9996aaSopenharmony_ci "WTF_USE_DYNAMIC_ANNOTATIONS=1", 1095f9996aaSopenharmony_ci ] 1105f9996aaSopenharmony_ci 1115f9996aaSopenharmony_ci if (is_nacl) { 1125f9996aaSopenharmony_ci defines += [ "DYNAMIC_ANNOTATIONS_PREFIX=NACL_" ] 1135f9996aaSopenharmony_ci } 1145f9996aaSopenharmony_ci 1155f9996aaSopenharmony_ci if (is_win) { 1165f9996aaSopenharmony_ci if (!enable_iterator_debugging) { 1175f9996aaSopenharmony_ci # Iterator debugging is enabled by default by the compiler on debug 1185f9996aaSopenharmony_ci # builds, and we have to tell it to turn it off. 1195f9996aaSopenharmony_ci defines += [ "_HAS_ITERATOR_DEBUGGING=0" ] 1205f9996aaSopenharmony_ci } 1215f9996aaSopenharmony_ci } else if (is_linux && current_cpu == "x64" && enable_iterator_debugging) { 1225f9996aaSopenharmony_ci # Enable libstdc++ debugging facilities to help catch problems early, see 1235f9996aaSopenharmony_ci # http://crbug.com/65151 . 1245f9996aaSopenharmony_ci # defines += [ "_GLIBCXX_DEBUG=1" ] 1255f9996aaSopenharmony_ci } 1265f9996aaSopenharmony_ci} 1275f9996aaSopenharmony_ci 1285f9996aaSopenharmony_ciconfig("release") { 1295f9996aaSopenharmony_ci defines = [ "NDEBUG" ] 1305f9996aaSopenharmony_ci 1315f9996aaSopenharmony_ci # Sanitizers. 1325f9996aaSopenharmony_ci if (is_tsan) { 1335f9996aaSopenharmony_ci defines += [ 1345f9996aaSopenharmony_ci "DYNAMIC_ANNOTATIONS_ENABLED=1", 1355f9996aaSopenharmony_ci "WTF_USE_DYNAMIC_ANNOTATIONS=1", 1365f9996aaSopenharmony_ci ] 1375f9996aaSopenharmony_ci } else { 1385f9996aaSopenharmony_ci defines += [ "NVALGRIND" ] 1395f9996aaSopenharmony_ci if (!is_nacl) { 1405f9996aaSopenharmony_ci # NaCl always enables dynamic annotations. Currently this value is set to 1415f9996aaSopenharmony_ci # 1 for all .nexes. 1425f9996aaSopenharmony_ci defines += [ "DYNAMIC_ANNOTATIONS_ENABLED=0" ] 1435f9996aaSopenharmony_ci } 1445f9996aaSopenharmony_ci } 1455f9996aaSopenharmony_ci} 1465f9996aaSopenharmony_ci 1475f9996aaSopenharmony_ci# Default libraries ------------------------------------------------------------ 1485f9996aaSopenharmony_ci 1495f9996aaSopenharmony_ci# This config defines the default libraries applied to all targets. 1505f9996aaSopenharmony_ciconfig("default_libs") { 1515f9996aaSopenharmony_ci if (is_win) { 1525f9996aaSopenharmony_ci libs = [ 1535f9996aaSopenharmony_ci "advapi32.lib", 1545f9996aaSopenharmony_ci "comdlg32.lib", 1555f9996aaSopenharmony_ci "dbghelp.lib", 1565f9996aaSopenharmony_ci "dnsapi.lib", 1575f9996aaSopenharmony_ci "gdi32.lib", 1585f9996aaSopenharmony_ci "msimg32.lib", 1595f9996aaSopenharmony_ci "odbc32.lib", 1605f9996aaSopenharmony_ci "odbccp32.lib", 1615f9996aaSopenharmony_ci "oleaut32.lib", 1625f9996aaSopenharmony_ci "psapi.lib", 1635f9996aaSopenharmony_ci "shell32.lib", 1645f9996aaSopenharmony_ci "shlwapi.lib", 1655f9996aaSopenharmony_ci "user32.lib", 1665f9996aaSopenharmony_ci "usp10.lib", 1675f9996aaSopenharmony_ci "uuid.lib", 1685f9996aaSopenharmony_ci "version.lib", 1695f9996aaSopenharmony_ci "wininet.lib", 1705f9996aaSopenharmony_ci "winmm.lib", 1715f9996aaSopenharmony_ci "winspool.lib", 1725f9996aaSopenharmony_ci "ws2_32.lib", 1735f9996aaSopenharmony_ci 1745f9996aaSopenharmony_ci # Please don't add more stuff here. We should actually be making this 1755f9996aaSopenharmony_ci # list smaller, since all common things should be covered. If you need 1765f9996aaSopenharmony_ci # some extra libraries, please just add a libs = [ "foo.lib" ] to your 1775f9996aaSopenharmony_ci # target that needs it. 1785f9996aaSopenharmony_ci ] 1795f9996aaSopenharmony_ci if (current_os == "winuwp") { 1805f9996aaSopenharmony_ci # These libraries are needed for Windows UWP (i.e. store apps). 1815f9996aaSopenharmony_ci libs += [ 1825f9996aaSopenharmony_ci "dloadhelper.lib", 1835f9996aaSopenharmony_ci "WindowsApp.lib", 1845f9996aaSopenharmony_ci ] 1855f9996aaSopenharmony_ci } else { 1865f9996aaSopenharmony_ci # These libraries are not compatible with Windows UWP (i.e. store apps.) 1875f9996aaSopenharmony_ci libs += [ 1885f9996aaSopenharmony_ci "delayimp.lib", 1895f9996aaSopenharmony_ci "kernel32.lib", 1905f9996aaSopenharmony_ci "ole32.lib", 1915f9996aaSopenharmony_ci ] 1925f9996aaSopenharmony_ci } 1935f9996aaSopenharmony_ci } else if (is_ohos) { 1945f9996aaSopenharmony_ci libs = [ 1955f9996aaSopenharmony_ci "dl", 1965f9996aaSopenharmony_ci "m", 1975f9996aaSopenharmony_ci ] 1985f9996aaSopenharmony_ci } else if (is_mac) { 1995f9996aaSopenharmony_ci # Targets should choose to explicitly link frameworks they require. Since 2005f9996aaSopenharmony_ci # linking can have run-time side effects, nothing should be listed here. 2015f9996aaSopenharmony_ci libs = [] 2025f9996aaSopenharmony_ci } else if (is_linux) { 2035f9996aaSopenharmony_ci libs = [ 2045f9996aaSopenharmony_ci "dl", 2055f9996aaSopenharmony_ci "pthread", 2065f9996aaSopenharmony_ci "rt", 2075f9996aaSopenharmony_ci ] 2085f9996aaSopenharmony_ci } 2095f9996aaSopenharmony_ci} 2105f9996aaSopenharmony_ci 2115f9996aaSopenharmony_ci# Only //build/config/BUILDCONFIG.gn should reference this. 2125f9996aaSopenharmony_cigroup("common_deps") { 2135f9996aaSopenharmony_ci public_deps = [] 2145f9996aaSopenharmony_ci 2155f9996aaSopenharmony_ci if (using_sanitizer) { 2165f9996aaSopenharmony_ci public_deps += [ "//build/config/sanitizers:deps" ] 2175f9996aaSopenharmony_ci } 2185f9996aaSopenharmony_ci 2195f9996aaSopenharmony_ci if (use_custom_libcxx) { 2205f9996aaSopenharmony_ci if (is_double_framework) { 2215f9996aaSopenharmony_ci public_deps += [ "${asdk_libs_dir}/ndk/libcxx:libcxx" ] 2225f9996aaSopenharmony_ci } else { 2235f9996aaSopenharmony_ci public_deps += [ "//third_party/libcxx:libcxx" ] 2245f9996aaSopenharmony_ci } 2255f9996aaSopenharmony_ci } 2265f9996aaSopenharmony_ci 2275f9996aaSopenharmony_ci if (use_afl) { 2285f9996aaSopenharmony_ci public_deps += [ "//third_party/afl" ] 2295f9996aaSopenharmony_ci } 2305f9996aaSopenharmony_ci 2315f9996aaSopenharmony_ci if (is_ohos && use_order_profiling) { 2325f9996aaSopenharmony_ci public_deps += [] 2335f9996aaSopenharmony_ci } 2345f9996aaSopenharmony_ci 2355f9996aaSopenharmony_ci if (use_musl && current_toolchain != host_toolchain && !is_mingw) { 2365f9996aaSopenharmony_ci public_deps += [ "//third_party/musl:soft_shared_libs" ] 2375f9996aaSopenharmony_ci } 2385f9996aaSopenharmony_ci 2395f9996aaSopenharmony_ci if (is_ohos && ohos_indep_compiler_enable && 2405f9996aaSopenharmony_ci current_toolchain != host_toolchain) { 2415f9996aaSopenharmony_ci deps = [ "//build/common/ubsan:ubsan" ] 2425f9996aaSopenharmony_ci } 2435f9996aaSopenharmony_ci} 2445f9996aaSopenharmony_ci 2455f9996aaSopenharmony_cigroup("executable_deps") { 2465f9996aaSopenharmony_ci public_deps = [ ":common_deps" ] 2475f9996aaSopenharmony_ci if (export_libcxxabi_from_executables) { 2485f9996aaSopenharmony_ci if (!is_double_framework) { 2495f9996aaSopenharmony_ci public_deps += [ "//third_party/libcxxabi:libc++abi" ] 2505f9996aaSopenharmony_ci } 2515f9996aaSopenharmony_ci } 2525f9996aaSopenharmony_ci} 2535f9996aaSopenharmony_ci 2545f9996aaSopenharmony_cigroup("loadable_module_deps") { 2555f9996aaSopenharmony_ci public_deps = [ ":common_deps" ] 2565f9996aaSopenharmony_ci} 2575f9996aaSopenharmony_ci 2585f9996aaSopenharmony_cigroup("shared_library_deps") { 2595f9996aaSopenharmony_ci public_deps = [ ":common_deps" ] 2605f9996aaSopenharmony_ci} 2615f9996aaSopenharmony_ci 2625f9996aaSopenharmony_cigroup("rust_library_deps") { 2635f9996aaSopenharmony_ci public_deps = [ ":common_deps" ] 2645f9996aaSopenharmony_ci} 2655f9996aaSopenharmony_ci 2665f9996aaSopenharmony_cigroup("rust_proc_macro_deps") { 2675f9996aaSopenharmony_ci public_deps = [ ":common_deps" ] 2685f9996aaSopenharmony_ci} 2695f9996aaSopenharmony_ci 2705f9996aaSopenharmony_cigroup("static_library_deps") { 2715f9996aaSopenharmony_ci if (use_musl && current_toolchain != host_toolchain && !is_mingw) { 2725f9996aaSopenharmony_ci public_deps = [ "//third_party/musl:musl_headers" ] 2735f9996aaSopenharmony_ci } 2745f9996aaSopenharmony_ci} 2755f9996aaSopenharmony_ci 2765f9996aaSopenharmony_cigroup("source_set_deps") { 2775f9996aaSopenharmony_ci if (use_musl && current_toolchain != host_toolchain && !is_mingw) { 2785f9996aaSopenharmony_ci public_deps = [ "//third_party/musl:musl_headers" ] 2795f9996aaSopenharmony_ci } 2805f9996aaSopenharmony_ci} 2815f9996aaSopenharmony_ci 2825f9996aaSopenharmony_ci# Executable configs ----------------------------------------------------------- 2835f9996aaSopenharmony_ci 2845f9996aaSopenharmony_ci# Windows linker setup for EXEs and DLLs. 2855f9996aaSopenharmony_ciif (is_win) { 2865f9996aaSopenharmony_ci _windows_linker_configs = [ 2875f9996aaSopenharmony_ci "//build/config/win:sdk_link", 2885f9996aaSopenharmony_ci "//build/config/win:common_linker_setup", 2895f9996aaSopenharmony_ci ] 2905f9996aaSopenharmony_ci} 2915f9996aaSopenharmony_ci 2925f9996aaSopenharmony_ci# This config defines the configs applied to all executables. 2935f9996aaSopenharmony_ciconfig("executable_config") { 2945f9996aaSopenharmony_ci configs = [] 2955f9996aaSopenharmony_ci 2965f9996aaSopenharmony_ci if (is_win) { 2975f9996aaSopenharmony_ci configs += _windows_linker_configs 2985f9996aaSopenharmony_ci 2995f9996aaSopenharmony_ci # Currently only turn on linker CFI for executables. 3005f9996aaSopenharmony_ci configs += [ "//build/config/win:cfi_linker" ] 3015f9996aaSopenharmony_ci } else if (is_mac) { 3025f9996aaSopenharmony_ci configs += [ "//build/config/mac:mac_dynamic_flags" ] 3035f9996aaSopenharmony_ci } else if (is_linux || is_ohos || current_os == "aix") { 3045f9996aaSopenharmony_ci configs += [ "//build/config/gcc:executable_ldconfig" ] 3055f9996aaSopenharmony_ci if (is_ohos) { 3065f9996aaSopenharmony_ci configs += [ "//build/config/ohos:executable_config" ] 3075f9996aaSopenharmony_ci } else if (is_linux) { 3085f9996aaSopenharmony_ci configs += [ "//build/config/linux:executable_config" ] 3095f9996aaSopenharmony_ci } 3105f9996aaSopenharmony_ci } 3115f9996aaSopenharmony_ci 3125f9996aaSopenharmony_ci # If we're using the prebuilt instrumented libraries with the sanitizers, we 3135f9996aaSopenharmony_ci # need to add ldflags to every binary to make sure they are picked up. 3145f9996aaSopenharmony_ci if (prebuilt_instrumented_libraries_available) { 3155f9996aaSopenharmony_ci configs += [ "//third_party/instrumented_libraries:prebuilt_ldflags" ] 3165f9996aaSopenharmony_ci } 3175f9996aaSopenharmony_ci if (use_locally_built_instrumented_libraries) { 3185f9996aaSopenharmony_ci configs += [ "//third_party/instrumented_libraries:locally_built_ldflags" ] 3195f9996aaSopenharmony_ci } 3205f9996aaSopenharmony_ci configs += [ "//build/config/sanitizers:link_executable" ] 3215f9996aaSopenharmony_ci} 3225f9996aaSopenharmony_ci 3235f9996aaSopenharmony_ci# Shared library configs ------------------------------------------------------- 3245f9996aaSopenharmony_ci 3255f9996aaSopenharmony_ci# This config defines the configs applied to all shared libraries. 3265f9996aaSopenharmony_ciconfig("shared_library_config") { 3275f9996aaSopenharmony_ci configs = [] 3285f9996aaSopenharmony_ci 3295f9996aaSopenharmony_ci if (is_win) { 3305f9996aaSopenharmony_ci configs += _windows_linker_configs 3315f9996aaSopenharmony_ci } else if (is_mac) { 3325f9996aaSopenharmony_ci configs += [ "//build/config/mac:mac_dynamic_flags" ] 3335f9996aaSopenharmony_ci } 3345f9996aaSopenharmony_ci 3355f9996aaSopenharmony_ci # If we're using the prebuilt instrumented libraries with the sanitizers, we 3365f9996aaSopenharmony_ci # need to add ldflags to every binary to make sure they are picked up. 3375f9996aaSopenharmony_ci if (prebuilt_instrumented_libraries_available) { 3385f9996aaSopenharmony_ci configs += [ "//third_party/instrumented_libraries:prebuilt_ldflags" ] 3395f9996aaSopenharmony_ci } 3405f9996aaSopenharmony_ci if (use_locally_built_instrumented_libraries) { 3415f9996aaSopenharmony_ci configs += [ "//third_party/instrumented_libraries:locally_built_ldflags" ] 3425f9996aaSopenharmony_ci } 3435f9996aaSopenharmony_ci configs += [ "//build/config/sanitizers:link_shared_library" ] 3445f9996aaSopenharmony_ci} 3455f9996aaSopenharmony_ci 3465f9996aaSopenharmony_ciconfig("predefined_macro") { 3475f9996aaSopenharmony_ci if (enable_predefined_macro) { 3485f9996aaSopenharmony_ci defines = [] 3495f9996aaSopenharmony_ci if (is_ohos) { 3505f9996aaSopenharmony_ci defines += [ "__OHOS__" ] 3515f9996aaSopenharmony_ci } 3525f9996aaSopenharmony_ci if (is_mac) { 3535f9996aaSopenharmony_ci defines += [ "__MAC__" ] 3545f9996aaSopenharmony_ci } 3555f9996aaSopenharmony_ci if (is_linux) { 3565f9996aaSopenharmony_ci defines += [ "__LINUX__" ] 3575f9996aaSopenharmony_ci } 3585f9996aaSopenharmony_ci if (is_nacl) { 3595f9996aaSopenharmony_ci defines += [ "__NACL__" ] 3605f9996aaSopenharmony_ci } 3615f9996aaSopenharmony_ci if (is_win) { 3625f9996aaSopenharmony_ci defines += [ "__WINDOWS__" ] 3635f9996aaSopenharmony_ci } 3645f9996aaSopenharmony_ci if (is_mingw) { 3655f9996aaSopenharmony_ci defines += [ "___MINGW32__" ] 3665f9996aaSopenharmony_ci } 3675f9996aaSopenharmony_ci if (is_android) { 3685f9996aaSopenharmony_ci defines += [ "__ANDROID__" ] 3695f9996aaSopenharmony_ci } 3705f9996aaSopenharmony_ci if (is_ios) { 3715f9996aaSopenharmony_ci defines += [ "__IOS__" ] 3725f9996aaSopenharmony_ci } 3735f9996aaSopenharmony_ci if (current_cpu == "x86") { 3745f9996aaSopenharmony_ci defines += [ "__x86_32__" ] 3755f9996aaSopenharmony_ci } 3765f9996aaSopenharmony_ci if (current_cpu == "x86_64") { 3775f9996aaSopenharmony_ci defines += [ "__x86_64__" ] 3785f9996aaSopenharmony_ci } 3795f9996aaSopenharmony_ci if (current_cpu == "arm") { 3805f9996aaSopenharmony_ci defines += [ "__arm32__" ] 3815f9996aaSopenharmony_ci } 3825f9996aaSopenharmony_ci if (current_cpu == "arm64") { 3835f9996aaSopenharmony_ci defines += [ "__arm64__" ] 3845f9996aaSopenharmony_ci } 3855f9996aaSopenharmony_ci } 3865f9996aaSopenharmony_ci} 387