Build and Install¶
OpenMeta uses CMake and has no required third-party dependencies for the core read path.
Repository: https://github.com/ssh4net/OpenMeta
Build¶
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
Install¶
cmake --install build --prefix /opt/openmeta
Options¶
Core toggles:
OPENMETA_BUILD_STATIC/OPENMETA_BUILD_SHARED: build static/shared OpenMeta libraries.OPENMETA_BUILD_TOOLS: build themetareadCLI.OPENMETA_BUILD_TESTS: build GoogleTest unit tests.OPENMETA_BUILD_FUZZERS: build libFuzzer targets (Clang).OPENMETA_BUILD_FUZZTEST: build FuzzTest-based fuzz targets (when available).OPENMETA_FUZZTEST_FUZZING_MODE: enable FuzzTest fuzzing-mode flags.OPENMETA_WITH_ZLIB/OPENMETA_WITH_BROTLI: enable payload decompression when the system libraries are available.OPENMETA_WITH_EXPAT: enable XMP packet parsing when Expat is available.OPENMETA_USE_LIBCXX: build againstlibc++(useful when deps were built withlibc++).
Optional dependency notes:
zlib enables Deflate decompression (for example, PNG
iCCPand compressed text/XMP chunks).Brotli enables JPEG XL
brobcompressed metadata decoding.Expat enables parsing XMP RDF/XML into structured properties. Without it, OpenMeta still locates XMP blocks but does not decode them into entries.
Docs (optional):
OPENMETA_BUILD_DOCS: generate Doxygen HTML oninstall.OPENMETA_BUILD_SPHINX_DOCS: generate a Sphinx site (Doxygen XML + Breathe).OPENMETA_PYTHON_EXECUTABLE: override the Python interpreter used for Sphinx (useful for uv/venv/conda when CMake would otherwise pick system Python).
Python (optional):
OPENMETA_BUILD_PYTHON: build Python bindings (nanobind).OPENMETA_BUILD_WHEEL: add anopenmeta_wheelbuild target and copy the wheel oninstall.OPENMETA_WHEEL_NO_BUILD_ISOLATION: usepip wheel --no-build-isolationduring wheel builds.
If you install dependencies into a custom prefix, provide it via
CMAKE_PREFIX_PATH.
cmake -S . -B build -DCMAKE_PREFIX_PATH=/mnt/f/UBS