pythoncdt 2.0.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.
- pythoncdt-2.0.0/.clang-format +52 -0
- pythoncdt-2.0.0/.github/dependabot.yml +9 -0
- pythoncdt-2.0.0/.github/release-drafter.yml +15 -0
- pythoncdt-2.0.0/.github/workflows/ci.yml +51 -0
- pythoncdt-2.0.0/.github/workflows/release-drafter.yml +15 -0
- pythoncdt-2.0.0/.github/workflows/wheels.yml +63 -0
- pythoncdt-2.0.0/.gitignore +13 -0
- pythoncdt-2.0.0/.gitmodules +3 -0
- pythoncdt-2.0.0/.pre-commit-config.yaml +7 -0
- pythoncdt-2.0.0/CDT/.clang-format +53 -0
- pythoncdt-2.0.0/CDT/.github/workflows/ci_builds.yml +167 -0
- pythoncdt-2.0.0/CDT/.github/workflows/documentation.yml +64 -0
- pythoncdt-2.0.0/CDT/.gitignore +89 -0
- pythoncdt-2.0.0/CDT/.gitmodules +3 -0
- pythoncdt-2.0.0/CDT/.mailmap +4 -0
- pythoncdt-2.0.0/CDT/CDT/CMakeLists.txt +324 -0
- pythoncdt-2.0.0/CDT/CDT/LICENSE +373 -0
- pythoncdt-2.0.0/CDT/CDT/conan_basic_setup.cmake +10 -0
- pythoncdt-2.0.0/CDT/CDT/conanfile.py +71 -0
- pythoncdt-2.0.0/CDT/CDT/extras/VerifyTopology.h +112 -0
- pythoncdt-2.0.0/CDT/CDT/include/CDT.h +447 -0
- pythoncdt-2.0.0/CDT/CDT/include/CDT.hpp +115 -0
- pythoncdt-2.0.0/CDT/CDT/include/CDTUtils.h +702 -0
- pythoncdt-2.0.0/CDT/CDT/include/CDTUtils.hpp +339 -0
- pythoncdt-2.0.0/CDT/CDT/include/KDTree.h +471 -0
- pythoncdt-2.0.0/CDT/CDT/include/LocatorKDTree.h +81 -0
- pythoncdt-2.0.0/CDT/CDT/include/Triangulation.h +1448 -0
- pythoncdt-2.0.0/CDT/CDT/include/Triangulation.hpp +2805 -0
- pythoncdt-2.0.0/CDT/CDT/include/portable_nth_element.hpp +313 -0
- pythoncdt-2.0.0/CDT/CDT/include/predicates.h +1022 -0
- pythoncdt-2.0.0/CDT/CDT/include/remove_at.hpp +55 -0
- pythoncdt-2.0.0/CDT/CDT/src/CDT.cpp +89 -0
- pythoncdt-2.0.0/CDT/LICENSE +373 -0
- pythoncdt-2.0.0/CDT/visualizer/CMakeLists.txt +24 -0
- pythoncdt-2.0.0/CDT/visualizer/LICENSE +373 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Capital A.txt +59 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Constrained Sweden.txt +5239 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Hanging.txt +9 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Hanging2.txt +23 -0
- pythoncdt-2.0.0/CDT/visualizer/data/HangingIntersection.txt +10 -0
- pythoncdt-2.0.0/CDT/visualizer/data/LakeSuperior.txt +1553 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Letter u.txt +17 -0
- pythoncdt-2.0.0/CDT/visualizer/data/OnEdge.txt +21 -0
- pythoncdt-2.0.0/CDT/visualizer/data/OnEdge2.txt +35 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Orange County.txt +233 -0
- pythoncdt-2.0.0/CDT/visualizer/data/ProblematicCase1.txt +10 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Sweden with constraints.txt +2641 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Sweden with duplicate points.txt +2639 -0
- pythoncdt-2.0.0/CDT/visualizer/data/Sweden.txt +2620 -0
- pythoncdt-2.0.0/CDT/visualizer/data/cdt.txt +205 -0
- pythoncdt-2.0.0/CDT/visualizer/data/cdt_duplicates.txt +207 -0
- pythoncdt-2.0.0/CDT/visualizer/data/corner cases.txt +19 -0
- pythoncdt-2.0.0/CDT/visualizer/data/crossing-edges.txt +7 -0
- pythoncdt-2.0.0/CDT/visualizer/data/ditch.txt +24 -0
- pythoncdt-2.0.0/CDT/visualizer/data/duplicates.txt +12 -0
- pythoncdt-2.0.0/CDT/visualizer/data/gh_issue.txt +157 -0
- pythoncdt-2.0.0/CDT/visualizer/data/guitar no box.txt +289 -0
- pythoncdt-2.0.0/CDT/visualizer/data/guitar.txt +293 -0
- pythoncdt-2.0.0/CDT/visualizer/data/island.txt +191 -0
- pythoncdt-2.0.0/CDT/visualizer/data/issue-42-full-boundary-overlap-2.txt +29 -0
- pythoncdt-2.0.0/CDT/visualizer/data/issue-42-full-boundary-overlap.txt +29 -0
- pythoncdt-2.0.0/CDT/visualizer/data/issue-42-hole-overlaps-bondary.txt +17 -0
- pythoncdt-2.0.0/CDT/visualizer/data/issue-42-multiple-boundary-overlaps-conform-to-edge.txt +37 -0
- pythoncdt-2.0.0/CDT/visualizer/data/issue-42-multiple-boundary-overlaps.txt +33 -0
- pythoncdt-2.0.0/CDT/visualizer/data/issue-65-wrong-edges.txt +4 -0
- pythoncdt-2.0.0/CDT/visualizer/data/kidney.txt +101 -0
- pythoncdt-2.0.0/CDT/visualizer/data/overlapping constraints.txt +17 -0
- pythoncdt-2.0.0/CDT/visualizer/data/overlapping constraints2.txt +13 -0
- pythoncdt-2.0.0/CDT/visualizer/data/points_on_constraint_edge.txt +14 -0
- pythoncdt-2.0.0/CDT/visualizer/data/regression_issue_38_wrong_hull.txt +37 -0
- pythoncdt-2.0.0/CDT/visualizer/data/regression_issue_38_wrong_hull_small.txt +7 -0
- pythoncdt-2.0.0/CDT/visualizer/data/square with crack.txt +15 -0
- pythoncdt-2.0.0/CDT/visualizer/data/unit square.txt +9 -0
- pythoncdt-2.0.0/CDT/visualizer/main.cpp +1174 -0
- pythoncdt-2.0.0/CMakeLists.txt +13 -0
- pythoncdt-2.0.0/LICENSE +373 -0
- pythoncdt-2.0.0/PKG-INFO +129 -0
- pythoncdt-2.0.0/README.md +101 -0
- pythoncdt-2.0.0/benchmark_gil_release.py +47 -0
- pythoncdt-2.0.0/benchmark_list_vs_array_access.py +18 -0
- pythoncdt-2.0.0/pyproject.toml +75 -0
- pythoncdt-2.0.0/src/cdt_bindings.cpp +551 -0
- pythoncdt-2.0.0/src/pythoncdt/__init__.py +8 -0
- pythoncdt-2.0.0/src/pythoncdt/_core.pyi +157 -0
- pythoncdt-2.0.0/src/pythoncdt/py.typed +0 -0
- pythoncdt-2.0.0/tests/stubtest-allowlist.txt +12 -0
- pythoncdt-2.0.0/tests/test_bindings.py +393 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# ================================
|
|
2
|
+
# Can be used when needed locally:
|
|
3
|
+
# ================================
|
|
4
|
+
SortIncludes: false
|
|
5
|
+
SortUsingDeclarations: true
|
|
6
|
+
|
|
7
|
+
AccessModifierOffset: -4
|
|
8
|
+
AlignAfterOpenBracket: AlwaysBreak
|
|
9
|
+
AllowAllParametersOfDeclarationOnNextLine: false
|
|
10
|
+
AllowShortBlocksOnASingleLine: false
|
|
11
|
+
AllowShortCaseLabelsOnASingleLine: false
|
|
12
|
+
AllowShortFunctionsOnASingleLine: None
|
|
13
|
+
AllowShortIfStatementsOnASingleLine: false
|
|
14
|
+
AllowShortLoopsOnASingleLine: false
|
|
15
|
+
AlwaysBreakTemplateDeclarations: true
|
|
16
|
+
BinPackArguments: false
|
|
17
|
+
BinPackParameters: false
|
|
18
|
+
BreakConstructorInitializersBeforeComma: true
|
|
19
|
+
ColumnLimit: 80
|
|
20
|
+
ConstructorInitializerIndentWidth: 4
|
|
21
|
+
ContinuationIndentWidth: 4
|
|
22
|
+
DerivePointerAlignment: false
|
|
23
|
+
PointerAlignment: Left
|
|
24
|
+
IndentWidth: 4
|
|
25
|
+
Language: Cpp
|
|
26
|
+
NamespaceIndentation: None
|
|
27
|
+
SpaceBeforeParens: ControlStatements
|
|
28
|
+
SpacesBeforeTrailingComments: 1
|
|
29
|
+
Standard: Cpp03
|
|
30
|
+
UseTab: Never
|
|
31
|
+
|
|
32
|
+
# =====================
|
|
33
|
+
# Clang 5 new features:
|
|
34
|
+
# =====================
|
|
35
|
+
BreakBeforeBraces: Custom
|
|
36
|
+
BraceWrapping:
|
|
37
|
+
AfterClass: true
|
|
38
|
+
AfterControlStatement: true
|
|
39
|
+
AfterEnum : true
|
|
40
|
+
AfterFunction : true
|
|
41
|
+
AfterNamespace : true
|
|
42
|
+
AfterStruct : true
|
|
43
|
+
AfterUnion : true
|
|
44
|
+
BeforeCatch : true
|
|
45
|
+
BeforeElse : true
|
|
46
|
+
IndentBraces : false
|
|
47
|
+
SplitEmptyFunction: false
|
|
48
|
+
SplitEmptyRecord: false
|
|
49
|
+
SplitEmptyNamespace: true
|
|
50
|
+
BreakBeforeInheritanceComma: true
|
|
51
|
+
FixNamespaceComments: true
|
|
52
|
+
ReflowComments: true
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name-template: $RESOLVED_VERSION
|
|
2
|
+
tag-template: $RESOLVED_VERSION
|
|
3
|
+
# The pull request labels choose the next version; unlabeled ones count as patch
|
|
4
|
+
categories:
|
|
5
|
+
- type: version-resolver
|
|
6
|
+
semver-increment: major
|
|
7
|
+
when:
|
|
8
|
+
label: major
|
|
9
|
+
- type: version-resolver
|
|
10
|
+
semver-increment: minor
|
|
11
|
+
when:
|
|
12
|
+
label: minor
|
|
13
|
+
- type: version-resolver
|
|
14
|
+
template: |
|
|
15
|
+
$CHANGES
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
concurrency:
|
|
9
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
10
|
+
cancel-in-progress: true
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v7
|
|
17
|
+
- run: pipx run pre-commit run --all-files --show-diff-on-failure
|
|
18
|
+
|
|
19
|
+
test:
|
|
20
|
+
name: ${{ matrix.os }} / Python ${{ matrix.python-version }}
|
|
21
|
+
runs-on: ${{ matrix.os }}
|
|
22
|
+
strategy:
|
|
23
|
+
fail-fast: false
|
|
24
|
+
matrix:
|
|
25
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
26
|
+
python-version: ["3.10", "3.14", "3.14t"]
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v7
|
|
29
|
+
with:
|
|
30
|
+
submodules: true
|
|
31
|
+
fetch-depth: 0
|
|
32
|
+
- uses: actions/setup-python@v7
|
|
33
|
+
with:
|
|
34
|
+
python-version: ${{ matrix.python-version }}
|
|
35
|
+
- run: python -m pip install --upgrade pip
|
|
36
|
+
- run: python -m pip install . --group test
|
|
37
|
+
- run: python -m pytest ${{ endsWith(matrix.python-version, 't') && '--parallel-threads=4' || '' }}
|
|
38
|
+
|
|
39
|
+
stubs:
|
|
40
|
+
name: Type stubs match the module
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/checkout@v7
|
|
44
|
+
with:
|
|
45
|
+
submodules: true
|
|
46
|
+
fetch-depth: 0
|
|
47
|
+
- uses: actions/setup-python@v7
|
|
48
|
+
with:
|
|
49
|
+
python-version: "3.x"
|
|
50
|
+
- run: python -m pip install . mypy
|
|
51
|
+
- run: python -m mypy.stubtest pythoncdt --allowlist tests/stubtest-allowlist.txt
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: Wheels
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
release:
|
|
6
|
+
types: [published]
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
sdist:
|
|
15
|
+
name: Source distribution
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v7
|
|
19
|
+
with:
|
|
20
|
+
submodules: true
|
|
21
|
+
fetch-depth: 0 # the version comes from git tags
|
|
22
|
+
# Builds the sdist, then a wheel from it: proves the sdist is complete
|
|
23
|
+
- run: pipx run build
|
|
24
|
+
- uses: actions/upload-artifact@v7
|
|
25
|
+
with:
|
|
26
|
+
name: dist-sdist
|
|
27
|
+
path: dist/*.tar.gz
|
|
28
|
+
|
|
29
|
+
wheels:
|
|
30
|
+
name: Wheels on ${{ matrix.os }}
|
|
31
|
+
runs-on: ${{ matrix.os }}
|
|
32
|
+
strategy:
|
|
33
|
+
fail-fast: false
|
|
34
|
+
matrix:
|
|
35
|
+
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-15-intel, macos-latest]
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/checkout@v7
|
|
38
|
+
with:
|
|
39
|
+
submodules: true
|
|
40
|
+
fetch-depth: 0
|
|
41
|
+
- uses: pypa/cibuildwheel@v4.3.0
|
|
42
|
+
- uses: actions/upload-artifact@v7
|
|
43
|
+
with:
|
|
44
|
+
name: dist-wheels-${{ matrix.os }}
|
|
45
|
+
path: wheelhouse/*.whl
|
|
46
|
+
|
|
47
|
+
publish:
|
|
48
|
+
name: Publish to PyPI
|
|
49
|
+
if: github.event_name == 'release' && github.repository == 'artem-ogre/PythonCDT'
|
|
50
|
+
needs: [sdist, wheels]
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
environment:
|
|
53
|
+
name: pypi
|
|
54
|
+
url: https://pypi.org/p/pythoncdt
|
|
55
|
+
permissions:
|
|
56
|
+
id-token: write
|
|
57
|
+
steps:
|
|
58
|
+
- uses: actions/download-artifact@v8
|
|
59
|
+
with:
|
|
60
|
+
pattern: dist-*
|
|
61
|
+
path: dist
|
|
62
|
+
merge-multiple: true
|
|
63
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# ================================
|
|
2
|
+
# Can be used when needed locally:
|
|
3
|
+
# ================================
|
|
4
|
+
SortIncludes: true
|
|
5
|
+
SortUsingDeclarations: true
|
|
6
|
+
|
|
7
|
+
AccessModifierOffset: -4
|
|
8
|
+
AlignAfterOpenBracket: AlwaysBreak
|
|
9
|
+
AllowAllParametersOfDeclarationOnNextLine: false
|
|
10
|
+
AllowShortBlocksOnASingleLine: false
|
|
11
|
+
AllowShortCaseLabelsOnASingleLine: false
|
|
12
|
+
AllowShortFunctionsOnASingleLine: None
|
|
13
|
+
AllowShortIfStatementsOnASingleLine: false
|
|
14
|
+
AllowShortLoopsOnASingleLine: false
|
|
15
|
+
AlwaysBreakTemplateDeclarations: true
|
|
16
|
+
BinPackArguments: false
|
|
17
|
+
BinPackParameters: false
|
|
18
|
+
BreakConstructorInitializersBeforeComma: true
|
|
19
|
+
ColumnLimit: 80
|
|
20
|
+
ConstructorInitializerIndentWidth: 4
|
|
21
|
+
ContinuationIndentWidth: 4
|
|
22
|
+
DerivePointerAlignment: false
|
|
23
|
+
PointerAlignment: Left
|
|
24
|
+
IndentWidth: 4
|
|
25
|
+
Language: Cpp
|
|
26
|
+
NamespaceIndentation: None
|
|
27
|
+
SpaceBeforeParens: Never
|
|
28
|
+
SpacesBeforeTrailingComments: 1
|
|
29
|
+
Standard: Cpp03
|
|
30
|
+
UseTab: Never
|
|
31
|
+
|
|
32
|
+
# =====================
|
|
33
|
+
# Clang 5 new features:
|
|
34
|
+
# =====================
|
|
35
|
+
BreakBeforeBraces: Custom
|
|
36
|
+
BraceWrapping:
|
|
37
|
+
AfterCaseLabel: true
|
|
38
|
+
AfterClass: true
|
|
39
|
+
AfterControlStatement: true
|
|
40
|
+
AfterEnum : true
|
|
41
|
+
AfterFunction : true
|
|
42
|
+
AfterNamespace : true
|
|
43
|
+
AfterStruct : true
|
|
44
|
+
AfterUnion : true
|
|
45
|
+
BeforeCatch : true
|
|
46
|
+
BeforeElse : true
|
|
47
|
+
IndentBraces : false
|
|
48
|
+
SplitEmptyFunction: false
|
|
49
|
+
SplitEmptyRecord: false
|
|
50
|
+
SplitEmptyNamespace: true
|
|
51
|
+
BreakBeforeInheritanceComma: true
|
|
52
|
+
FixNamespaceComments: true
|
|
53
|
+
ReflowComments: true
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
name: CI Builds
|
|
2
|
+
|
|
3
|
+
# Only master on push: branches are covered by the pull_request event, which
|
|
4
|
+
# additionally tests the result of merging into master. Running on every push
|
|
5
|
+
# would build a branch with an open pull request twice.
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches: [master]
|
|
9
|
+
pull_request:
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
builds:
|
|
13
|
+
name: ${{ matrix.config.name }}
|
|
14
|
+
runs-on: ${{ matrix.config.os }}
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
config:
|
|
19
|
+
- name: "Windows 2025 (x64)"
|
|
20
|
+
os: windows-2025
|
|
21
|
+
- name: "Ubuntu 24.04 (x64)"
|
|
22
|
+
os: ubuntu-24.04
|
|
23
|
+
- name: "Ubuntu 24.04 (arm64)"
|
|
24
|
+
os: ubuntu-24.04-arm
|
|
25
|
+
- name: "macOS 15 (arm64)"
|
|
26
|
+
os: macos-15
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v4
|
|
30
|
+
with:
|
|
31
|
+
submodules: true
|
|
32
|
+
|
|
33
|
+
- name: Set up Python
|
|
34
|
+
uses: actions/setup-python@v5
|
|
35
|
+
with:
|
|
36
|
+
python-version: '3.x'
|
|
37
|
+
|
|
38
|
+
- name: Install Conan
|
|
39
|
+
run: |
|
|
40
|
+
python -m pip install --upgrade pip
|
|
41
|
+
pip install conan
|
|
42
|
+
conan --version
|
|
43
|
+
conan profile detect
|
|
44
|
+
|
|
45
|
+
- name: "Build: compiled, shared, boost"
|
|
46
|
+
run: conan create CDT/ -o as_compiled_library=True -o shared=True -o use_boost=True -o enable_testing=True --build missing
|
|
47
|
+
- name: "Build: compiled, shared, without boost"
|
|
48
|
+
run: conan create CDT/ -o as_compiled_library=True -o shared=True -o use_boost=False -o enable_testing=True
|
|
49
|
+
- name: "Build: compiled, static, boost"
|
|
50
|
+
run: conan create CDT/ -o as_compiled_library=True -o use_boost=True -o enable_testing=True --build missing
|
|
51
|
+
- name: "Build: compiled, static, without boost"
|
|
52
|
+
run: conan create CDT/ -o as_compiled_library=True -o use_boost=False -o enable_testing=True
|
|
53
|
+
- name: "Build: header-only, boost"
|
|
54
|
+
run: conan create CDT/ -o use_boost=True -o enable_testing=True --build missing
|
|
55
|
+
- name: "Build: header-only, without boost, with callbacks"
|
|
56
|
+
run: conan create CDT/ -o use_boost=False -o enable_testing=True -o enable_callback_handler=True
|
|
57
|
+
|
|
58
|
+
standards:
|
|
59
|
+
name: "C++${{ matrix.std }} (${{ matrix.cxx }})"
|
|
60
|
+
runs-on: ubuntu-24.04
|
|
61
|
+
strategy:
|
|
62
|
+
fail-fast: false
|
|
63
|
+
matrix:
|
|
64
|
+
include:
|
|
65
|
+
# oldest supported standard: Boost stands in for the c++11 features
|
|
66
|
+
- std: 98
|
|
67
|
+
cxx: g++-13
|
|
68
|
+
boost: "ON"
|
|
69
|
+
- std: 11
|
|
70
|
+
cxx: g++-13
|
|
71
|
+
boost: "OFF"
|
|
72
|
+
- std: 14
|
|
73
|
+
cxx: g++-13
|
|
74
|
+
boost: "OFF"
|
|
75
|
+
- std: 17
|
|
76
|
+
cxx: g++-13
|
|
77
|
+
boost: "OFF"
|
|
78
|
+
- std: 20
|
|
79
|
+
cxx: g++-13
|
|
80
|
+
boost: "OFF"
|
|
81
|
+
- std: 23
|
|
82
|
+
cxx: g++-13
|
|
83
|
+
boost: "OFF"
|
|
84
|
+
# newest standard: g++-13 does not know -std=c++26
|
|
85
|
+
- std: 26
|
|
86
|
+
cxx: g++-14
|
|
87
|
+
boost: "OFF"
|
|
88
|
+
|
|
89
|
+
steps:
|
|
90
|
+
- uses: actions/checkout@v4
|
|
91
|
+
|
|
92
|
+
- name: Set up Python
|
|
93
|
+
uses: actions/setup-python@v5
|
|
94
|
+
with:
|
|
95
|
+
python-version: '3.x'
|
|
96
|
+
|
|
97
|
+
- name: Install compiler
|
|
98
|
+
run: |
|
|
99
|
+
sudo apt-get update
|
|
100
|
+
sudo apt-get install -y ${{ matrix.cxx }}
|
|
101
|
+
|
|
102
|
+
- name: Install Conan and fetch Boost
|
|
103
|
+
if: matrix.boost == 'ON'
|
|
104
|
+
run: |
|
|
105
|
+
python -m pip install --upgrade pip
|
|
106
|
+
pip install conan
|
|
107
|
+
conan profile detect
|
|
108
|
+
conan install --requires=boost/1.83.0 -o "boost/*:header_only=True" \
|
|
109
|
+
-g CMakeDeps --output-folder=boost-dep --build=missing
|
|
110
|
+
|
|
111
|
+
- name: "Header-only: build and run"
|
|
112
|
+
run: |
|
|
113
|
+
cmake -S CDT -B build-header-only \
|
|
114
|
+
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
|
|
115
|
+
-DCMAKE_CXX_STANDARD=${{ matrix.std }} \
|
|
116
|
+
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
|
117
|
+
-DCMAKE_PREFIX_PATH="$PWD/boost-dep" \
|
|
118
|
+
-DCDT_USE_BOOST=${{ matrix.boost }} \
|
|
119
|
+
-DCDT_ENABLE_STANDARDS_CHECK=ON \
|
|
120
|
+
-DCMAKE_BUILD_TYPE=Release
|
|
121
|
+
cmake --build build-header-only -j
|
|
122
|
+
./build-header-only/CDT-standards-check
|
|
123
|
+
|
|
124
|
+
- name: "Compiled library: build and run"
|
|
125
|
+
run: |
|
|
126
|
+
cmake -S CDT -B build-compiled \
|
|
127
|
+
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
|
|
128
|
+
-DCMAKE_CXX_STANDARD=${{ matrix.std }} \
|
|
129
|
+
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
|
130
|
+
-DCMAKE_PREFIX_PATH="$PWD/boost-dep" \
|
|
131
|
+
-DCDT_USE_BOOST=${{ matrix.boost }} \
|
|
132
|
+
-DCDT_USE_AS_COMPILED_LIBRARY=ON \
|
|
133
|
+
-DCDT_ENABLE_STANDARDS_CHECK=ON \
|
|
134
|
+
-DCMAKE_BUILD_TYPE=Release
|
|
135
|
+
cmake --build build-compiled -j
|
|
136
|
+
./build-compiled/CDT-standards-check
|
|
137
|
+
|
|
138
|
+
fast-math:
|
|
139
|
+
name: "Fast math (${{ matrix.compiler }})"
|
|
140
|
+
runs-on: ${{ matrix.os }}
|
|
141
|
+
strategy:
|
|
142
|
+
fail-fast: false
|
|
143
|
+
matrix:
|
|
144
|
+
include:
|
|
145
|
+
- compiler: MSVC
|
|
146
|
+
os: windows-2025
|
|
147
|
+
flags: "/arch:AVX2 /fp:fast /fp:contract"
|
|
148
|
+
- compiler: GCC
|
|
149
|
+
os: ubuntu-24.04
|
|
150
|
+
flags: "-march=haswell -ffast-math"
|
|
151
|
+
- compiler: Clang
|
|
152
|
+
os: macos-15
|
|
153
|
+
flags: "-ffast-math"
|
|
154
|
+
|
|
155
|
+
steps:
|
|
156
|
+
- uses: actions/checkout@v4
|
|
157
|
+
with:
|
|
158
|
+
submodules: true
|
|
159
|
+
|
|
160
|
+
- name: Build and test
|
|
161
|
+
shell: bash
|
|
162
|
+
env:
|
|
163
|
+
CXXFLAGS: ${{ matrix.flags }}
|
|
164
|
+
run: |
|
|
165
|
+
cmake -S CDT -B build -DCDT_ENABLE_TESTING=ON -DCMAKE_BUILD_TYPE=Release -DCDT_ENSURE_PRECISE_MATH_IN_CONSTRUCTIONS=ON
|
|
166
|
+
cmake --build build --config Release -j
|
|
167
|
+
ctest --test-dir build -C Release --output-on-failure
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
|
|
3
|
+
# Same rationale as in ci_builds.yml: master on push, branches via pull_request.
|
|
4
|
+
# Pull requests only check that the docs still build, master also publishes them.
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches: [master]
|
|
8
|
+
pull_request:
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
pages: write
|
|
14
|
+
id-token: write
|
|
15
|
+
|
|
16
|
+
# Never let two deployments to GitHub Pages run at the same time.
|
|
17
|
+
concurrency:
|
|
18
|
+
group: github-pages
|
|
19
|
+
cancel-in-progress: false
|
|
20
|
+
|
|
21
|
+
env:
|
|
22
|
+
# Keep in sync with the Doxygen version the docs were last generated with
|
|
23
|
+
DOXYGEN_VERSION: "1.13.2"
|
|
24
|
+
|
|
25
|
+
jobs:
|
|
26
|
+
build:
|
|
27
|
+
name: Generate Doxygen documentation
|
|
28
|
+
runs-on: ubuntu-24.04
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v4
|
|
31
|
+
|
|
32
|
+
- name: Install Graphviz
|
|
33
|
+
run: sudo apt-get update && sudo apt-get install --yes graphviz
|
|
34
|
+
|
|
35
|
+
- name: Install Doxygen
|
|
36
|
+
run: |
|
|
37
|
+
tag="Release_${DOXYGEN_VERSION//./_}"
|
|
38
|
+
url="https://github.com/doxygen/doxygen/releases/download/$tag/doxygen-$DOXYGEN_VERSION.linux.bin.tar.gz"
|
|
39
|
+
curl --fail --silent --show-error --location "$url" | sudo tar xz -C /opt
|
|
40
|
+
echo "/opt/doxygen-$DOXYGEN_VERSION/bin" >> "$GITHUB_PATH"
|
|
41
|
+
|
|
42
|
+
- name: Configure
|
|
43
|
+
run: cmake -S CDT -B build
|
|
44
|
+
|
|
45
|
+
- name: Generate documentation
|
|
46
|
+
run: cmake --build build --target CDT-docs
|
|
47
|
+
|
|
48
|
+
- name: Upload GitHub Pages artifact
|
|
49
|
+
uses: actions/upload-pages-artifact@v3
|
|
50
|
+
with:
|
|
51
|
+
path: build/docs/html
|
|
52
|
+
|
|
53
|
+
deploy:
|
|
54
|
+
name: Deploy to GitHub Pages
|
|
55
|
+
needs: build
|
|
56
|
+
if: github.event_name != 'pull_request'
|
|
57
|
+
runs-on: ubuntu-24.04
|
|
58
|
+
environment:
|
|
59
|
+
name: github-pages
|
|
60
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
61
|
+
steps:
|
|
62
|
+
- name: Deploy
|
|
63
|
+
id: deployment
|
|
64
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# This file is used to ignore files which are generated
|
|
2
|
+
# ----------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
build/
|
|
5
|
+
cmake-build*/
|
|
6
|
+
*~
|
|
7
|
+
*.autosave
|
|
8
|
+
*.a
|
|
9
|
+
*.core
|
|
10
|
+
*.moc
|
|
11
|
+
*.o
|
|
12
|
+
*.obj
|
|
13
|
+
*.orig
|
|
14
|
+
*.rej
|
|
15
|
+
*.so
|
|
16
|
+
*.so.*
|
|
17
|
+
*_pch.h.cpp
|
|
18
|
+
*_resource.rc
|
|
19
|
+
*.qm
|
|
20
|
+
.#*
|
|
21
|
+
*.*#
|
|
22
|
+
core
|
|
23
|
+
!core/
|
|
24
|
+
tags
|
|
25
|
+
.DS_Store
|
|
26
|
+
.directory
|
|
27
|
+
*.debug
|
|
28
|
+
Makefile*
|
|
29
|
+
*.prl
|
|
30
|
+
*.app
|
|
31
|
+
moc_*.cpp
|
|
32
|
+
ui_*.h
|
|
33
|
+
qrc_*.cpp
|
|
34
|
+
Thumbs.db
|
|
35
|
+
*.res
|
|
36
|
+
*.rc
|
|
37
|
+
/.qmake.cache
|
|
38
|
+
/.qmake.stash
|
|
39
|
+
|
|
40
|
+
# qtcreator generated files
|
|
41
|
+
*.pro.user*
|
|
42
|
+
|
|
43
|
+
# xemacs temporary files
|
|
44
|
+
*.flc
|
|
45
|
+
|
|
46
|
+
# Vim temporary files
|
|
47
|
+
.*.swp
|
|
48
|
+
|
|
49
|
+
# Visual Studio generated files
|
|
50
|
+
*.ib_pdb_index
|
|
51
|
+
*.idb
|
|
52
|
+
*.ilk
|
|
53
|
+
*.pdb
|
|
54
|
+
*.sln
|
|
55
|
+
*.suo
|
|
56
|
+
*.vcproj
|
|
57
|
+
*vcproj.*.*.user
|
|
58
|
+
*.ncb
|
|
59
|
+
*.sdf
|
|
60
|
+
*.opensdf
|
|
61
|
+
*.vcxproj
|
|
62
|
+
*vcxproj.*
|
|
63
|
+
|
|
64
|
+
# MinGW generated files
|
|
65
|
+
*.Debug
|
|
66
|
+
*.Release
|
|
67
|
+
|
|
68
|
+
# Python byte code
|
|
69
|
+
*.pyc
|
|
70
|
+
|
|
71
|
+
# Binaries
|
|
72
|
+
# --------
|
|
73
|
+
*.dll
|
|
74
|
+
*.exe
|
|
75
|
+
|
|
76
|
+
# xcode
|
|
77
|
+
*.xcode*
|
|
78
|
+
# moc
|
|
79
|
+
moc_*.h
|
|
80
|
+
|
|
81
|
+
# CLion
|
|
82
|
+
*.idea*
|
|
83
|
+
|
|
84
|
+
# Visual code files
|
|
85
|
+
*.code-workspace
|
|
86
|
+
*.vscode
|
|
87
|
+
|
|
88
|
+
# Claude Code
|
|
89
|
+
.claude/
|