-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbinding.yml
More file actions
68 lines (59 loc) · 3.47 KB
/
Copy pathbinding.yml
File metadata and controls
68 lines (59 loc) · 3.47 KB
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
# Binding manifest — see https://github.com/EvergineTeam/Evergine.Bindings
# Schema: https://github.com/EvergineTeam/Evergine.Bindings/blob/main/binding.schema.json
toolbox: 1.25.0
# Read by cpp-wrapper-porter. The profile decides everything the shared conventions
# deliberately leave open -- identifier scheme, overload policy, how a bump is applied here,
# how the tests run. Required rather than inferred: reading this codebase would tell the
# agent what it does, not which of its habits are decisions.
wrapper:
profile: .github/wrapper-profile.md
version-macro: CESIUMC_CESIUM_NATIVE_VERSION
# This repository is not a binding: it produces no NuGet package and runs no C# generator.
# It is the C layer that Cesium.NET binds to, and it carries a manifest so the toolbox can
# answer "has upstream moved?" here with the same machinery it uses everywhere else.
upstream:
kind: git-submodule
language: cpp
project: https://github.com/CesiumGS/cesium-native
version-from: git-release
release:
repo: CesiumGS/cesium-native
# `tags`, not `stable`, and this is the unusual part. CesiumGS tags every release and
# publishes **no** GitHub Releases at all -- sixty-odd tags, zero releases -- so
# `releases/latest` answers 404 and `stable` cannot resolve here. `tags` reads the tag
# list and takes the highest plain version, skipping prerelease suffixes.
#
# The cost, since it is not free: with `stable` the upstream author decides what counts
# as newest, and here we decide by parsing version strings. Needs toolbox >= 1.25.0.
track: tags
current: v0.63.0
# report-only. Moving this pointer is not a mechanical edit: there is no generator, so a
# C++ API change becomes a compile error that somebody -- or cpp-wrapper-porter -- has to
# resolve by hand in src/. And here the bump is three moves rather than one; see the
# profile.
bump: report-only
sources:
- repo: CesiumGS/cesium-native
path: cesium-native
format: c-header
# Repositories told directly when a release is cut here, instead of finding out from their own
# monthly cron -- which fires the day *before* this repository's porter agent runs, so a version
# took two months to reach a NuGet package rather than one.
#
# Declared here rather than in the workflow because who consumes this wrapper is a fact about the
# project, not about how CI happens to be wired this month.
downstream:
- repo: EvergineTeam/Cesium.NET
# NOTE — CESIUMC_CESIUM_NATIVE_VERSION in include/cesium/cesium_common.h must agree with
# release.current. It is the only version statement a consumer can read without cloning this
# repository, and Cesium.NET has no other way to say which Cesium it binds to. Nothing checks
# the two mechanically, so a bump changes both or the header lies.
# NOTE — a bump here is three edits, not one: the submodule pointer, the vcpkg baseline in
# vcpkg-configuration.json, and the explicit library list in target_link_libraries. Missing
# the second or third produces a build that succeeds against the old dependency set, which is
# worse than one that fails.
# NOTE — patches/cesium-native-wasm-shared-memory-option.patch is applied to the submodule
# for the browser-wasm build only. It is written in the shape a pull request to cesium-native
# would take, and it is applied with `git apply --check` first, so a bump that moves the lines
# it touches fails saying so. If upstream ever accepts the option, delete the patch and pass
# -DCESIUM_WASM_SHARED_MEMORY=OFF on its own.