bext builds third-party libraries and helper tools used by
BRL-CAD. By default it prefers suitable
system packages and builds local copies only when they are needed.
Clone the repository, configure a build directory, and build:
git clone https://github.com/BRL-CAD/bext
mkdir bext_build
cd bext_build
cmake ../bext -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release --parallel 8Submodules are populated on demand during configure. For checkout and platform setup details, see INSTALL.md.
Build selection happens in three layers:
USE_*options decide which dependency families are in scope.- For in-scope packages, the default behavior is to use a suitable system package if one is found and build a local copy only when needed.
ENABLE_<pkg>=ONorOFFoverrides one package explicitly.
Default USE_* values:
USE_BRLCAD=ONUSE_BRLCAD_EXTRA=ONUSE_GDAL=ONUSE_QT=ONUSE_TCL=ONUSE_APPLESEED=OFFUSE_OSPRAY=OFF
ENABLE_ALL=ON changes step 2 by preferring local builds for packages in the
active USE_* groups. It does not turn on groups whose USE_* option is
OFF.
When bext is driven from a BRL-CAD build, BRLCAD_COMPONENTS can further
narrow some BRL-CAD-related packages to only those needed by the requested
component set.
Default behavior:
cmake ../bext -DCMAKE_BUILD_TYPE=ReleaseBundled builds for the default active groups:
cmake ../bext -DENABLE_ALL=ON -DCMAKE_BUILD_TYPE=ReleaseMinimal BRL-CAD-oriented build without extras, GDAL, Qt, or Tcl/Tk:
cmake ../bext \
-DUSE_BRLCAD_EXTRA=OFF \
-DUSE_GDAL=OFF \
-DUSE_QT=OFF \
-DUSE_TCL=OFF \
-DCMAKE_BUILD_TYPE=ReleaseEverything on:
cmake ../bext \
-DENABLE_ALL=ON \
-DUSE_APPLESEED=ON \
-DUSE_OSPRAY=ON \
-DCMAKE_BUILD_TYPE=ReleaseBy default, CMAKE_INSTALL_PREFIX is the build directory. bext creates two
output trees under that prefix:
install/- files intended to be bundled with downstream softwarenoinstall/- build-only tools and compile-time-only assets
When BRL-CAD consumes a bext build, BRLCAD_EXT_DIR should point at the
parent directory containing both install/ and noinstall/.
If your bext build directory is ../bext_build, configure BRL-CAD with:
git clone https://github.com/BRL-CAD/brlcad
mkdir brlcad_build
cd brlcad_build
cmake ../brlcad -DBRLCAD_EXT_DIR=../bext_build -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release --parallel 8If you built Qt in bext, also enable Qt in BRL-CAD:
cmake ../brlcad \
-DBRLCAD_EXT_DIR=../bext_build \
-DBRLCAD_ENABLE_QT=ON \
-DCMAKE_BUILD_TYPE=Release- INSTALL.md - platform prerequisites, checkout options, and setup caveats
- DEPENDENCIES.md - package-to-group reference, output classification, and dependency addition workflow
- NOTES.md - maintainer notes and submodule procedures