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

This commit is contained in:
2025-08-02 13:24:19 -05:00
parent 77e0633c38
commit 437a3444ec
18 changed files with 89 additions and 5 deletions

View File

@@ -28,6 +28,7 @@ cppvsdbg
create_notraverse
crypto_aead_xchacha20poly1305_ietf_npubbytes
cstdint
curl_zstd
curle_couldnt_resolve_host
curlopt_aws_sigv4
cxxflags
@@ -54,6 +55,7 @@ dcurl_staticlib
dcurl_use_libpsl
dcurl_use_libssh2
dcurl_zlib
dcurl_zstd
ddebug
decmult_gen_prec_bits
decmult_window_size
@@ -86,6 +88,7 @@ dspdlog_fmt_external
dthreads_prefer_pthread_flag
dunw_local_only
duse_libidn2
duse_nghttp2
duuid_build_tests
dwith_benchmark
dwith_gflags

View File

@@ -7,6 +7,8 @@ set(SFML_STATIC_LIBRARIES ${PROJECT_STATIC_LINK})
set(ZLIB_USE_STATIC_LIBS ${PROJECT_STATIC_LINK})
set(wxWidgets_USE_STATIC ${PROJECT_STATIC_LINK})
include(cmake/libraries/zlib.cmake)
include(cmake/libraries/openssl.cmake)
include(cmake/libraries/boost.cmake)

View File

@@ -142,6 +142,9 @@ if(PROJECT_ENABLE_BOOST)
if (NOT CMAKE_HOST_WIN32)
add_dependencies(boost_project openssl_project)
endif()
if (PROJECT_IS_DARWIN)
add_dependencies(boost_project zlib_project)
endif()
endif()
endif()
endif()

View File

@@ -15,6 +15,7 @@ if(PROJECT_ENABLE_CPP_HTTPLIB)
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DHTTPLIB_REQUIRE_BROTLI=OFF
-DHTTPLIB_REQUIRE_OPENSSL=ON
-DHTTPLIB_REQUIRE_ZLIB=ON
@@ -31,5 +32,8 @@ if(PROJECT_ENABLE_CPP_HTTPLIB)
if (NOT CMAKE_HOST_WIN32)
add_dependencies(cpphttplib_project openssl_project)
endif()
if (PROJECT_IS_DARWIN)
add_dependencies(cpphttplib_project zlib_project)
endif()
endif()
endif()

View File

@@ -27,8 +27,8 @@ if(PROJECT_ENABLE_CURL)
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_CURL=ON
-DBUILD_STATIC_LIBS=ON
-DBUILD_STATIC_LIBS=ON
-DBUILD_TESTING=OFF
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DCURL_BROTLI=OFF
-DCURL_CA_BUNDLE=./cacert.pem
-DCURL_CA_FALLBACK=ON
@@ -37,11 +37,13 @@ if(PROJECT_ENABLE_CURL)
-DCURL_USE_LIBSSH2=OFF
-DCURL_USE_OPENSSL=${PROJECT_ENABLE_OPENSSL}
-DCURL_ZLIB=ON
-DCURL_ZSTD=OFF
-DENABLE_CURL_MANUAL=OFF
-DENABLE_THREADED_RESOLVER=ON
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
-DOPENSSL_USE_STATIC_LIBS=${OPENSSL_USE_STATIC_LIBS}
-DUSE_LIBIDN2=OFF
-DUSE_NGHTTP2=OFF
-DZLIB_USE_STATIC_LIBS=${ZLIB_USE_STATIC_LIBS}
)
@@ -50,5 +52,9 @@ if(PROJECT_ENABLE_CURL)
if (NOT CMAKE_HOST_WIN32)
add_dependencies(curl_project openssl_project)
endif()
if (PROJECT_IS_DARWIN)
add_dependencies(curl_project zlib_project)
endif()
endif()
endif()

View File

@@ -18,11 +18,16 @@ if(PROJECT_ENABLE_JSON)
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DJSON_BuildTests=OFF
-DJSON_Install=ON
-DJSON_MultipleHeaders=OFF
)
list(APPEND PROJECT_DEPENDENCIES json_project)
if (PROJECT_IS_DARWIN)
add_dependencies(json_project zlib_project)
endif()
endif()
endif()

View File

@@ -44,5 +44,9 @@ if(PROJECT_ENABLE_LIBSODIUM)
)
list(APPEND PROJECT_DEPENDENCIES libsodium_project)
if (PROJECT_IS_DARWIN)
add_dependencies(libsodium_project zlib_project)
endif()
endif()
endif()

