Add macOS support #34
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good

This commit is contained in:
Scott E. Graves
2025-08-02 10:22:54 -05:00
parent 0ca1a12cd4
commit fd1d32d314
20 changed files with 39 additions and 29 deletions

View File

@@ -38,6 +38,10 @@ if(PROJECT_IS_MINGW)
/mingw64/lib /mingw64/lib
/mingw64/lib64 /mingw64/lib64
) )
elseif(PROJECT_IS_DARWIN)
list(PREPEND CMAKE_PREFIX_PATH
/opt/homebrew/opt/zlib
)
endif() endif()
include_directories(BEFORE SYSTEM include_directories(BEFORE SYSTEM

View File

@@ -1,15 +1,15 @@
set(BINUTILS_VERSION 2.44) set(BINUTILS_VERSION 2.44)
set(BOOST2_MAJOR_VERSION 1)
set(BOOST2_MINOR_VERSION 76)
set(BOOST2_PATCH_VERSION 0)
set(BOOST_MAJOR_VERSION 1) set(BOOST_MAJOR_VERSION 1)
set(BOOST_MINOR_VERSION 88) set(BOOST_MINOR_VERSION 88)
set(BOOST_PATCH_VERSION 0) set(BOOST_PATCH_VERSION 0)
set(BOOST2_MAJOR_VERSION 1)
set(BOOST2_MINOR_VERSION 76)
set(BOOST2_PATCH_VERSION 0)
set(CPP_HTTPLIB_VERSION 0.23.1) set(CPP_HTTPLIB_VERSION 0.23.1)
set(CURL2_VERSION 8_15_0)
set(CURL_VERSION 8.15.0) set(CURL_VERSION 8.15.0)
set(EXPAT2_VERSION 2_7_1) set(CURL2_VERSION 8_15_0)
set(EXPAT_VERSION 2.7.1) set(EXPAT_VERSION 2.7.1)
set(EXPAT2_VERSION 2_7_1)
set(GCC_VERSION 15.1.0) set(GCC_VERSION 15.1.0)
set(GTEST_VERSION 1.17.0) set(GTEST_VERSION 1.17.0)
set(ICU_VERSION 76-1) set(ICU_VERSION 76-1)
@@ -22,9 +22,9 @@ set(PKG_CONFIG_VERSION 0.29.2)
set(PUGIXML_VERSION 1.15) set(PUGIXML_VERSION 1.15)
set(ROCKSDB_VERSION 10.4.2) set(ROCKSDB_VERSION 10.4.2)
set(SPDLOG_VERSION 1.15.3) set(SPDLOG_VERSION 1.15.3)
set(SQLITE2_VERSION 3.50.3)
set(SQLITE_VERSION 3500300) set(SQLITE_VERSION 3500300)
set(SQLITE2_VERSION 3.50.3)
set(STDUUID_VERSION 1.2.3) set(STDUUID_VERSION 1.2.3)
set(WINFSP2_VERSION 2.1)
set(WINFSP_VERSION 2.1.25156) set(WINFSP_VERSION 2.1.25156)
set(WINFSP2_VERSION 2.1)
set(ZLIB_VERSION 1.3.1) set(ZLIB_VERSION 1.3.1)

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_MINGW64_COPY_DEPENDENCIES=() PROJECT_MINGW64_COPY_DEPENDENCIES=()

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0") PROJECT_SCRIPTS_DIR=$(realpath "$0")
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
DEST_DIR=$1 DEST_DIR=$1
DIST_DIR=$2 DIST_DIR=$2
@@ -35,7 +35,7 @@ fi
pushd "${PROJECT_SOURCE_DIR}" pushd "${PROJECT_SOURCE_DIR}"
BRANCH=$(git branch --show-current) BRANCH=$(git branch --show-current)
RELEASE=$(grep PROJECT_RELEASE_ITER= ./config.sh | sed s/PROJECT_RELEASE_ITER=//g) RELEASE=$(grep PROJECT_RELEASE_ITER= ./config.sh | ${SED} s/PROJECT_RELEASE_ITER=//g)
popd popd
if [ "${BRANCH}" == "master" ] || [ "${BRANCH}" == "alpha" ] || if [ "${BRANCH}" == "master" ] || [ "${BRANCH}" == "alpha" ] ||

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ] && if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ] &&
[ "${PROJECT_ENABLE_MULTIARCH_DOCKER}" == "1" ]; then [ "${PROJECT_ENABLE_MULTIARCH_DOCKER}" == "1" ]; then

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_BUILD_ARCH=$1 PROJECT_BUILD_ARCH=$1
PROJECT_CMAKE_BUILD_TYPE=$2 PROJECT_CMAKE_BUILD_TYPE=$2
@@ -59,6 +59,9 @@ PROJECT_STATIC_LINK=OFF
if [ "$(uname -s)" == "Darwin" ]; then if [ "$(uname -s)" == "Darwin" ]; then
PROJECT_IS_DARWIN=1 PROJECT_IS_DARWIN=1
export SED=gsed
else
export SED=sed
fi fi
if [ "${PROJECT_BUILD_ARCH}" == "" ]; then if [ "${PROJECT_BUILD_ARCH}" == "" ]; then
@@ -238,12 +241,12 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; th
fi fi
if [ -f "${PROJECT_SOURCE_DIR}/cmake/versions.cmake" ]; then if [ -f "${PROJECT_SOURCE_DIR}/cmake/versions.cmake" ]; then
VERSIONS=($(sed -e s/\ /=/g -e s/set\(//g -e s/\)//g "${PROJECT_SOURCE_DIR}/cmake/versions.cmake")) VERSIONS=($(${SED} -e s/\ /=/g -e s/set\(//g -e s/\)//g "${PROJECT_SOURCE_DIR}/cmake/versions.cmake"))
PROJECT_MINGW64_DOCKER_BUILD_ARGS=() PROJECT_MINGW64_DOCKER_BUILD_ARGS=()
for VERSION in "${VERSIONS[@]}"; do for VERSION in "${VERSIONS[@]}"; do
LOOKUP_NAME=$(echo ${VERSION} | sed s/_VERSION.*// | sed s/GTEST/TESTING/g) LOOKUP_NAME=$(echo ${VERSION} | ${SED} s/_VERSION.*// | sed s/GTEST/TESTING/g)
ENABLE_NAME=PROJECT_ENABLE_${LOOKUP_NAME} ENABLE_NAME=PROJECT_ENABLE_${LOOKUP_NAME}
if [ "${!ENABLE_NAME}" != "OFF" ]; then if [ "${!ENABLE_NAME}" != "OFF" ]; then
PROJECT_MINGW64_DOCKER_BUILD_ARGS+=("--build-arg ${VERSION}") PROJECT_MINGW64_DOCKER_BUILD_ARGS+=("--build-arg ${VERSION}")

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0") PROJECT_SCRIPTS_DIR=$(realpath "$0")
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_LIBRARIES=( PROJECT_LIBRARIES=(
BOOST BOOST

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0") PROJECT_SCRIPTS_DIR=$(realpath "$0")
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0") PROJECT_SCRIPTS_DIR=$(realpath "$0")
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
TEMP_DIR=$(mktemp -d) TEMP_DIR=$(mktemp -d)

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0") PROJECT_SCRIPTS_DIR=$(realpath "$0")
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0") PROJECT_SCRIPTS_DIR=$(realpath "$0")
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
DOCKER_NAME=$1 DOCKER_NAME=$1

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0") PROJECT_SCRIPTS_DIR=$(realpath "$0")
PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
PROJECT_MSYS2_PACKAGE_LIST=() PROJECT_MSYS2_PACKAGE_LIST=()

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
declare -A PROJECT_VERSIONS declare -A PROJECT_VERSIONS
PROJECT_VERSIONS[BINUTILS]="2.44" PROJECT_VERSIONS[BINUTILS]="2.44"

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
if [ "$1" == "mingw64" ]; then if [ "$1" == "mingw64" ]; then
HOST_CFG=--host=x86_64-w64-mingw32 HOST_CFG=--host=x86_64-w64-mingw32

View File

@@ -57,6 +57,9 @@ auto change_to_process_directory() -> bool {
#if defined(__APPLE__) #if defined(__APPLE__)
auto res = proc_pidpath(getpid(), reinterpret_cast<void *>(path.data()), auto res = proc_pidpath(getpid(), reinterpret_cast<void *>(path.data()),
static_cast<uint32_t>(path.size())); static_cast<uint32_t>(path.size()));
if (res == 0) {
path = utils::path::get_parent_path(path) :
}
#else // !defined(__APPLE__) #else // !defined(__APPLE__)
auto res = readlink("/proc/self/exe", path.data(), path.size()); auto res = readlink("/proc/self/exe", path.data(), path.size());
if (res == -1) { if (res == -1) {