Skip to content

Commit

Permalink
Cleaning up the build to work with the new code, and on Windows.
Browse files Browse the repository at this point in the history
  • Loading branch information
mason-bially committed Dec 3, 2021
1 parent bc508e4 commit c39f190
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 19 deletions.
9 changes: 0 additions & 9 deletions BUILD

This file was deleted.

30 changes: 30 additions & 0 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

# MSVC+Bazel can't stand for the header at the root, so we have to use the amalgamated one
cc_library(
name = "flecs",
visibility = ["//visibility:public"],

srcs = ["flecs.c"],
hdrs = ["flecs.h"],
)

# In theory this is the correct build rule (if it was named `:flecs`)
cc_library(
name = "flecs-broken",

srcs = glob(["src/**/*.h*", "src/**/*.c*", "src/**/*.inl"]),
hdrs = glob(["include/**/*.h*"]),
includes = ["include"],
strip_include_prefix = "include",

# because the MSVC include path generator is just wrong
# see gh: https://github.com/bazelbuild/bazel/issues/8706#issuecomment-985133244
features = select({
"@bazel_tools//src/conditions:windows": ["-include_paths"],
"//conditions:default": [],
}),
copts = select({
"@bazel_tools//src/conditions:windows": ["/Iinclude"],
"//conditions:default": [],
}),
)
9 changes: 5 additions & 4 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@ load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")
new_git_repository(
name = "bake",
remote = "[email protected]:SanderMertens/bake.git",
commit = "cfc90745f9daa7b7fba80f229af18cdd5029b066",
shallow_since = "1614835160 -0800",
commit = "e2b3d03b61ef36e17a41aa76cb9395b4260468aa",
shallow_since = "1637826538 -0800",

build_file_content = """
cc_library(
name = "driver-test",
visibility = ["//visibility:public"],
deps = [":util", ":bake"],
defines = ["bake_test_STATIC"],
srcs = glob(["drivers/test/src/**/*.c", "drivers/test/src/**/*.h"]),
hdrs = glob(["drivers/test/include/**/*.h"]),
includes = ["drivers/test/include"],
Expand All @@ -30,10 +31,10 @@ cc_library(
cc_library(
name = "util",
visibility = ["//visibility:public"],
defines = ["__BAKE__", "_XOPEN_SOURCE=600"],
defines = ["UT_IMPL", "__BAKE__", "_XOPEN_SOURCE=600"],
linkopts = select({
"@bazel_tools//src/conditions:windows": [],
"@bazel_tools//src/conditions:windows": ["-DEFAULTLIB:dbghelp -DEFAULTLIB:shell32 -DEFAULTLIB:shlwapi"],
"//conditions:default": ["-lrt -lpthread -ldl"],
}),
Expand Down
15 changes: 10 additions & 5 deletions test/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
load(":bake_tests.bzl", "persuite_bake_tests")

cc_library(
name = "test-api",
cc_test(
name = "api",
deps = ["//:flecs", "//examples:os-api", "@bake//:driver-test"],

srcs = glob(["api/src/*.c", "api/**/*.h"]),

includes = ["api/include"],
)

persuite_bake_tests("api", [":test-api"], glob(["api/src/*.c"], exclude=["api/src/main.c", "api/src/util.c"]))
#persuite_bake_tests(
# name = "api",
# deps = [":test-api"],
# suites = glob(["api/src/*.c"], exclude=["api/src/main.c", "api/src/util.c"]),
#)

cc_test(
name = "collections",
Expand All @@ -21,11 +26,11 @@ cc_test(
)

cc_test(
name = "cpp_api",
name = "cpp-api",
deps = ["//:flecs", "@bake//:driver-test"],

srcs = glob(["cpp_api/src/*.cpp", "cpp_api/**/*.h"]),
includes = ["cpp_api/include"],

timeout = "short",
timeout = "moderate",
)
15 changes: 14 additions & 1 deletion test/bake_tests.bzl
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@

def persuite_bake_tests(name, deps, suites, visibility=None):
def _impl(ctx):
name = ctx.attr.name
deps = ctx.attr.deps
suites = ctx.attr.suites
visibility = None # ctx.attr.visibility

suites_mangled = [s.partition(".")[0].rpartition("/")[2] for s in suites]

for s in suites_mangled:
Expand All @@ -14,3 +19,11 @@ def persuite_bake_tests(name, deps, suites, visibility=None):
name = name,
tests = [":{}-{}".format(name, s) for s in suites_mangled]
)

persuite_bake_tests = rule(
implementation = _impl,
attrs = {
"deps": attr.label_list(),
"suites": attr.string_list(),
},
)

0 comments on commit c39f190

Please sign in to comment.