View File

@@ -55,5 +55,8 @@ if(PROJECT_ENABLE_OPENSSL)
)
list(APPEND PROJECT_DEPENDENCIES openssl_project)
if (PROJECT_IS_DARWIN)
add_dependencies(openssl_project zlib_project)
endif()
endif()
endif()

View File

@@ -20,8 +20,13 @@ if(PROJECT_ENABLE_PUGIXML)
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
)
list(APPEND PROJECT_DEPENDENCIES pugixml_project)
if (PROJECT_IS_DARWIN)
add_dependencies(pugixml_project zlib_project)
endif()
endif()
endif()

View File

@@ -14,6 +14,7 @@ if(PROJECT_ENABLE_ROCKSDB)
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=OFF
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DFAIL_ON_WARNINGS=OFF
-DPORTABLE=1
-DROCKSDB_BUILD_SHARED=OFF
@@ -32,5 +33,9 @@ if(PROJECT_ENABLE_ROCKSDB)
)
list(APPEND PROJECT_DEPENDENCIES rocksdb_project)
if (PROJECT_IS_DARWIN)
add_dependencies(rocksdb_project zlib_project)
endif()
endif()
endif()

View File

@@ -15,11 +15,16 @@ if(PROJECT_ENABLE_SPDLOG)
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DSPDLOG_BUILD_EXAMPLE=OFF
-DSPDLOG_FMT_EXTERNAL=OFF
-DSPDLOG_FMT_EXTERNAL_HO=OFF
)
list(APPEND PROJECT_DEPENDENCIES spdlog_project)
if (PROJECT_IS_DARWIN)
add_dependencies(spdlog_project zlib_project)
endif()
endif()
endif()

View File

@@ -25,5 +25,9 @@ if(PROJECT_ENABLE_SQLITE)
)
list(APPEND PROJECT_DEPENDENCIES sqlite_project)
if (PROJECT_IS_DARWIN)
add_dependencies(sqlite_project zlib_project)
endif()
endif()
endif()

View File

@@ -16,11 +16,16 @@ if(PROJECT_ENABLE_STDUUID)
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DUUID_BUILD_TESTS=OFF
-DUUID_ENABLE_INSTALL=ON
-DUUID_USING_CXX20_SPAN=ON
)
list(APPEND PROJECT_DEPENDENCIES stduuid_project)
if (PROJECT_IS_DARWIN)
add_dependencies(stduuid_project zlib_project)
endif()
endif()
endif()

View File

@@ -10,8 +10,13 @@ if (PROJECT_ENABLE_TESTING)
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
)
list(APPEND PROJECT_DEPENDENCIES gtest_project)
if (PROJECT_IS_DARWIN)
add_dependencies(gtest_project zlib_project)
endif()
endif()
endif()

View File

@@ -0,0 +1,16 @@
if(PROJECT_IS_DARWIN)
if(NOT PROJECT_BUILD)
ExternalProject_Add(zlib_project
PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/mingw64/zlib-${ZLIB_VERSION}.tar.gz
URL_HASH SHA256=${ZLIB_HASH}
LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}
-DBUILD_STATIC_LIBS=ON
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
)
list(APPEND PROJECT_DEPENDENCIES zlib_project)
endif()
endif()

View File

@@ -9,3 +9,11 @@ endif()
if(PROJECT_REQUIRE_ALPINE AND NOT PROJECT_IS_ALPINE AND PROJECT_IS_MINGW AND PROJECT_IS_MINGW_UNIX)
message(FATAL_ERROR "Project requires Alpine Linux to build")
endif()
if (PROJECT_IS_DARWIN)
if (PROJECT_IS_ARM64)
set(CMAKE_OSX_ARCHITECTURES "arm64")
else()
set(CMAKE_OSX_ARCHITECTURES "x86_64")
endif()
endif()

View File

@@ -38,10 +38,6 @@ 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

@@ -2,6 +2,11 @@
if [ "$1" == "mingw64" ]; then
HOST_CFG=--host=x86_64-w64-mingw32
elif [ "$(uname -s)" == "Darwin" ] && [ "$(uname -m)" == "arm64" ] &&
[ "${PROJECT_IS_ARM64}" == "0" ]; then
HOST_CFG="--host=x86_64-apple-darwin"
export CC="clang -arch x86_64"
export CXX="clang++ -arch x86_64"
fi
CFLAGS="-O3 -fomit-frame-pointer -march=$2 -mtune=generic" ./configure \