From 6273bc7126ce8b1e3634de7b094e228d8dc92348 Mon Sep 17 00:00:00 2001 From: Vicente Eduardo Ferrer Garcia Date: Fri, 28 Feb 2025 17:07:18 +0100 Subject: [PATCH] Base support for llvm / c loader macos. --- tools/metacall-environment.sh | 1 - tools/metacall-runtime.sh | 18 ++++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/tools/metacall-environment.sh b/tools/metacall-environment.sh index 1c1524e28..28c9a6934 100755 --- a/tools/metacall-environment.sh +++ b/tools/metacall-environment.sh @@ -686,7 +686,6 @@ sub_c(){ $SUDO_CMD apt-get install -y --no-install-recommends libffi-dev libclang-${LLVM_VERSION_STRING}-dev elif [ "${LINUX_DISTRO}" = "alpine" ]; then $SUDO_CMD apk add --no-cache libffi-dev - $SUDO_CMD apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing tcc $SUDO_CMD apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/v3.16/main clang-libs=13.0.1-r1 clang-dev=13.0.1-r1 fi elif [ "${OPERATIVE_SYSTEM}" = "Darwin" ]; then diff --git a/tools/metacall-runtime.sh b/tools/metacall-runtime.sh index 70855f10d..aad251243 100755 --- a/tools/metacall-runtime.sh +++ b/tools/metacall-runtime.sh @@ -252,10 +252,10 @@ sub_java(){ # C sub_c(){ echo "configure c" + cd $ROOT_DIR + LLVM_VERSION_STRING=14 if [ "${OPERATIVE_SYSTEM}" = "Linux" ]; then - LLVM_VERSION_STRING=14 - if [ "${LINUX_DISTRO}" = "debian" ]; then UBUNTU_CODENAME="" CODENAME_FROM_ARGUMENTS="" @@ -293,9 +293,19 @@ sub_c(){ sub_apt_install_hold libffi libclang-${LLVM_VERSION_STRING} elif [ "${LINUX_DISTRO}" = "ubuntu" ]; then sub_apt_install_hold libffi libclang-${LLVM_VERSION_STRING} + elif [ "${LINUX_DISTRO}" = "alpine" ]; then + $SUDO_CMD apk add --no-cache libffi-dev + $SUDO_CMD apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/v3.16/main clang-libs=13.0.1-r1 clang-dev=13.0.1-r1 fi - - # TODO: Implement Alpine and Darwin + elif [ "${OPERATIVE_SYSTEM}" = "Darwin" ]; then + brew install libffi + brew install llvm@$LLVM_VERSION_STRING + brew link llvm@$LLVM_VERSION_STRING --force --overwrite + mkdir -p "$ROOT_DIR/build" + CMAKE_CONFIG_PATH="$ROOT_DIR/build/CMakeConfig.txt" + LIBCLANG_PREFIX=$(brew --prefix llvm@$LLVM_VERSION_STRING) + echo "-DLibClang_INCLUDE_DIR=${LIBCLANG_PREFIX}/include" >> $CMAKE_CONFIG_PATH + echo "-DLibClang_LIBRARY=${LIBCLANG_PREFIX}/lib/libclang.dylib" >> $CMAKE_CONFIG_PATH fi }