Properly link flecs library

This commit is contained in:
2023-11-09 11:38:29 +01:00
parent dc585396c3
commit 8edcf9305c
1392 changed files with 390081 additions and 164 deletions

View File

@@ -0,0 +1,7 @@
package(default_visibility = ["//visibility:public"])
cc_binary(
name = "example",
srcs = ["main.cpp"],
deps = ["@flecs//:flecs"]
)

View File

@@ -0,0 +1,22 @@
You can include the flecs repository in your `WORKSPACE` with:
```bazel
git_repository(
name = "flecs",
remote = "https://github.com/SanderMertens/flecs",
commit = "f150d96ba9ea8be2b24dbf2217368c231cb17720", # v2.3.2+merge329
shallow_since = "1615075784 -0800",
)
```
And then add it to your `BUILD` with:
```bazel
deps = ["@flecs//:flecs"]
```
This directory contains a complete example of this usage. To try it you can run the following from your terminal:
```
bazel run example
```

View File

@@ -0,0 +1,8 @@
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
git_repository(
name = "flecs",
remote = "https://github.com/SanderMertens/flecs",
commit = "f150d96ba9ea8be2b24dbf2217368c231cb17720", # v2.3.2+merge329
shallow_since = "1615075784 -0800",
)

View File

@@ -0,0 +1,43 @@
#include "flecs.h"
#include <iostream>
/* Component types */
struct Position {
double x, y;
};
struct Velocity {
double x, y;
};
int main(int argc, char *argv[]) {
flecs::world world(argc, argv);
flecs::component<Position>(world, "Position");
flecs::component<Velocity>(world, "Velocity");
flecs::system<Position, const Velocity>(world)
.iter([](const flecs::iter& it,
Position *p,
const Velocity *v)
{
for (auto row : it) {
p[row].x += v[row].x;
p[row].y += v[row].y;
std::cout << "Moved " << it.entity(row).name() << " to {" <<
p[row].x << ", " << p[row].y << "}" << std::endl;
}
});
flecs::entity(world, "MyEntity")
.set<Position>({0, 0})
.set<Velocity>({1, 1});
world.set_target_fps(1);
std::cout << "Application move_system is running, press CTRL-C to exit..." << std::endl;
/* Run systems */
while (world.progress()) { }
}