mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-01 19:58:15 +00:00
Include <array> head in stl_emulation.h (#7480)
* Add C++ standard builds for windows CI * Allow C++std to be specified in cmake * Include <array> in stl_emulation * Add linux std CI builds
This commit is contained in:
45
.github/workflows/build.yml
vendored
45
.github/workflows/build.yml
vendored
@@ -63,6 +63,51 @@ jobs:
|
|||||||
id: hash-gcc
|
id: hash-gcc
|
||||||
run: echo "::set-output name=hashes::$(sha256sum Linux.flatc.binary.${{ matrix.cxx }}.zip | base64 -w0)"
|
run: echo "::set-output name=hashes::$(sha256sum Linux.flatc.binary.${{ matrix.cxx }}.zip | base64 -w0)"
|
||||||
|
|
||||||
|
build-linux-cpp-std:
|
||||||
|
name: Build Linux C++
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
std: [11, 14, 17, 20, 23]
|
||||||
|
cxx: [g++-10, clang++-12]
|
||||||
|
exclude:
|
||||||
|
# GCC 10.3.0 doesn't support std 23
|
||||||
|
- cxx: g++-10
|
||||||
|
std: 23
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: cmake
|
||||||
|
run: >
|
||||||
|
CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles"
|
||||||
|
-DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON
|
||||||
|
-DFLATBUFFERS_CPP_STD=${{ matrix.std }}
|
||||||
|
- name: build
|
||||||
|
run: make -j
|
||||||
|
- name: test
|
||||||
|
run: ./flattests
|
||||||
|
|
||||||
|
build-windows-cpp-std:
|
||||||
|
name: Build Windows C++
|
||||||
|
runs-on: windows-2019
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
std: [11, 14, 17, 20, 23]
|
||||||
|
fail-fast: false
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Add msbuild to PATH
|
||||||
|
uses: microsoft/setup-msbuild@v1.1
|
||||||
|
- name: cmake
|
||||||
|
run: >
|
||||||
|
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release
|
||||||
|
-DFLATBUFFERS_STRICT_MODE=ON
|
||||||
|
-DFLATBUFFERS_CPP_STD=${{ matrix.std }}
|
||||||
|
- name: build
|
||||||
|
run: msbuild.exe FlatBuffers.sln /p:Configuration=Release /p:Platform=x64
|
||||||
|
- name: test
|
||||||
|
run: Release\flattests.exe
|
||||||
|
|
||||||
build-windows:
|
build-windows:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|||||||
@@ -78,6 +78,10 @@ option(FLATBUFFERS_STRICT_MODE
|
|||||||
"Build flatbuffers with all warnings as errors (-Werror or /WX)."
|
"Build flatbuffers with all warnings as errors (-Werror or /WX)."
|
||||||
OFF)
|
OFF)
|
||||||
|
|
||||||
|
if(NOT DEFINED FLATBUFFERS_CPP_STD)
|
||||||
|
set(FLATBUFFERS_CPP_STD 11)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(MSVC_LIKE OFF)
|
set(MSVC_LIKE OFF)
|
||||||
if(MSVC OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
if(MSVC OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||||
set(MSVC_LIKE ON)
|
set(MSVC_LIKE ON)
|
||||||
@@ -334,7 +338,7 @@ include_directories(grpc)
|
|||||||
add_library(ProjectConfig INTERFACE)
|
add_library(ProjectConfig INTERFACE)
|
||||||
target_compile_features(ProjectConfig
|
target_compile_features(ProjectConfig
|
||||||
INTERFACE
|
INTERFACE
|
||||||
cxx_std_11
|
cxx_std_${FLATBUFFERS_CPP_STD}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Force the standard to be met.
|
# Force the standard to be met.
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
#include <span>
|
#include <span>
|
||||||
#elif defined(__cpp_lib_span) && defined(__has_include)
|
#elif defined(__cpp_lib_span) && defined(__has_include)
|
||||||
#if __has_include(<span>)
|
#if __has_include(<span>)
|
||||||
|
#include <array>
|
||||||
#include <span>
|
#include <span>
|
||||||
#define FLATBUFFERS_USE_STD_SPAN
|
#define FLATBUFFERS_USE_STD_SPAN
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user