// Copyright 2019 The Chromium Authors
// 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_IS_BUNDLE = IS_BUNDLE_VALUE
#else
#define MAYBE_FINAL
#define MAYBE_USE_CHROMIUM_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 IS_BUNDLE MAYBE_IS_BUNDLE;
}
