blob: 536f580e99dedbecc1591e6b65bbefeef91cae93 [file] [log] [blame]
/*
* Copyright 2012-present Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package com.facebook.buck.util;
public class BuckConstant {
/**
* The directory where Buck will generate its files.
* <p>
* Ultimately, the fields {@link #ANDROID_GEN_DIR}, {@link #GEN_DIR}, {@link #BIN_DIR},
* {@link #ANNOTATION_DIR} will be hardcoded subdirectories of this directory.
*/
public static final String BUCK_OUTPUT_DIRECTORY =
System.getProperty("buck.buck_output_dir", "buck-out");
// TODO(mbolin): The constants ANDROID_GEN_DIR, GEN_DIR, and BIN_DIR should be
// package-private to the com.facebook.buck.rules directory. Currently, they are also used in the
// com.facebook.buck.shell package, but these values should be injected into shell commands rather
// than hardcoded therein. This ensures that shell commands stay build-rule-agnostic.
/**
* This directory is analogous to the gen/ directory Ant would produce when building an Android
* application. It contains files such as R.java, BuildConfig.java, and Manifest.java. It is
* distinct from the "gen/" directory so that Buck can be used alongside Ant, if desired.
*/
public static final String ANDROID_GEN_DIR =
System.getProperty("buck.buck_android_dir", BUCK_OUTPUT_DIRECTORY + "/android");
public static final String GEN_DIR =
System.getProperty("buck.buck_gen_dir", BUCK_OUTPUT_DIRECTORY + "/gen");
public static final String BIN_DIR =
System.getProperty("buck.buck_bin_dir", BUCK_OUTPUT_DIRECTORY + "/bin");
public static final String ANNOTATION_DIR =
System.getProperty("buck.buck_annotation_dir", BUCK_OUTPUT_DIRECTORY + "/annotation");
/**
* This variable is package-private because conceptually, only parsing logic should be concerned
* with the files that define build rules. Note that if the value of this variable changes, the
* {@code BUILD_RULES_FILE_NAME} constant in {@code buck.py} must be updated, as well.
*/
public static final String BUILD_RULES_FILE_NAME = "BUCK";
private BuckConstant() {}
}