PATH_DOCS=out/markdown
generate:
mkdir -p out
find . -maxdepth 1 -name .gitignore | xargs -IX sed '/^#\s*EOF_DOCKERIGNORE.*/q' X > .dockerignore
test:
cargo test
deploy: generate
cargo install --root out mdbook --version 0.4.50
cargo run --example markdown -- $(PATH_DOCS)/SUMMARY.md ./README.md
./out/bin/mdbook build
publish: deploy
cargo publish
ifeq ($(CARGO_BUILD_TARGET),x86_64-pc-windows-gnu)
mingw_lib = $(shell x86_64-w64-mingw32-gcc -print-file-name=$(1))
endif
cadrum-occt: generate
cargo clean
cargo build --example 01_primitives --release --features source-build 2>&1 | tee out/log.txt ifeq ($(CARGO_BUILD_TARGET),x86_64-pc-windows-gnu)
@ @ @ @ @ @ @LIBDIR=$$(find target -maxdepth 6 -type f -name libTKernel.a -path '*cadrum-occt*' | head -n 1 | xargs -r dirname); \
[ -n "$$LIBDIR" ] || { echo "bundle: OCCT lib dir not found under target/" >&2; exit 1; }; \
cp -v "$(call mingw_lib,libstdc++.a)" "$$LIBDIR/libcadrum_stdc++.a"; \
cp -v "$(call mingw_lib,libgcc.a)" "$$LIBDIR/libcadrum_gcc.a"; \
cp -v "$(call mingw_lib,libgcc_eh.a)" "$$LIBDIR/libcadrum_gcc_eh.a"
endif
find target -maxdepth 1 -type d -name 'cadrum*' | xargs -IX sh -c 'tar -czf out/$$(basename X).tar.gz -C $$(dirname X) $$(basename X)'
cadrum-occt-%: # build occt from source in cross ( = native build in container ) cadrum-occt-aarch64-unknown-linux-gnu cadrum-occt-x86_64-pc-windows-gnu cadrum-occt-x86_64-unknown-linux-gnu
docker build -f docker/Dockerfile_$(*) -t cadrum-occt-$(*) .
docker run --rm -v $(PWD)/out/$(*):/src/out cadrum-occt-$(*) make cadrum-occt
check-cadrum-occt-%: cadrum-occt-%
find out -maxdepth 2 -type f -name '*.tar.gz' | xargs -IX tar -xzf X -C target
timeout 300 cargo run --example 01_primitives