#!/usr/bin/env bash set -euo pipefail rm -r stage0 || true mkdir -p stage0/stdlib/ cat <> stage0/stdlib/CMakeLists.txt set(CMAKE_C_COMPILER_LAUNCHER "env;LEAN_CXX=\${CMAKE_CXX_COMPILER_LAUNCHER} \${CMAKE_CXX_COMPILER}") set(CMAKE_C_COMPILER "\${CMAKE_BINARY_DIR}/bin/leanc") EOF 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 <> 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