mirror of
https://github.com/pybind/pybind11_abseil.git
synced 2026-06-04 13:54:22 +08:00
# Fix * Fix `absl::monostate` support against C++14 * Fix `MSVC C2466` compilation error ref: https://learn.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2466 * Fix `bazel test -c opt` run # CMake * Bump CMake minimal version to 3.18 to align with pybind11_protobuf and needed to work with pypa/manylinux image (ed need `Development.Module` option in `FindPython3`) * rename `status` as `status_py_extension_stub` target to avoid conflict with abseil-cpp when fetched (ed cmake target are NOT scoped)<br> note: still provide the `pybind11_abseil::status` target alias. * Disable C++ gnu extension. * Rework third party management * disable test for dependencies BUT still allow to enable them for pybind11_abseil * Bump abseil-cpp from `20230802.0` to `20240722.0` * Bump pybind11 from master(floating) to `v2.13.6` * Fix XCode build using `MODULE` in `pybind_extension` * Fix Python support by not linking against the python library as manylinux images and PEP-513 require<br> ref: https://peps.python.org/pep-0513/#libpythonx-y-so-1 # Bazel * Update dependencies in `MODULE.bazel` and `WORKSPACE` * Bump Protobuf to `v29.2` * Add a `.bazelignore` to avoid to parse cmake's usual `build` directory * Add a `.bazelrc` with default options (similar to the one in `pybind11_protobuf`) # Update CI workflows * Split CMake and Bazel workflows to get independent badges * Split MacOS (amd64 and M1) and Windows (amd64) and Linux (amd64) jobs * import ubuntu-build.yml from pybind11_protobuf ## Bazel * Add C++14, c++17 and c++20 flavours * Add `-c opt` and `-c dbg` variants * only test against the default python3.11 ## CMake * Test Python 3.9, 3.10. 3.11, 3.12 * cmake(linux): Test Unix Makefile and Ninja Build generators * cmake(macOS): Test XCode and Makefile generators * cmake(windows): Test MSVC (VC 2022) generator PiperOrigin-RevId: 721778070
38 lines
1.2 KiB
CMake
38 lines
1.2 KiB
CMake
cmake_minimum_required(VERSION 3.18)
|
|
project(pybind11_abseil LANGUAGES CXX)
|
|
|
|
if(NOT DEFINED CMAKE_CXX_STANDARD)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
endif()
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
|
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE)
|
|
|
|
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.24)
|
|
cmake_policy(SET CMP0135 NEW)
|
|
endif()
|
|
|
|
# ============================================================================
|
|
# Options
|
|
|
|
option(USE_SYSTEM_ABSEIL "Force usage of system provided abseil-cpp" OFF)
|
|
option(USE_SYSTEM_PYBIND "Force usage of system provided pybind11" OFF)
|
|
|
|
# ============================================================================
|
|
# Testing
|
|
include(CTest)
|
|
|
|
# ============================================================================
|
|
# Find Python
|
|
find_package(Python3 REQUIRED COMPONENTS Interpreter Development.Module)
|
|
|
|
# ============================================================================
|
|
# Build dependencies
|
|
add_subdirectory(cmake/dependencies dependencies)
|
|
|
|
set(TOP_LEVEL_DIR ${CMAKE_CURRENT_LIST_DIR})
|
|
include_directories(${TOP_LEVEL_DIR} ${pybind11_INCLUDE_DIRS})
|
|
add_subdirectory(pybind11_abseil)
|