aquaveo/dev/: xmsconan-2.3.4 metadata and description
Simple index
Newer version available
Methods and Modules used to aid in xmsconan projects
| author |
Gage Larsen |
| classifiers |
- Development Status :: 4 - Beta
- Intended Audience :: Developers
- Programming Language :: Python :: 3.13
|
| description_content_type |
text/markdown |
| project_urls |
- Homepage, https://github.com/Aquaveo/xmsconan
- Repository, https://github.com/Aquaveo/xmsconan
|
| requires_dist |
- tabulate
- toml
- jinja2
- setuptools-scm
|
| requires_python |
>=3.6 |
Because this project isn't in the mirror_whitelist,
no releases from root/pypi are included.
XMSConan
Methods and Modules used to aid in xmsconan projects.
Installation
pip install xmsconan
Usage
This package provides tools for building and generating files for XMS projects using Conan.
Command Line Tools
xmsconan_gen: Generate build files from templates
xmsconan_build: Build XMS libraries
build.toml Schema Reference
The build.toml file defines the structure and dependencies of your XMS library. All fields are optional unless marked as required.
Required Fields
| Field |
Type |
Description |
Example |
library_name |
string |
Name of the library |
"xmscore" |
description |
string |
Brief description |
"Support library for XMS products" |
Source Files
| Field |
Type |
Default |
Description |
library_sources |
array[string] |
[] |
C++ source files for the library |
library_headers |
array[string] |
[] |
Public header files |
testing_sources |
array[string] |
[] |
Test implementation files (.cpp) |
testing_headers |
array[string] |
[] |
Test header files (.t.h) |
python_library_sources |
array[string] |
[] |
Python-specific C++ sources |
python_library_headers |
array[string] |
[] |
Python-specific headers |
pybind_sources |
array[string] |
[] |
Pybind11 binding sources |
pybind_headers |
array[string] |
[] |
Pybind11 binding headers |
Dependencies
| Field |
Type |
Default |
Description |
xms_dependencies |
array[object] |
[] |
XMS library dependencies. Each object: {name="xmscore", version="7.0.0", no_python=false}. Set no_python=true to exclude from Python package dependencies. |
extra_dependencies |
array[string] |
[] |
Additional Conan dependencies (format: ["package/version"]) |
xms_dependency_options |
object |
{} |
Per-dependency option overrides (format: {"dep_name": {"pybind": false}}) |
Build Configuration
| Field |
Type |
Default |
Description |
testing_framework |
string |
"cxxtest" |
Testing framework ("cxxtest" or "gtest") |
python_binding_type |
string |
"pybind11" |
Python binding framework ("pybind11" or "vtk_wrap") |
python_namespaced_dir |
string |
"" |
Python module subdirectory (e.g., "core" for xms.core) |
pybind_root |
boolean |
false |
Whether this is the root pybind package |
Advanced
| Field |
Type |
Default |
Description |
extra_cmake_text |
string |
"" |
Additional CMake code injected into CMakeLists.txt |
post_library_cmake_text |
string |
"" |
CMake code added after library target definition |
extra_export_sources |
array[string] |
[] |
Additional directories/files to export (e.g., ["test_files"]) |
Example build.toml
library_name = "xmscore"
description = "Support library for XMS products"
xms_dependencies = []
python_namespaced_dir = "core"
pybind_root = true
library_sources = [
"xmscore/math/math.cpp",
"xmscore/misc/StringUtil.cpp",
]
library_headers = [
"xmscore/math/math.h",
"xmscore/misc/StringUtil.h",
]
testing_sources = [
"xmscore/testing/TestTools.cpp"
]
testing_headers = [
"xmscore/math/math.t.h",
"xmscore/testing/TestTools.h",
]
pybind_sources = [
"xmscore/python/xmscore_py.cpp",
]
Example generation
xmsconan_gen --version 9.0.0 build.toml
Example generation dry-run
xmsconan_gen --dry-run -v --version 9.0.0 build.toml
Example build into a shared builds folder
xmsconan_build --cmake_dir . --build_dir ../builds/xmscore --profile VS2022_TESTING --generator vs2022
Example build dry-run
xmsconan_build --cmake_dir . --build_dir ../builds/xmscore --profile VS2022_TESTING --generator vs2022 --dry-run -v
Useful build flags
--allow-missing-test-files: Continue when test data path is missing
--dry-run: Print Conan/CMake commands and options without executing
-v / -q: Increase debug output or suppress informational logs
License
BSD 2-Clause License