1*6777b538SAndroid Build Coastguard Worker// Copyright 2015 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker// Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker// found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Workerpackage org.chromium.build; 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker#define Q(x) #x 8*6777b538SAndroid Build Coastguard Worker#define QUOTE(x) Q(x) 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker#if defined(USE_FINAL) 11*6777b538SAndroid Build Coastguard Worker#define MAYBE_FINAL final 12*6777b538SAndroid Build Coastguard Worker#define MAYBE_ZERO = 0 13*6777b538SAndroid Build Coastguard Worker#define MAYBE_FALSE = false 14*6777b538SAndroid Build Coastguard Worker#else 15*6777b538SAndroid Build Coastguard Worker#define MAYBE_FINAL 16*6777b538SAndroid Build Coastguard Worker#define MAYBE_ZERO 17*6777b538SAndroid Build Coastguard Worker#define MAYBE_FALSE 18*6777b538SAndroid Build Coastguard Worker#endif 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker/** 21*6777b538SAndroid Build Coastguard Worker * Build configuration. Generated on a per-target basis. 22*6777b538SAndroid Build Coastguard Worker */ 23*6777b538SAndroid Build Coastguard Workerpublic class BuildConfig { 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker#if defined(_ENABLE_ASSERTS) 26*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean ENABLE_ASSERTS = true; 27*6777b538SAndroid Build Coastguard Worker#else 28*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean ENABLE_ASSERTS MAYBE_FALSE; 29*6777b538SAndroid Build Coastguard Worker#endif 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker#if defined(_IS_UBSAN) 32*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean IS_UBSAN = true; 33*6777b538SAndroid Build Coastguard Worker#else 34*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean IS_UBSAN MAYBE_FALSE; 35*6777b538SAndroid Build Coastguard Worker#endif 36*6777b538SAndroid Build Coastguard Worker 37*6777b538SAndroid Build Coastguard Worker#if defined(_IS_CHROME_BRANDED) 38*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean IS_CHROME_BRANDED = true; 39*6777b538SAndroid Build Coastguard Worker#else 40*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean IS_CHROME_BRANDED MAYBE_FALSE; 41*6777b538SAndroid Build Coastguard Worker#endif 42*6777b538SAndroid Build Coastguard Worker 43*6777b538SAndroid Build Coastguard Worker // The ID of the android string resource that stores the product version. 44*6777b538SAndroid Build Coastguard Worker // This layer of indirection is necessary to make the resource dependency 45*6777b538SAndroid Build Coastguard Worker // optional for android_apk targets/base_java (ex. for cronet). 46*6777b538SAndroid Build Coastguard Worker#if defined(_RESOURCES_VERSION_VARIABLE) 47*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL int R_STRING_PRODUCT_VERSION = _RESOURCES_VERSION_VARIABLE; 48*6777b538SAndroid Build Coastguard Worker#else 49*6777b538SAndroid Build Coastguard Worker // Default value, do not use. 50*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL int R_STRING_PRODUCT_VERSION MAYBE_ZERO; 51*6777b538SAndroid Build Coastguard Worker#endif 52*6777b538SAndroid Build Coastguard Worker 53*6777b538SAndroid Build Coastguard Worker // Minimum SDK Version supported by this apk. 54*6777b538SAndroid Build Coastguard Worker // Be cautious when using this value, as it can happen that older apks get 55*6777b538SAndroid Build Coastguard Worker // installed on newer Android version (e.g. when a device goes through a 56*6777b538SAndroid Build Coastguard Worker // system upgrade). It is also convenient for developing to have all 57*6777b538SAndroid Build Coastguard Worker // features available through a single APK. 58*6777b538SAndroid Build Coastguard Worker // However, it's pretty safe to assument that a feature specific to KitKat 59*6777b538SAndroid Build Coastguard Worker // will never be needed in an APK with MIN_SDK_VERSION = Oreo. 60*6777b538SAndroid Build Coastguard Worker#if defined(_MIN_SDK_VERSION) 61*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL int MIN_SDK_VERSION = _MIN_SDK_VERSION; 62*6777b538SAndroid Build Coastguard Worker#else 63*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL int MIN_SDK_VERSION = 1; 64*6777b538SAndroid Build Coastguard Worker#endif 65*6777b538SAndroid Build Coastguard Worker 66*6777b538SAndroid Build Coastguard Worker // Value of android:versionCode. 67*6777b538SAndroid Build Coastguard Worker#if defined(_VERSION_CODE) 68*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL long VERSION_CODE = _VERSION_CODE; 69*6777b538SAndroid Build Coastguard Worker#else 70*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL long VERSION_CODE = 1; 71*6777b538SAndroid Build Coastguard Worker#endif 72*6777b538SAndroid Build Coastguard Worker 73*6777b538SAndroid Build Coastguard Worker#if defined(_BUNDLES_SUPPORTED) 74*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean BUNDLES_SUPPORTED = true; 75*6777b538SAndroid Build Coastguard Worker#else 76*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean BUNDLES_SUPPORTED MAYBE_FALSE; 77*6777b538SAndroid Build Coastguard Worker#endif 78*6777b538SAndroid Build Coastguard Worker 79*6777b538SAndroid Build Coastguard Worker#if defined(_IS_INCREMENTAL_INSTALL) 80*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean IS_INCREMENTAL_INSTALL = true; 81*6777b538SAndroid Build Coastguard Worker#else 82*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean IS_INCREMENTAL_INSTALL MAYBE_FALSE; 83*6777b538SAndroid Build Coastguard Worker#endif 84*6777b538SAndroid Build Coastguard Worker 85*6777b538SAndroid Build Coastguard Worker#if defined(_ISOLATED_SPLITS_ENABLED) 86*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean ISOLATED_SPLITS_ENABLED = true; 87*6777b538SAndroid Build Coastguard Worker#else 88*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean ISOLATED_SPLITS_ENABLED MAYBE_FALSE; 89*6777b538SAndroid Build Coastguard Worker#endif 90*6777b538SAndroid Build Coastguard Worker 91*6777b538SAndroid Build Coastguard Worker#if defined(_IS_FOR_TEST) 92*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean IS_FOR_TEST = true; 93*6777b538SAndroid Build Coastguard Worker#else 94*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean IS_FOR_TEST MAYBE_FALSE; 95*6777b538SAndroid Build Coastguard Worker#endif 96*6777b538SAndroid Build Coastguard Worker 97*6777b538SAndroid Build Coastguard Worker#if defined(_WRITE_CLANG_PROFILING_DATA) 98*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean WRITE_CLANG_PROFILING_DATA = true; 99*6777b538SAndroid Build Coastguard Worker#else 100*6777b538SAndroid Build Coastguard Worker public static MAYBE_FINAL boolean WRITE_CLANG_PROFILING_DATA MAYBE_FALSE; 101*6777b538SAndroid Build Coastguard Worker#endif 102*6777b538SAndroid Build Coastguard Worker} 103