native "<target>" "<path>" in a package's package.ludic; the compiler records the libraries of every package a program imports and writes them into the IR (; ludic-native:), so ludicc -o, ludic build, ludic test and ludic bundle all link one list. macOS: an rpath to the package and to Contents/Frameworks, where ludic bundle copies and signs each library and drops the build machine's rpath. Windows: the import library, the .dll copied beside the exe (--natives-out for the bundle). tools/native/lib.sh builds from a pinned, checksummed source with clang on both machines; ludic.nativeecho is the worked example; the shim rules are in packages/README.md. Linked at build time rather than dlopen (docs/PACKAGES.md says why). Reseeded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10 lines
453 B
Bash
Executable file
10 lines
453 B
Bash
Executable file
#!/bin/sh
|
|
# builds lib/<target>/ for ludic.nativeecho: no upstream library, only the shim
|
|
# (tools/native/lib.sh; a package that wraps a library adds native_fetch first - see ludic.physics)
|
|
set -eu
|
|
PKG="$(cd "$(dirname "$0")/.." && pwd)"
|
|
. "$PKG/../../tools/native/lib.sh"
|
|
OBJ="$PKG/build/native"
|
|
mkdir -p "$OBJ"
|
|
"$(native_cc)" $(native_cflags) -c "$PKG/native/shim/nativeecho.c" -o "$OBJ/nativeecho.o"
|
|
native_link "$PKG" nativeecho "$OBJ/nativeecho.o"
|