diff --git a/.github/workflows/python-packaging.yml b/.github/workflows/python-packaging.yml index 4b3159d145..91f232e89e 100644 --- a/.github/workflows/python-packaging.yml +++ b/.github/workflows/python-packaging.yml @@ -56,14 +56,20 @@ jobs: - cibw_build: manylinux_x86_64 os: ubuntu-24.04 wheel-name: manylinux_2_28 + cc: gcc-13 + cxx: g++-13 - cibw_build: macosx_x86_64 os: macos-latest cibw_archs_macos: x86_64 wheel-name: macos-x86_64 + cc: gcc-13 + cxx: g++-13 - cibw_build: macosx_arm64 os: macos-14 # Note: macos-14 is arm64 only cibw_archs_macos: arm64 wheel-name: macos-arm64 + cc: gcc-13 + cxx: g++-13 steps: - name: Download sdist artifact uses: actions/download-artifact@v4 @@ -112,7 +118,7 @@ jobs: CIBW_ENVIRONMENT_LINUX : CC=/opt/rh/gcc-toolset-13/root/usr/bin/gcc CXX=/opt/rh/gcc-toolset-13/root/usr/bin/g++ CIBW_TEST_SKIP: "*_arm64" CMAKE_OSX_ARCHITECTURES: ${{ matrix.cibw_archs_macos }} - MACOSX_DEPLOYMENT_TARGET: "13.3" + MACOSX_DEPLOYMENT_TARGET: "11.0" - name: Upload wheel-${{ matrix.wheel-name }}-${{ matrix.python-version }} to GitHub Actions storage uses: actions/upload-artifact@v4 with: @@ -146,13 +152,17 @@ jobs: - wheel-name: macos-x86_64 os: macos-13 arch: x86_64 - cc: clang - cxx: clang++ + # cc: clang + # cxx: clang++ + cc: gcc-13 + cxx: g++-13 - wheel-name: macos-arm64 os: macos-14 arch: arm64 - cc: clang - cxx: clang++ + # cc: clang + # cxx: clang++ + cc: gcc-13 + cxx: g++-13 fail-fast: false steps: - name: Set up Python ${{ matrix.python.dotted-version }} diff --git a/apis/python/setup.py b/apis/python/setup.py index 37a1703008..df12fb22cb 100644 --- a/apis/python/setup.py +++ b/apis/python/setup.py @@ -254,7 +254,7 @@ def run(self): CXX_FLAGS.append(f'-Wl,-rpath,{str(tiledb_dir / "lib")}') if sys.platform == "darwin": - CXX_FLAGS.append("-mmacosx-version-min=13.3") + CXX_FLAGS.append("-mmacosx-version-min=11.0") if os.name == "posix" and sys.platform != "darwin": LIB_DIRS.append(str(tiledbsoma_dir / "lib" / "x86_64-linux-gnu")) diff --git a/apis/r/configure b/apis/r/configure index 1948835b94..5b3dd850db 100755 --- a/apis/r/configure +++ b/apis/r/configure @@ -54,7 +54,7 @@ tools/build_libtiledbsoma.sh pkgincl="-I../inst/tiledb/include -I../inst/tiledbsoma/include -I../inst/tiledbsoma/include/tiledbsoma" pkglibs="-ltiledb -L../inst/tiledb/lib -ltiledbsoma -L../inst/tiledbsoma/lib" rpath="-Wl,-rpath,'\$\$ORIGIN/../tiledb/lib' -Wl,-rpath,'\$\$ORIGIN/../tiledbsoma/lib'" -macosver=`${R_HOME}/bin/Rscript -e 'if (Sys.info()["sysname"] == "Darwin") cat("-mmacosx-version-min=13.3") else cat("")'` +macosver=`${R_HOME}/bin/Rscript -e 'if (Sys.info()["sysname"] == "Darwin") cat("-mmacosx-version-min=11.0") else cat("")'` sed -e "s|@tiledb_include@|$pkgincl |" \ -e "s|@tiledb_libs@|$pkglibs|" \ diff --git a/apis/r/src/Makevars.in b/apis/r/src/Makevars.in index 9e536b629e..91450267c6 100644 --- a/apis/r/src/Makevars.in +++ b/apis/r/src/Makevars.in @@ -1,7 +1,7 @@ CXX_STD = CXX20 ## We need the TileDB Headers, and for macOS aka Darwin need to set minimum version 13.3 for macOS -PKG_CPPFLAGS = -I. -I../inst/include/ @tiledb_include@ @cxx20_macos@ -D SPDLOG_USE_STD_FORMAT +PKG_CPPFLAGS = -I. -I../inst/include/ @tiledb_include@ @cxx20_macos@ -DSPDLOG_FMT_EXTERNAL_HO ## We also need the TileDB library PKG_LIBS = @cxx20_macos@ @tiledb_libs@ @tiledb_rpath@ diff --git a/libtiledbsoma/CMakeLists.txt b/libtiledbsoma/CMakeLists.txt index cd52ca627d..d78ad63888 100644 --- a/libtiledbsoma/CMakeLists.txt +++ b/libtiledbsoma/CMakeLists.txt @@ -114,7 +114,7 @@ if(APPLE) set(CMAKE_MACOSX_RPATH ON) # Set minimum macOS version to enable certain C++20 features - set(CMAKE_OSX_DEPLOYMENT_TARGET 13.3) + # set(CMAKE_OSX_DEPLOYMENT_TARGET 13.3) # Don't allow macOS .frameworks to be used for dependencies. set(CMAKE_FIND_FRAMEWORK NEVER) @@ -221,7 +221,7 @@ if(MSVC) ) else() - set(TILEDBSOMA_COMPILE_OPTIONS -Wall -Wextra -DSPDLOG_USE_STD_FORMAT) + set(TILEDBSOMA_COMPILE_OPTIONS -Wall -Wextra -DSPDLOG_FMT_EXTERNAL_HO) if(${TILEDBSOMA_ENABLE_WERROR}) set(TILEDBSOMA_WERROR_OPTION -Werror) diff --git a/libtiledbsoma/src/CMakeLists.txt b/libtiledbsoma/src/CMakeLists.txt index 831dc58228..ea9736398e 100644 --- a/libtiledbsoma/src/CMakeLists.txt +++ b/libtiledbsoma/src/CMakeLists.txt @@ -50,7 +50,7 @@ add_library(TILEDB_SOMA_OBJECTS OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/soma/array_buffers.cc ${CMAKE_CURRENT_SOURCE_DIR}/soma/column_buffer.cc ${CMAKE_CURRENT_SOURCE_DIR}/utils/arrow_adapter.cc - ${CMAKE_CURRENT_SOURCE_DIR}/utils/logger.cc + # ${CMAKE_CURRENT_SOURCE_DIR}/utils/logger.cc ${CMAKE_CURRENT_SOURCE_DIR}/utils/stats.cc ${CMAKE_CURRENT_SOURCE_DIR}/utils/util.cc ${CMAKE_CURRENT_SOURCE_DIR}/utils/version.cc @@ -129,6 +129,40 @@ target_include_directories(TILEDB_SOMA_GEOMETRY_OBJECTS ${CMAKE_CURRENT_SOURCE_DIR}/vendor ) +# ########################################################### +# tiledbsoma logging library target +# ########################################################### + +add_library(TILEDB_SOMA_LOGGING_OBJECTS OBJECT + ${CMAKE_CURRENT_SOURCE_DIR}/utils/logger.cc +) + +target_link_options(TILEDB_SOMA_LOGGING_OBJECTS + PRIVATE + ${TILEDBSOMA_SANITIZER_FLAG} +) + +target_compile_definitions(TILEDB_SOMA_LOGGING_OBJECTS + PRIVATE + -DTILEDB_NO_API_DEPRECATION_WARNINGS +) + +target_compile_options(TILEDB_SOMA_LOGGING_OBJECTS + PRIVATE + ${TILEDBSOMA_COMPILE_OPTIONS} + ${TILEDBSOMA_WERROR_OPTION} + ${TILEDBSOMA_SANITIZER_OPTIONS} +) + +set_property(TARGET TILEDB_SOMA_LOGGING_OBJECTS PROPERTY POSITION_INDEPENDENT_CODE ON) + +target_include_directories(TILEDB_SOMA_LOGGING_OBJECTS + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/vendor + $ +) + # ########################################################### # tiledbsoma library target # ########################################################### @@ -137,6 +171,7 @@ if(TILEDBSOMA_BUILD_STATIC) add_library(tiledbsoma_static STATIC $ $ + $ $ ) list(APPEND TILEDBSOMA_INSTALL_TARGETS tiledbsoma_static) @@ -160,6 +195,7 @@ else() add_library(tiledbsoma SHARED $ $ + $ $ ) list(APPEND TILEDBSOMA_INSTALL_TARGETS tiledbsoma) @@ -297,6 +333,7 @@ if(TILEDBSOMA_BUILD_CLI) add_executable(tiledbsoma-cli ${CMAKE_CURRENT_SOURCE_DIR}/cli/cli.cc $ + $ $ ) diff --git a/libtiledbsoma/src/reindexer/reindexer.h b/libtiledbsoma/src/reindexer/reindexer.h index 02835bfbc7..4b0ad8c098 100644 --- a/libtiledbsoma/src/reindexer/reindexer.h +++ b/libtiledbsoma/src/reindexer/reindexer.h @@ -37,6 +37,7 @@ #include #include #include +#include struct kh_m64_s; diff --git a/libtiledbsoma/src/soma/soma_array.cc b/libtiledbsoma/src/soma/soma_array.cc index 7a2c54a761..faad96bf08 100644 --- a/libtiledbsoma/src/soma/soma_array.cc +++ b/libtiledbsoma/src/soma/soma_array.cc @@ -34,8 +34,6 @@ #include "../utils/logger.h" #include "../utils/util.h" -#include - namespace tiledbsoma { using namespace tiledb; diff --git a/libtiledbsoma/test/CMakeLists.txt b/libtiledbsoma/test/CMakeLists.txt index de78fddca1..1b12916e8d 100644 --- a/libtiledbsoma/test/CMakeLists.txt +++ b/libtiledbsoma/test/CMakeLists.txt @@ -16,6 +16,7 @@ find_package(Catch_EP REQUIRED) add_executable(unit_soma $ $ + $ $ common.cc common.h @@ -98,6 +99,7 @@ endif() add_executable(unit_geometry $ $ + $ $ common.cc common.h