Repository navigation
Expand file tree
/
Copy pathmcpp.toml
More file actions
77 lines (69 loc) · 3.34 KB
/
Copy pathmcpp.toml
File metadata and controls
77 lines (69 loc) · 3.34 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
69
70
71
72
73
74
75
76
77
# Module wrapper; upstream API preserved. Policy: mcpp-index/docs/mwrap.md.
[package]
namespace = "mcpplibs.mwrap"
name = "recastnavigation"
version = "1.6.0.2"
description = "Recast & Detour 1.6.0 C++ modules for mcpp (import mcpplibs.mwrap.recastnavigation;): navigation meshes built from triangles, path queries, crowds of agents, tiled meshes with obstacles"
license = "Apache-2.0"
authors = ["mcpp-community"]
repo = "https://github.com/mcpplibs/recastnavigation-m"
platforms = ["linux", "macos", "windows", "emscripten"]
[targets.recastnavigation]
kind = "lib"
[build]
# The four libraries, vendored from the v1.6.0 release under
# upstream/recastnavigation (upstream/documents.json: the release tarball,
# each file's checksum, and which files patches/ changed) and built as
# upstream's CMake build does, without DebugUtils and the demo. Every platform
# makes the same mesh, path and crowd step from the same input: the compiler
# fuses no multiply and add into one rounding (arm64's default does, x86-64's
# cannot without FMA) and keeps IEEE semantics (no fast math), and no
# trigonometry comes from the platform's C library, whose cosf and sinf differ
# by an ulp between glibc, macOS, the Windows UCRT and emscripten: Detour's
# crowd and tile cache call Detour's own hooks (patches/0001; they called
# cosf and sinf directly), and the hooks (dtMathCosf, dtMathSinf,
# dtMathAtan2f) and Recast's walkable-slope cosf call port/DeterministicMath.cpp
# (patches/0002: IEEE arithmetic only, within 1 ulp of the correctly rounded
# float). sqrtf, floorf, ceilf and fabsf are exact under IEEE everywhere.
# patches/0003: with an even adaptiveDivs the crowd sampled an uninitialised
# direction (upstream issue #496), which no flag makes the same everywhere.
# patches/0004: the BV tree and the contours' hole merging sort with
# std::stable_sort instead of the C library's qsort, which is not stable and
# orders equal keys differently between glibc, macOS, the Windows UCRT and
# emscripten's musl, so a mesh with ties had different bytes by platform.
# NDEBUG: the same library in every profile — upstream declares its assert
# hooks (rcAssertFailSetCustom, dtAssertFailSetCustom) and checks only when
# NDEBUG is not defined, which would make the module's names differ between a
# dev and a release build.
sources = [
"src/*.cppm",
"upstream/recastnavigation/Recast/Source/*.cpp",
"upstream/recastnavigation/Detour/Source/*.cpp",
"upstream/recastnavigation/DetourCrowd/Source/*.cpp",
"upstream/recastnavigation/DetourTileCache/Source/*.cpp",
"port/*.cpp",
]
include_dirs = [
"upstream/recastnavigation/Recast/Include",
"upstream/recastnavigation/Detour/Include",
"upstream/recastnavigation/DetourCrowd/Include",
"upstream/recastnavigation/DetourTileCache/Include",
"port",
]
cxxflags = ["-DNDEBUG", "-ffp-contract=off", "-fno-fast-math"]
[dev-dependencies]
compat.gtest = "1.15.2"
[package.metadata.mwrap]
upstream-version = "1.6.0"
[[runtime.deploy]]
from = "LICENSE"
to = "licenses/recastnavigation"
[[runtime.deploy]]
from = "NOTICE"
to = "licenses/recastnavigation"
[[runtime.deploy]]
from = "upstream/recastnavigation/README.md"
to = "licenses/recastnavigation/upstream/recastnavigation"
[[runtime.deploy]]
from = "upstream/recastnavigation/License.txt"
to = "licenses/recastnavigation/upstream/recastnavigation"