blob: 7ad814002f9036e32eef61b56fe93cf0b63ed277 [file] [log] [blame]
# Description: Bazel's Starlark interpreter
load("@rules_java//java:defs.bzl", "java_library")
licenses(["notice"]) # Apache 2.0
filegroup(
name = "srcs",
srcs = glob(["**"]),
visibility = ["//src/main/java/net/starlark/java:bazel"],
)
# The Starlark evaluator
java_library(
name = "eval",
srcs = [
"BuiltinFunction.java",
"CallUtils.java",
"CpuProfiler.java",
"Debug.java",
"Dict.java",
"Eval.java",
"EvalException.java",
"EvalUtils.java",
"FlagGuardedValue.java",
"FormatParser.java",
"GuardedValue.java",
"HasBinary.java",
"ImmutableSingletonStarlarkList.java",
"ImmutableStarlarkList.java",
"JNI.java",
"LazyImmutableStarlarkList.java",
"MethodDescriptor.java",
"MethodLibrary.java",
"Module.java",
"Mutability.java",
"MutableStarlarkList.java",
"NoneType.java",
"ParamDescriptor.java",
"Printer.java",
"RangeList.java",
"RegularImmutableStarlarkList.java",
"RegularTuple.java",
"Sequence.java",
"SingletonTuple.java",
"Starlark.java",
"StarlarkCallable.java",
"StarlarkFloat.java",
"StarlarkFunction.java",
"StarlarkIndexable.java",
"StarlarkInt.java",
"StarlarkIterable.java",
"StarlarkList.java",
"StarlarkSemantics.java",
"StarlarkThread.java",
"StarlarkValue.java",
"StringModule.java",
"Structure.java",
"SymbolGenerator.java",
"Tuple.java",
],
visibility = ["//src/main/java/net/starlark/java:clients"],
deps = [
# Do not add Bazel or Google dependencies here!
"//src/main/java/net/starlark/java/annot",
"//src/main/java/net/starlark/java/spelling",
"//src/main/java/net/starlark/java/syntax",
"//third_party:error_prone_annotations",
"//third_party:auto_value",
"//third_party:flogger",
"//third_party:guava",
"//third_party:jsr305",
],
)
# Dynamic library for Starlark CPU profiler.
# The application or test must arrange for the library to be added
# to the java.library.path directory (e.g. by 'java -Djava.library.path=<dir>').
# What a mess.
filegroup(
name = "cpu_profiler",
srcs = select({
"//src/conditions:darwin": [":libcpu_profiler.dylib"],
"//src/conditions:windows": [":cpu_profiler.dll"],
"//conditions:default": [":libcpu_profiler.so"], # POSIX
}),
visibility = ["//src/main/java/net/starlark/java:clients"],
)
genrule(
name = "cpu_profiler_darwin",
srcs = ["libcpu_profiler.so"],
outs = ["libcpu_profiler.dylib"],
cmd = "cp $< $@",
)
genrule(
name = "cpu_profiler_windows",
srcs = ["libcpu_profiler.so"],
outs = ["cpu_profiler.dll"],
cmd = "cp $< $@",
)
# The C++ portion of the Starlark CPU profiler.
cc_binary(
name = "libcpu_profiler.so",
srcs = select({
"//src/conditions:darwin": ["cpu_profiler_posix.cc"],
"//src/conditions:linux": ["cpu_profiler_posix.cc"],
"//conditions:default": ["cpu_profiler_unimpl.cc"],
}),
linkshared = 1,
deps = ["@bazel_tools//tools/jdk:jni"],
)