@@ -28,20 +28,25 @@ ts build --wasm && \
28
28
cp -a test " $TARGET_DIR " && \
29
29
ts test || { playground; exit 1 ; }
30
30
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 " .*
36
32
37
33
# 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
39
36
container_id=$( docker create " $LIBRARY_NAME " -builder) || exit
40
37
# Copy both Linux and Windows libraries from the single container
41
38
docker cp " $container_id :/out/lib/lib${LIBRARY_NAME} .so" " $GRAMMAR_DIR /" && \
42
39
docker cp " $container_id :/out/lib/lib${LIBRARY_NAME} .dll" " $GRAMMAR_DIR /" && \
43
40
docker rm " $container_id " > /dev/null || exit
44
41
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
+
45
50
ls -Falk " $GRAMMAR_DIR " /* .{so,dylib,dll}
46
51
du -hs " $GRAMMAR_DIR " /* .{so,dylib,dll}
47
52
0 commit comments