- Notifications
You must be signed in to change notification settings - Fork0
python-project-templates/hatch-cpp
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Hatch plugin for C++ builds
A simple, extensible C++ build plugin forhatch.
[tool.hatch.build.hooks.hatch-cpp]libraries = [ {name ="project/extension",sources = ["cpp/project/basic.cpp"],include-dirs = ["cpp"]}]
For more complete systems, see:
Configuration is driven from the[tool.hatch.build.hooks.hatch-cpp] hatch hook configuration field in apyproject.toml.It is designed to closely match existing Python/C/C++ packaging tools.
verbose =truelibraries = { Library Args }cmake = { CMake Args }platform = { Platform, either "linux", "darwin", or "win32" }
See thetest cases for more concrete examples.
hatch-cpp is driven bypydantic models for configuration and execution of the build.These models can themselves be overridden by settingbuild-config-class /build-plan-class.
name ="mylib"sources = ["path/to/file.cpp",]language ="c++"binding ="cpython"# or "pybind11", "nanobind", "generic"std =""# Passed to -std= or /std:include_dirs = ["paths/to/add/to/-I"]library_dirs = ["paths/to/add/to/-L"]libraries = ["-llibraries_to_link"]extra_compile_args = ["--extra-compile-args"]extra_link_args = ["--extra-link-args"]extra_objects = ["extra_objects"]define_macros = ["-Ddefines_to_use"]undef_macros = ["-Uundefines_to_use"]py_limited_api ="cp39"# limited API to use
hatch-cpp has some convenience integration with CMake.Though this is not designed to be as full-featured as e.g.scikit-build, it should be satisfactory for many small projects.
root ="path/to/cmake/root"build ="path/to/cmake/build/folder"install ="path/to/cmake/install/folder"cmake_arg_prefix ="MYPROJECT_"cmake_args = {}# any other cmake args to passcmake_env_args = {}# env-specific cmake args to passinclude_flags = {}# include flags to pass -D
hatch-cpp will respect standard environment variables for compiler control.
| Name | Default | Description |
|---|---|---|
CC | C Compiler override | |
CXX | C++ Compiler override | |
LD | Linker override | |
HATCH_CPP_PLATFORM | Platform to build | |
HATCH_CPP_DISABLE_CCACHE | Disable CCache usage |
Note
This library was generated usingcopier from theBase Python Project Template repository.
About
Hatch plugin for C++
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Contributors3
Uh oh!
There was an error while loading.Please reload this page.