forked from eclipse-ecal/ecal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
120 lines (106 loc) · 3.53 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
[project] # Project metadata
name = "eclipse-ecal"
readme = "README.md"
requires-python = ">=3.7"
license = { "file" = "LICENSE.txt" }
authors = [
{ "name" = "Kerstin Keller", "email" = "kerstin.keller@continental.com" },
]
keywords = ["DDS", "Middlware"]
classifiers = ["Topic :: Scientific/Engineering"]
dependencies = ["protobuf >= 3.8, == 3.*"]
# setuptools-scm will grab the version from the latest git tag
dynamic = ["version"]
[project.urls]
"Documentation" = "https://eclipse-ecal.github.io/ecal"
"Source" = "https://github.com/eclipse-ecal/ecal"
[build-system] # How pip and other frontends should build this project
requires = ["hatchling", "hatch-vcs", "scikit-build-core~=0.10.6"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel.hooks.scikit-build]
experimental = true
[tool.hatch.version]
source = "vcs"
[tool.hatch.build.hooks.vcs]
version-file = "lang/python/core/ecal/_version.py"
[tool.hatch.build.targets]
# Directory structure to copy as Python package, last path component is
# the package name
# wheel.packages = ["lang/python/package/ecal"]
wheel.packages = ["lang/python/core/ecal", "lang/python/ecalhdf5/ecal"]
# Files to include in the source archive to build from
sdist.only-include = [
"/CMakeLists.txt",
"/pyproject.toml",
"/LICENSE.txt",
"/NOTICE.txt",
"/README.md",
"/app/app_pb/",
"/app/apps/", # TODO: Remove this directory
"/app/rec/rec_addon_core/", # TODO: Remove this directory
"/app/rec/rec_addon_dummy/", # TODO: Remove this directory
"/cmake/",
"/contrib/",
"/cpack/",
"/ecal/",
"/lib/",
"/licenses/",
"lang/python/",
"thirdparty/cmakefunctions/",
"thirdparty/ecaludp/",
"thirdparty/protobuf/",
"thirdparty/recycle/",
"thirdparty/simpleini/",
"thirdparty/tclap/",
"thirdparty/tcp_pubsub/",
"thirdparty/yaml-cpp/",
"thirdparty/asio/",
"!thirdparty/asio/asio/asio/src/",
# HDF5 has a lot of stuff we don't use
"/thirdparty/hdf5/",
"!/thirdparty/hdf5/hdf5/tools/",
"!/thirdparty/hdf5/hdf5/**/test*/",
"!/thirdparty/hdf5/hdf5/**/examples*/",
"!/thirdparty/hdf5/hdf5/hl/",
"!/thirdparty/hdf5/hdf5/doxygen/",
"!/thirdparty/hdf5/hdf5/java/",
"!/thirdparty/hdf5/hdf5/fortran/",
]
[tool.scikit-build]
# Will be installed from PyPI if system version is too old/missing
cmake.version = ">=3.18"
build.targets = ["ecal_python"] # Targets to build
build-dir = "./_python_build" # Build directory for unisolated builds
install.components = ["python"] # CMake component to install
[tool.scikit-build.cmake.define]
CMAKE_PROJECT_TOP_LEVEL_INCLUDES = "cmake/submodule_dependencies.cmake"
HAS_HDF5 = "ON"
HAS_QT = "OFF"
HAS_CURL = "OFF"
HAS_FTXUI = "OFF"
BUILD_APPS = "OFF"
BUILD_SAMPLES = "OFF"
BUILD_TIME = "OFF"
BUILD_PY_BINDING = "ON"
BUILD_SHARED_LIBS = "OFF"
ECAL_INSTALL_SAMPLE_SOURCES = "OFF"
ECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS = "ON"
ECAL_THIRDPARTY_BUILD_TCP_PUBSUB = "ON"
ECAL_THIRDPARTY_BUILD_RECYCLE = "ON"
ECAL_THIRDPARTY_BUILD_PROTOBUF = "ON"
ECAL_THIRDPARTY_BUILD_FINEFTP = "OFF"
ECAL_THIRDPARTY_BUILD_FTXUI = "OFF"
ECAL_THIRDPARTY_BUILD_SPDLOG = "OFF"
ECAL_THIRDPARTY_BUILD_TERMCOLOR = "OFF"
ECAL_THIRDPARTY_BUILD_TINYXML2 = "OFF"
ECAL_THIRDPARTY_BUILD_CURL = "OFF"
ECAL_THIRDPARTY_BUILD_HDF5 = "ON"
# Stop HDF5 trying to export eCALCoreTargets due to the hack
# with HDF5_EXPORTED_TARGETS
HDF5_EXTERNALLY_CONFIGURED = "ON"
[tool.cibuildwheel]
# Only support 64-bit builds for now as CMake gets confused when the
# architecture changes and causes link errors with Python
archs = ["auto64"]
# eCAL has build errors on musl libc
skip = [ "*-musllinux*" ]