lean4-htt/script/update-stage0
2021-03-06 10:17:50 +01:00

17 lines
688 B
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
rm -r stage0 || true
mkdir -p stage0/
for pkg in Init Std Lean; do
# ensure deterministic ordering
c_files="$pkg.c $(cd src; find $pkg -name '*.lean' | sed s/.lean/.c/ | LC_ALL=C sort | tr '\n' ' ')"
for f in $c_files; do mkdir -p $(dirname stage0/stdlib/$f); cp ${CP_PARAMS:-} $CSRCS/$f stage0/stdlib/$f; done
cat <<EOF >> stage0/stdlib/CMakeLists.txt
add_library ($pkg STATIC $c_files)
set_target_properties($pkg PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "\${CMAKE_BINARY_DIR}/lib/lean")
EOF
done
# don't copy untracked crap
git ls-files -z src | xargs -0 -I '{}' bash -c 'mkdir -p `dirname stage0/{}` && cp {} stage0/{}'
git add stage0