vc-delta3d 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,113 @@
1
+ name: Build and publish Python distributions
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+ workflow_dispatch:
9
+ release:
10
+ types:
11
+ - published
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ build-wheels:
18
+ name: Build ${{ matrix.platform }} wheels
19
+ runs-on: ${{ matrix.os }}
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ include:
24
+ - platform: linux-x86_64
25
+ os: ubuntu-24.04
26
+ arch: x86_64
27
+ - platform: linux-aarch64
28
+ os: ubuntu-24.04-arm
29
+ arch: aarch64
30
+ - platform: macos-arm64
31
+ os: macos-14
32
+ arch: arm64
33
+ - platform: windows-amd64
34
+ os: windows-2025
35
+ arch: AMD64
36
+
37
+ steps:
38
+ - name: Check out source
39
+ uses: actions/checkout@v6
40
+ with:
41
+ persist-credentials: false
42
+
43
+ - name: Build and test wheels
44
+ uses: pypa/cibuildwheel@v4.1.1
45
+ env:
46
+ CIBW_ARCHS: ${{ matrix.arch }}
47
+ with:
48
+ output-dir: wheelhouse
49
+
50
+ - name: Upload wheels
51
+ uses: actions/upload-artifact@v6
52
+ with:
53
+ name: wheels-${{ matrix.platform }}
54
+ path: wheelhouse/*.whl
55
+ if-no-files-found: error
56
+
57
+ build-sdist:
58
+ name: Build source distribution
59
+ runs-on: ubuntu-24.04
60
+
61
+ steps:
62
+ - name: Check out source
63
+ uses: actions/checkout@v6
64
+ with:
65
+ persist-credentials: false
66
+
67
+ - name: Set up Python
68
+ uses: actions/setup-python@v6
69
+ with:
70
+ python-version: "3.14"
71
+
72
+ - name: Build and check source distribution
73
+ run: |
74
+ python -m pip install build twine
75
+ python -m build --sdist
76
+ python -m twine check dist/*
77
+
78
+ - name: Upload source distribution
79
+ uses: actions/upload-artifact@v6
80
+ with:
81
+ name: sdist
82
+ path: dist/*.tar.gz
83
+ if-no-files-found: error
84
+
85
+ publish:
86
+ name: Publish to PyPI
87
+ if: github.event_name == 'release' && github.event.action == 'published'
88
+ needs:
89
+ - build-wheels
90
+ - build-sdist
91
+ runs-on: ubuntu-24.04
92
+ environment:
93
+ name: pypi
94
+ url: https://pypi.org/p/vc-delta3d
95
+ permissions:
96
+ id-token: write
97
+
98
+ steps:
99
+ - name: Download distributions
100
+ uses: actions/download-artifact@v5
101
+ with:
102
+ pattern: wheels-*
103
+ path: dist
104
+ merge-multiple: true
105
+
106
+ - name: Download source distribution
107
+ uses: actions/download-artifact@v5
108
+ with:
109
+ name: sdist
110
+ path: dist
111
+
112
+ - name: Publish distributions
113
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,6 @@
1
+ /build/
2
+ /_skbuild/
3
+ /dist/
4
+ /*.egg-info/
5
+ __pycache__/
6
+ *.py[cod]
@@ -0,0 +1,86 @@
1
+ cmake_minimum_required(VERSION 3.22)
2
+
3
+ project(vc_delta3d VERSION 0.1.0 LANGUAGES CXX)
4
+
5
+ include(GNUInstallDirs)
6
+ include(CMakePackageConfigHelpers)
7
+
8
+ option(VC_DELTA3D_BUILD_PYTHON "Build the Python extension" OFF)
9
+ option(VC_DELTA3D_BUILD_TESTS "Build the C++ codec tests" ${PROJECT_IS_TOP_LEVEL})
10
+ option(VC_DELTA3D_INSTALL_CPP "Install the C++ library and CMake package" ON)
11
+
12
+ add_library(vc_delta3d STATIC src/codec.cpp)
13
+ add_library(vc_delta3d::vc_delta3d ALIAS vc_delta3d)
14
+ set_target_properties(vc_delta3d PROPERTIES
15
+ EXPORT_NAME vc_delta3d
16
+ POSITION_INDEPENDENT_CODE ON
17
+ )
18
+ target_compile_features(vc_delta3d PUBLIC cxx_std_20)
19
+ target_include_directories(vc_delta3d
20
+ PUBLIC
21
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
22
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
23
+ )
24
+ if(VC_DELTA3D_BUILD_PYTHON)
25
+ find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
26
+ execute_process(
27
+ COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
28
+ OUTPUT_VARIABLE VC_DELTA3D_NANOBIND_CMAKE_DIR
29
+ RESULT_VARIABLE VC_DELTA3D_NANOBIND_RESULT
30
+ OUTPUT_STRIP_TRAILING_WHITESPACE
31
+ ERROR_QUIET
32
+ )
33
+ if(VC_DELTA3D_NANOBIND_RESULT EQUAL 0 AND VC_DELTA3D_NANOBIND_CMAKE_DIR)
34
+ list(APPEND CMAKE_PREFIX_PATH "${VC_DELTA3D_NANOBIND_CMAKE_DIR}")
35
+ endif()
36
+ find_package(nanobind CONFIG REQUIRED)
37
+
38
+ nanobind_add_module(vc_delta3d_python NOMINSIZE python/bindings.cpp)
39
+ set_target_properties(vc_delta3d_python PROPERTIES OUTPUT_NAME _codec)
40
+ target_link_libraries(vc_delta3d_python PRIVATE vc_delta3d::vc_delta3d)
41
+ target_compile_features(vc_delta3d_python PRIVATE cxx_std_20)
42
+ install(TARGETS vc_delta3d_python
43
+ LIBRARY DESTINATION vc_delta3d
44
+ RUNTIME DESTINATION vc_delta3d
45
+ )
46
+ endif()
47
+
48
+ if(VC_DELTA3D_BUILD_TESTS)
49
+ enable_testing()
50
+ add_executable(vc_delta3d_tests tests/test_codec.cpp)
51
+ target_include_directories(vc_delta3d_tests PRIVATE tests)
52
+ target_link_libraries(vc_delta3d_tests PRIVATE vc_delta3d::vc_delta3d)
53
+ add_test(NAME vc_delta3d_tests COMMAND vc_delta3d_tests)
54
+ endif()
55
+
56
+ if(VC_DELTA3D_INSTALL_CPP)
57
+ install(TARGETS vc_delta3d
58
+ EXPORT vc_delta3dTargets
59
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
60
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
61
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
62
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
63
+ )
64
+ install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
65
+ install(EXPORT vc_delta3dTargets
66
+ FILE vc_delta3dTargets.cmake
67
+ NAMESPACE vc_delta3d::
68
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vc_delta3d
69
+ )
70
+
71
+ configure_package_config_file(
72
+ cmake/vc_delta3dConfig.cmake.in
73
+ "${CMAKE_CURRENT_BINARY_DIR}/vc_delta3dConfig.cmake"
74
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vc_delta3d
75
+ )
76
+ write_basic_package_version_file(
77
+ "${CMAKE_CURRENT_BINARY_DIR}/vc_delta3dConfigVersion.cmake"
78
+ VERSION ${PROJECT_VERSION}
79
+ COMPATIBILITY SameMajorVersion
80
+ )
81
+ install(FILES
82
+ "${CMAKE_CURRENT_BINARY_DIR}/vc_delta3dConfig.cmake"
83
+ "${CMAKE_CURRENT_BINARY_DIR}/vc_delta3dConfigVersion.cmake"
84
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vc_delta3d
85
+ )
86
+ endif()