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/lib64
)
elseif(PROJECT_IS_DARWIN)
list(PREPEND CMAKE_PREFIX_PATH
/opt/homebrew/opt/zlib
)
endif()
include_directories(BEFORE SYSTEM

View File

@@ -1,15 +1,15 @@
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_MINOR_VERSION 88)
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(CURL2_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(EXPAT2_VERSION 2_7_1)
set(GCC_VERSION 15.1.0)
set(GTEST_VERSION 1.17.0)
set(ICU_VERSION 76-1)
@@ -22,9 +22,9 @@ set(PKG_CONFIG_VERSION 0.29.2)
set(PUGIXML_VERSION 1.15)
set(ROCKSDB_VERSION 10.4.2)
set(SPDLOG_VERSION 1.15.3)
set(SQLITE2_VERSION 3.50.3)
set(SQLITE_VERSION 3500300)
set(SQLITE2_VERSION 3.50.3)
set(STDUUID_VERSION 1.2.3)
set(WINFSP2_VERSION 2.1)
set(WINFSP_VERSION 2.1.25156)
set(WINFSP2_VERSION 2.1)
set(ZLIB_VERSION 1.3.1)

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
DEST_DIR=$1
DIST_DIR=$2
@@ -35,7 +35,7 @@ fi
pushd "${PROJECT_SOURCE_DIR}"
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
if [ "${BRANCH}" == "master" ] || [ "${BRANCH}" == "alpha" ] ||

View File

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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
PROJECT_BUILD_ARCH=$1
PROJECT_CMAKE_BUILD_TYPE=$2
@@ -59,6 +59,9 @@ PROJECT_STATIC_LINK=OFF
if [ "$(uname -s)" == "Darwin" ]; then
PROJECT_IS_DARWIN=1
export SED=gsed
else
export SED=sed
fi
if [ "${PROJECT_BUILD_ARCH}" == "" ]; then
@@ -238,12 +241,12 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; th
fi
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=()
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}
if [ "${!ENABLE_NAME}" != "OFF" ]; then
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=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0")
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=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
PROJECT_SCRIPTS_DIR=$(realpath "$0")
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=$(dirname "${PROJECT_SCRIPTS_DIR}")

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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