// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package PACKAGE;

#if defined(USE_FINAL)
#define MAYBE_FINAL final
#define MAYBE_USE_CHROMIUM_LINKER = USE_CHROMIUM_LINKER_VALUE
#define MAYBE_USE_MODERN_LINKER = USE_MODERN_LINKER_VALUE
#define MAYBE_IS_BUNDLE = IS_BUNDLE_VALUE
#else
#define MAYBE_FINAL
#define MAYBE_USE_CHROMIUM_LINKER
#define MAYBE_USE_MODERN_LINKER
#define MAYBE_IS_BUNDLE
#endif

/**
 *  Product configuration. Generated on a per-target basis.
 */
public class ProductConfig {
    // Sorted list of locales that have an uncompressed .pak within assets.
    // Stored as an array because AssetManager.list() is slow.
#if defined(LOCALE_LIST)
    public static final String[] LOCALES = LOCALE_LIST;
#else
    public static final String[] LOCALES = {};
#endif

   public static MAYBE_FINAL boolean USE_CHROMIUM_LINKER MAYBE_USE_CHROMIUM_LINKER;
   public static MAYBE_FINAL boolean USE_MODERN_LINKER MAYBE_USE_MODERN_LINKER;
   public static MAYBE_FINAL boolean IS_BUNDLE MAYBE_IS_BUNDLE;
}
