mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-12-16 01:48:56 +08:00
- Set `visibility = ["//visibility:public"]` on the top-level `:ftxui` alias
so the library can be consumed from external Bazel workspaces.
- Add `bazel_integration/` minimal external workspace to validate
external usage via Bzlmod.
- Introduce `smoke` target that depends on `@ftxui//:ftxui`.
- Add CI job to build the smoke target using:
--enable_bzlmod
--override_module=ftxui=..
This prevents regressions in visibility or public API changes.
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
FTXUI Bazel Integration Test
This directory contains integration tests to verify that FTXUI can be properly consumed as an external dependency using Bazel with Bzlmod.
Purpose
These tests ensure that:
- FTXUI's public API is correctly exposed to external projects
- Both single-target (
@ftxui//:ftxui) and submodule-based dependencies work correctly - Headers are properly re-exported and accessible from downstream projects
Build Instructions
To build all targets:
bazel build //... --enable_bzlmod --override_module=ftxui=../..
To build individual targets:
# Test using individual submodules
bazel build //:smoke --enable_bzlmod --override_module=ftxui=../..
# Test using the single ftxui target
bazel build //:smoke_single_dependency --enable_bzlmod --override_module=ftxui=../..
Run the Examples
# Run the submodules version
./bazel-bin/smoke
# Run the single-target version
./bazel-bin/smoke_single_dependency