mirror of
https://github.com/google/flatbuffers.git
synced 2026-07-02 14:48:18 +00:00
fix out-of-source builds with cmake (#7946)
This commit is contained in:
22
.github/workflows/build.yml
vendored
22
.github/workflows/build.yml
vendored
@@ -76,6 +76,28 @@ jobs:
|
|||||||
- name: build
|
- name: build
|
||||||
run: make -j
|
run: make -j
|
||||||
|
|
||||||
|
build-linux-out-of-source:
|
||||||
|
name: Build Linux with out-of-source build location
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: make build directory
|
||||||
|
run: mkdir build
|
||||||
|
- name: cmake
|
||||||
|
working-directory: build
|
||||||
|
run: >
|
||||||
|
CXX=clang++-12 cmake .. -G "Unix Makefiles" -DFLATBUFFERS_STRICT_MODE=ON
|
||||||
|
-DFLATBUFFERS_BUILD_CPP17=ON -DFLATBUFFERS_CPP_STD=17
|
||||||
|
- name: build
|
||||||
|
working-directory: build
|
||||||
|
run: make -j
|
||||||
|
- name: test
|
||||||
|
working-directory: build
|
||||||
|
run: pwd && ./flattests
|
||||||
|
- name: test C++17
|
||||||
|
working-directory: build
|
||||||
|
run: ./flattests_cpp17
|
||||||
|
|
||||||
build-linux-cpp-std:
|
build-linux-cpp-std:
|
||||||
name: Build Linux C++
|
name: Build Linux C++
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -516,10 +516,12 @@ function(compile_schema_for_samples SRC_FBS OPT)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_TESTS)
|
if(FLATBUFFERS_BUILD_TESTS)
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/tests)
|
|
||||||
add_executable(flattests ${FlatBuffers_Tests_SRCS})
|
add_executable(flattests ${FlatBuffers_Tests_SRCS})
|
||||||
target_link_libraries(flattests PRIVATE $<BUILD_INTERFACE:ProjectConfig>)
|
target_link_libraries(flattests PRIVATE $<BUILD_INTERFACE:ProjectConfig>)
|
||||||
target_include_directories(flattests PUBLIC src)
|
target_include_directories(flattests PUBLIC src tests)
|
||||||
|
|
||||||
|
# Have tests load data from the source directory, not the build directory.
|
||||||
|
add_definitions(-DFLATBUFFERS_TEST_PATH_PREFIX=${CMAKE_CURRENT_SOURCE_DIR}/)
|
||||||
|
|
||||||
# The flattest target needs some generated files
|
# The flattest target needs some generated files
|
||||||
SET(FLATC_OPT --cpp --gen-mutable --gen-object-api --reflect-names)
|
SET(FLATC_OPT --cpp --gen-mutable --gen-object-api --reflect-names)
|
||||||
@@ -552,6 +554,7 @@ if(FLATBUFFERS_BUILD_TESTS)
|
|||||||
if(FLATBUFFERS_BUILD_CPP17)
|
if(FLATBUFFERS_BUILD_CPP17)
|
||||||
add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS})
|
add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS})
|
||||||
target_link_libraries(flattests_cpp17 PRIVATE $<BUILD_INTERFACE:ProjectConfig>)
|
target_link_libraries(flattests_cpp17 PRIVATE $<BUILD_INTERFACE:ProjectConfig>)
|
||||||
|
target_include_directories(flattests_cpp17 PUBLIC src tests)
|
||||||
target_compile_features(flattests_cpp17 PRIVATE cxx_std_17) # requires cmake 3.8
|
target_compile_features(flattests_cpp17 PRIVATE cxx_std_17) # requires cmake 3.8
|
||||||
|
|
||||||
if(FLATBUFFERS_CODE_SANITIZE)
|
if(FLATBUFFERS_CODE_SANITIZE)
|
||||||
|
|||||||
@@ -71,7 +71,6 @@ cc_test(
|
|||||||
],
|
],
|
||||||
copts = [
|
copts = [
|
||||||
"-DFLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE",
|
"-DFLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE",
|
||||||
"-DBAZEL_TEST_DATA_PATH",
|
|
||||||
],
|
],
|
||||||
data = [
|
data = [
|
||||||
":alignment_test.fbs",
|
":alignment_test.fbs",
|
||||||
|
|||||||
@@ -1670,12 +1670,7 @@ int FlatBufferTests(const std::string &tests_data_path) {
|
|||||||
} // namespace flatbuffers
|
} // namespace flatbuffers
|
||||||
|
|
||||||
int main(int argc, const char *argv[]) {
|
int main(int argc, const char *argv[]) {
|
||||||
std::string tests_data_path =
|
std::string tests_data_path = "tests/";
|
||||||
#ifdef BAZEL_TEST_DATA_PATH
|
|
||||||
"../com_github_google_flatbuffers/tests/";
|
|
||||||
#else
|
|
||||||
"tests/";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (int argi = 1; argi < argc; argi++) {
|
for (int argi = 1; argi < argc; argi++) {
|
||||||
std::string arg = argv[argi];
|
std::string arg = argv[argi];
|
||||||
|
|||||||
Reference in New Issue
Block a user