load("//:pch.bzl", "pch")
cc_library(
name = "support",
srcs = glob(["lib/*.cc"]) + select({
"@bazel_tools//src/conditions:windows": [
"lib/win/getopt.c",
"lib/win/getopt.h",
"lib/win/unistd.h",
],
"//conditions:default": [],
}),
hdrs = [
"include/ast_parse.h",
"include/cool_tree.h",
"include/cool_tree.handcode.h",
"include/copyright.h",
"include/stringtab.h",
"include/stringtab.handcode.h",
"include/symtab.h",
"include/tree.h",
"include/utils.h",
],
includes = ["include"],
copts = ["-Os", "-Wno-register"],
deps = [],
)
pch(
name = "support_pch",
includes = [
"ast_parse.h",
"cool_tree.h",
"cool_tree.handcode.h",
"copyright.h",
"stringtab.h",
"stringtab.handcode.h",
"symtab.h",
"tree.h",
"utils.h",
],
deps = [":support"],
)
cc_library(
name = "runtime",
srcs = glob(["rt/*.c"]),
hdrs = glob(["rt/*.h"]),
copts = ["-Os", "-DNDEBUG"],
visibility = ["//visibility:public"],
)
cc_library(
name = "codegen",
srcs = ["src/cgen.cc"],
hdrs = ["include/cgen.h"],
deps = [
":support_pch",
":support",
"//llvm:ir_headers_pch",
"//llvm:support_pch",
"//llvm:Core",
"//llvm:Support",
],
)
cc_binary(
name = "cgen",
deps = [":codegen"],
visibility = ["//visibility:public"],
)