aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages
diff options
context:
space:
mode:
authorGravatar plf <plf@google.com>2018-08-03 01:47:22 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-03 01:48:53 -0700
commit7e41f9bd7000a8e51101d91b0c72ce7e6775068e (patch)
tree5e037fb9512bd09415fd1bec1f0420ab78d90ae2 /src/main/java/com/google/devtools/build/lib/packages
parent3081fd98eae4bcd27bad71762835d9610d41eef0 (diff)
C++: Change Skylark API whitelisting to be part of flag.
This uses SkylarkSemantics now instead of the C++ configuration. The flag is: --experimental_cc_skylark_api_enabled_packages RELNOTES:none PiperOrigin-RevId: 207235431
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
index e48c1be9fa..3277c38440 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
@@ -15,12 +15,14 @@
package com.google.devtools.build.lib.packages;
import com.google.devtools.build.lib.syntax.SkylarkSemantics;
+import com.google.devtools.common.options.Converters.CommaSeparatedOptionListConverter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionEffectTag;
import com.google.devtools.common.options.OptionMetadataTag;
import com.google.devtools.common.options.OptionsBase;
import java.io.Serializable;
+import java.util.List;
/**
* Contains options that affect Skylark's semantics.
@@ -41,9 +43,6 @@ import java.io.Serializable;
* should be that name written in snake_case. Add a line to set the new field in {@link
* #toSkylarkSemantics}.
*
- * <li>Add a line to read and write the new field in {@link SkylarkSemanticsCodec#serialize} and
- * {@link SkylarkSemanticsCodec#deserialize}.
- *
* <li>Add a line to set the new field in both {@link
* SkylarkSemanticsConsistencyTest#buildRandomOptions} and {@link
* SkylarkSemanticsConsistencyTest#buildRandomSemantics}.
@@ -69,6 +68,18 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
public boolean experimentalEnableRepoMapping;
@Option(
+ name = "experimental_cc_skylark_api_enabled_packages",
+ converter = CommaSeparatedOptionListConverter.class,
+ defaultValue = "",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
+ metadataTags = {OptionMetadataTag.EXPERIMENTAL},
+ help =
+ "Passes list of packages that can use the C++ Skylark API. Don't enable this flag yet, "
+ + "we will be making breaking changes.")
+ public List<String> experimentalCcSkylarkApiEnabledPackages;
+
+ @Option(
name = "incompatible_bzl_disallow_load_after_statement",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
@@ -350,6 +361,7 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
public SkylarkSemantics toSkylarkSemantics() {
return SkylarkSemantics.builder()
// <== Add new options here in alphabetic order ==>
+ .experimentalCcSkylarkApiEnabledPackages(experimentalCcSkylarkApiEnabledPackages)
.experimentalEnableRepoMapping(experimentalEnableRepoMapping)
.incompatibleBzlDisallowLoadAfterStatement(incompatibleBzlDisallowLoadAfterStatement)
.incompatibleDepsetIsNotIterable(incompatibleDepsetIsNotIterable)