@@ -28,20 +28,25 @@ ts build --wasm && \
2828cp -a test " $TARGET_DIR " && \
2929ts test || { playground; exit 1 ; }
3030
31- # MacOS compilation
32- rm -f " $TARGET_DIR " /lib" $LIBRARY_NAME " .* " $GRAMMAR_DIR " /lib" $LIBRARY_NAME " .* && \
33- (cd " $TARGET_DIR " && cc -c -I./src src/parser.c && cc -dynamiclib -o lib" $LIBRARY_NAME " .dylib parser.o) && \
34- mv " $TARGET_DIR " /lib" $LIBRARY_NAME " .dylib " $GRAMMAR_DIR " / \
35- || exit
31+ rm -f " $TARGET_DIR " /lib" $LIBRARY_NAME " .* " $GRAMMAR_DIR " /lib" $LIBRARY_NAME " .*
3632
3733# Linux and Windows compilation using Docker
38- BUILDKIT_PROGRESS=plain docker build -t " $LIBRARY_NAME " -builder --build-arg LIBRARY_NAME=" $LIBRARY_NAME " . || exit
34+ BUILDKIT_PROGRESS=plain docker buildx build --platform linux/amd64 \
35+ -t " $LIBRARY_NAME " -builder --build-arg LIBRARY_NAME=" $LIBRARY_NAME " --load . || exit
3936container_id=$( docker create " $LIBRARY_NAME " -builder) || exit
4037# Copy both Linux and Windows libraries from the single container
4138docker cp " $container_id :/out/lib/lib${LIBRARY_NAME} .so" " $GRAMMAR_DIR /" && \
4239docker cp " $container_id :/out/lib/lib${LIBRARY_NAME} .dll" " $GRAMMAR_DIR /" && \
4340docker rm " $container_id " > /dev/null || exit
4441
42+ # MacOS compilation
43+ if test " $( uname) " = Darwin; then
44+ echo " MacOS compilation..."
45+ (cd " $TARGET_DIR " && cc -c -I./src src/parser.c && cc -dynamiclib -o lib" $LIBRARY_NAME " .dylib parser.o) && \
46+ mv " $TARGET_DIR " /lib" $LIBRARY_NAME " .dylib " $GRAMMAR_DIR " / \
47+ || exit
48+ fi
49+
4550ls -Falk " $GRAMMAR_DIR " /* .{so,dylib,dll}
4651du -hs " $GRAMMAR_DIR " /* .{so,dylib,dll}
4752
0 commit comments