blob: 095e4f5c7161bece76ce1789d4939ec511270526 [file]
load("@io_kythe//tools/build_rules/lexyacc:lexyacc.bzl", "genlex", "genyacc")
package(default_visibility = ["//visibility:public"])
licenses(["notice"]) # The Universal Permissive License (UPL), Version 1.0
filegroup(
name = "license",
srcs = ["LICENSE"],
)
genyacc(
name = "parser",
src = "src/parser/parser.yy",
extra_outs = [
"src/parser/stack.hh",
],
header_out = "src/parser/parser.hh",
source_out = "src/parser/parser.cc",
)
genlex(
name = "scanner",
src = "src/parser/scanner.ll",
out = "scanner.yy.cc",
includes = [":parser"],
)
cc_library(
name = "souffle",
srcs = glob(
["src/**/*.cpp"],
exclude = [
"src/include/**",
"src/tests/**",
"src/ram/tests/**",
"src/ast/tests/**",
"src/interpreter/tests/**",
"src/main.cpp",
"src/souffle_prof.cpp",
],
) + [
":scanner",
":parser",
],
hdrs = glob(["src/**/*.h"]) + [":parser"],
includes = [
"src",
"src/include",
],
linkopts = select({
"@bazel_tools//src/conditions:linux_x86_64": [
"-ldl",
],
"//conditions:default": [
],
}),
deps = [
"@org_sourceware_libffi//:libffi",
],
)
cc_library(
name = "main",
srcs = ["src/main.cpp"],
deps = [":souffle"],
)