Repository navigation
Expand file tree
/
Copy pathmcpp.toml
More file actions
63 lines (54 loc) · 2.37 KB
/
Copy pathmcpp.toml
File metadata and controls
63 lines (54 loc) · 2.37 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
# Module wrapper; upstream API preserved. Policy: mcpp-index/docs/mwrap.md.
[package]
namespace = "mcpplibs.mwrap"
name = "jolt"
version = "5.6.0"
description = "Jolt Physics 5.6.0 C++ modules for mcpp (import mcpplibs.mwrap.jolt;): rigid bodies, shapes, constraints, queries, characters, vehicles and soft bodies; cross-platform deterministic, state saved and restored"
license = "Apache-2.0"
authors = ["mcpp-community"]
repo = "https://github.com/mcpplibs/jolt-m"
platforms = ["linux", "macos", "windows", "emscripten"]
[targets.jolt]
kind = "lib"
[build]
# The library is vendored byte for byte from the v5.6.0 release under
# upstream/jolt and built as upstream's CMake build does with
# CROSS_PLATFORM_DETERMINISTIC on (JPH_CROSS_PLATFORM_DETERMINISTIC, no
# contraction of a*b+c into an FMA: the same simulation, bit for bit, on
# x86-64, arm64 and wasm32), and without the parts upstream enables only in its
# Debug and Release configurations or as options: no debug renderer, no
# profiler, no object stream, no GPU compute backend. The SIMD level is the
# target's baseline (SSE2 on x86-64, NEON on arm64), so a binary runs on any
# machine of its architecture; in the deterministic mode the level does not
# change a result. JPH_NO_DEBUG: the same library in every profile — upstream
# turns on its asserts and debug-only members when NDEBUG is not defined,
# which would make the module's names differ between a dev and a release build.
sources = [
"src/*.cppm",
"upstream/jolt/Jolt/*.cpp",
"upstream/jolt/Jolt/*/*.cpp",
"upstream/jolt/Jolt/*/*/*.cpp",
"upstream/jolt/Jolt/*/*/*/*.cpp",
]
include_dirs = ["upstream/jolt"]
cxxflags = ["-DJPH_CROSS_PLATFORM_DETERMINISTIC", "-DJPH_NO_DEBUG", "-ffp-contract=off", "-fno-fast-math"]
[dev-dependencies]
compat.gtest = "1.15.2"
[package.metadata.mwrap]
upstream-version = "5.6.0"
[[runtime.deploy]]
from = "LICENSE"
to = "licenses/jolt"
[[runtime.deploy]]
from = "NOTICE"
to = "licenses/jolt"
[[runtime.deploy]]
from = "upstream/jolt/README.md"
to = "licenses/jolt/upstream/jolt"
[[runtime.deploy]]
from = "upstream/jolt/LICENSE"
to = "licenses/jolt/upstream/jolt"
# The Web: Jolt's step keeps more on the stack than Emscripten's default of
# 64 KiB, and a world's allocations grow the memory.
[target.'cfg(os = "emscripten")'.build]
ldflags = ["-sALLOW_MEMORY_GROWTH=1", "-sSTACK_SIZE=1048576"]