Skip to content

Commit 2dedb35

Browse files
authored
Serialization common (#193)
1 parent 99bcad0 commit 2dedb35

38 files changed

+193
-113
lines changed

bootstrap/src/build_buildcc.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ void buildcc_cb(BaseTarget &target, const BaseGenerator &schema_gen,
5353
target.AddIncludeDir("lib/env/include");
5454
target.GlobHeaders("lib/env/include/env");
5555

56+
// SCHEMA
57+
target.GlobSources("schema/src");
58+
target.AddIncludeDir("schema/include");
59+
target.GlobHeaders("schema/include/schema");
60+
target.GlobHeaders("schema/include/schema/interface");
61+
target.GlobHeaders("schema/include/schema/private");
62+
5663
// TOOLCHAIN
5764
target.GlobSources("lib/toolchain/src/api");
5865
target.AddIncludeDir("lib/toolchain/include");
@@ -72,8 +79,6 @@ void buildcc_cb(BaseTarget &target, const BaseGenerator &schema_gen,
7279
target.GlobHeaders("lib/target/include/target/common");
7380
target.GlobHeaders("lib/target/include/target/friend");
7481
target.GlobHeaders("lib/target/include/target/interface");
75-
target.GlobHeaders("lib/target/include/target/private");
76-
target.GlobHeaders("lib/target/include/target/serialization");
7782

7883
// ARGS
7984
target.GlobSources("lib/args/src");

buildcc/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
set(BUILDCC_INSTALL_LIB_PREFIX "lib/cmake")
33
set(BUILDCC_INSTALL_HEADER_PREFIX "include/buildcc")
44

5-
# Flatbuffers schema
6-
add_subdirectory(schema)
7-
85
if(${BUILDCC_BUILD_AS_SINGLE_LIB})
96
add_library(buildcc STATIC
107
buildcc.h
@@ -31,6 +28,9 @@ if(${BUILDCC_BUILD_AS_SINGLE_LIB})
3128
endif()
3229
endif()
3330

31+
# Flatbuffers schema
32+
add_subdirectory(schema)
33+
3434
# Environment
3535
add_subdirectory(lib/env)
3636

buildcc/lib/target/cmake/common_target_src.cmake

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,18 @@
11
set(COMMON_TARGET_SRCS
22
# Interfaces
33
include/target/interface/builder_interface.h
4-
include/target/interface/serialization_interface.h
54

65
# Common
76
src/common/target_config.cpp
87
src/common/target_state.cpp
9-
include/target/common/target_file_ext.h
108
include/target/common/target_config.h
119
include/target/common/target_state.h
10+
include/target/common/target_file_ext.h
1211
include/target/common/target_env.h
13-
include/target/common/target_type.h
1412

1513
src/common/util.cpp
1614
include/target/common/util.h
1715

18-
include/target/common/path.h
19-
2016
# API
2117
src/api/source_api.cpp
2218
src/api/include_api.cpp
@@ -39,10 +35,6 @@ set(COMMON_TARGET_SRCS
3935
include/target/api/target_info_getter.h
4036
include/target/api/target_getter.h
4137

42-
# Base Generator
43-
src/generator/generator_serialization.cpp
44-
include/target/serialization/generator_serialization.h
45-
4638
# Generator
4739
src/generator/generator.cpp
4840
include/target/generator.h
@@ -55,10 +47,6 @@ set(COMMON_TARGET_SRCS
5547
include/target/friend/compile_object.h
5648
include/target/friend/link_target.h
5749

58-
# Base Target
59-
src/target/target_serialization.cpp
60-
include/target/serialization/target_serialization.h
61-
6250
# Target
6351
src/target/target.cpp
6452
src/target/build.cpp

buildcc/lib/target/cmake/mock_target.cmake

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,14 @@ add_library(mock_target STATIC
1414
target_include_directories(mock_target PUBLIC
1515
${CMAKE_CURRENT_SOURCE_DIR}/include
1616
${CMAKE_CURRENT_SOURCE_DIR}/mock
17-
${SCHEMA_BUILD_DIR}
1817
)
1918

2019
target_compile_options(mock_target PUBLIC ${TEST_COMPILE_FLAGS} ${BUILD_COMPILE_FLAGS})
2120
target_link_options(mock_target PUBLIC ${TEST_LINK_FLAGS} ${BUILD_LINK_FLAGS})
2221
target_link_libraries(mock_target PUBLIC
23-
flatbuffers_header_only
2422
Taskflow
2523

24+
mock_schema
2625
mock_toolchain
2726

2827
CppUTest
@@ -36,5 +35,3 @@ if (${MINGW})
3635
message(WARNING "-Wl,--allow-multiple-definition for MINGW")
3736
target_link_options(mock_target PUBLIC -Wl,--allow-multiple-definition)
3837
endif()
39-
40-
add_dependencies(mock_target fbs_to_header)

buildcc/lib/target/cmake/target.cmake

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ if(${BUILDCC_BUILD_AS_SINGLE_LIB})
1616
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
1717
$<INSTALL_INTERFACE:${BUILDCC_INSTALL_HEADER_PREFIX}>
1818
)
19-
target_include_directories(buildcc PRIVATE
20-
${SCHEMA_BUILD_DIR}
21-
)
22-
add_dependencies(buildcc fbs_to_header)
2319
endif()
2420

2521
if(${BUILDCC_BUILD_AS_INTERFACE})
@@ -32,15 +28,10 @@ if(${BUILDCC_BUILD_AS_INTERFACE})
3228
$<INSTALL_INTERFACE:${BUILDCC_INSTALL_HEADER_PREFIX}>
3329
)
3430
target_link_libraries(target PUBLIC
31+
schema
3532
toolchain
36-
flatbuffers_header_only
3733
Taskflow
3834
)
39-
40-
target_include_directories(target PRIVATE
41-
${SCHEMA_BUILD_DIR}
42-
)
4335
target_compile_options(target PRIVATE ${BUILD_COMPILE_FLAGS})
4436
target_link_options(target PRIVATE ${BUILD_LINK_FLAGS})
45-
add_dependencies(target fbs_to_header)
4637
endif()

buildcc/lib/target/include/target/api/target_getter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#include <filesystem>
2121
#include <string>
2222

23-
#include "target/common/target_type.h"
23+
#include "schema/target_type.h"
2424

2525
#include "toolchain/toolchain.h"
2626

buildcc/lib/target/include/target/api/target_info_getter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#ifndef TARGET_API_TARGET_INFO_GETTER_H_
1818
#define TARGET_API_TARGET_INFO_GETTER_H_
1919

20-
#include "target/common/path.h"
20+
#include "schema/path.h"
2121

2222
#include "target/common/target_config.h"
2323
#include "target/common/target_state.h"

buildcc/lib/target/include/target/common/util.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#include <string>
2121
#include <vector>
2222

23-
#include "target/common/path.h"
23+
#include "schema/path.h"
2424

2525
namespace buildcc::internal {
2626

buildcc/lib/target/include/target/friend/compile_object.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
#include <filesystem>
2121

22-
#include "target/common/path.h"
22+
#include "schema/path.h"
2323

2424
#include "taskflow/core/task.hpp"
2525
#include "taskflow/taskflow.hpp"

buildcc/lib/target/include/target/generator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232

3333
#include "target/interface/builder_interface.h"
3434

35-
#include "target/serialization/generator_serialization.h"
35+
#include "schema/generator_serialization.h"
36+
#include "schema/path.h"
3637

37-
#include "target/common/path.h"
3838
#include "target/common/target_env.h"
3939

4040
namespace buildcc {

buildcc/lib/target/include/target/interface/builder_interface.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
#include "env/assert_fatal.h"
2525

26-
#include "target/common/path.h"
2726
#include "target/common/util.h"
2827

2928
namespace buildcc::internal {

buildcc/lib/target/include/target/target.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@
3535
#include "target/target_info.h"
3636

3737
// Common
38-
#include "target/common/target_type.h"
38+
#include "schema/target_type.h"
3939

4040
// Friend
4141
#include "target/friend/compile_object.h"
4242
#include "target/friend/compile_pch.h"
4343
#include "target/friend/link_target.h"
4444

4545
// Internal
46-
#include "target/common/path.h"
47-
#include "target/serialization/target_serialization.h"
46+
#include "schema/path.h"
47+
#include "schema/target_serialization.h"
4848

4949
// Env
5050
#include "env/env.h"

buildcc/lib/target/include/target/target_info.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
#include "target/api/sync_api.h"
3333
#include "target/api/target_info_getter.h"
3434

35-
#include "target/serialization/target_serialization.h"
35+
#include "schema/target_serialization.h"
3636

3737
namespace buildcc {
3838

buildcc/lib/target/src/common/target_config.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
#include "env/assert_fatal.h"
2020

21-
#include "target/common/path.h"
21+
#include "schema/path.h"
2222

2323
#include "fmt/format.h"
2424

buildcc/lib/target/src/target/friend/compile_pch.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
#include "target/friend/compile_pch.h"
1818

19-
#include "target/common/path.h"
19+
#include "schema/path.h"
2020
#include "target/target.h"
2121

2222
#include "env/util.h"

buildcc/lib/target/test/path/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ target_include_directories(${TEST_NAME} PRIVATE
1010
${CMAKE_CURRENT_BINARY_DIR}/generated
1111
)
1212
target_link_libraries(${TEST_NAME} PRIVATE
13-
mock_env
13+
mock_env
14+
mock_schema
15+
1416
CppUTest
1517
CppUTestExt
1618
gcov

buildcc/lib/target/test/path/test_path.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Internal
2-
#include "target/common/path.h"
2+
#include "schema/path.h"
33

44
#include "env/assert_fatal.h"
55

buildcc/lib/target/test/target/test_builder_interface.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include "target/interface/builder_interface.h"
22

3-
#include "target/common/path.h"
3+
#include "schema/path.h"
44

55
// NOTE, Make sure all these includes are AFTER the system and header includes
66
#include "CppUTest/CommandLineTestRunner.h"

buildcc/lib/target/test/target/test_serialization_interface.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "target/interface/serialization_interface.h"
1+
#include "schema/interface/serialization_interface.h"
22

33
// NOTE, Make sure all these includes are AFTER the system and header includes
44
#include "CppUTest/CommandLineTestRunner.h"

buildcc/lib/target/test/target/test_target_external_lib.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#include "target/target.h"
99

10-
#include "target/serialization/target_serialization.h"
10+
#include "schema/target_serialization.h"
1111

1212
#include <iostream>
1313
#include <unistd.h>

buildcc/lib/target/test/target/test_target_flags.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include "env/env.h"
99

1010
//
11-
#include "target/serialization/target_serialization.h"
11+
#include "schema/target_serialization.h"
1212

1313
// Third Party
1414

buildcc/lib/target/test/target/test_target_lib_dep.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "target/target.h"
1010

1111
//
12-
#include "target/serialization/target_serialization.h"
12+
#include "schema/target_serialization.h"
1313

1414
#include <iostream>
1515
#include <unistd.h>

buildcc/plugins/src/buildcc_find.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include "env/host_os_util.h"
2424
#include "env/logging.h"
2525

26-
#include "target/common/path.h"
26+
#include "schema/path.h"
2727

2828
namespace {
2929
constexpr const char *const kEnvVarNotFound =

buildcc/schema/CMakeLists.txt

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,2 @@
1-
# Generate files
2-
set(SCHEMA_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated CACHE PATH "Generate path of flatbuffer schema")
3-
4-
set(FBS_FILES
5-
${CMAKE_CURRENT_SOURCE_DIR}/path.fbs
6-
${CMAKE_CURRENT_SOURCE_DIR}/generator.fbs
7-
${CMAKE_CURRENT_SOURCE_DIR}/target.fbs
8-
)
9-
set(FBS_GEN_FILES
10-
${SCHEMA_BUILD_DIR}/path_generated.h
11-
${SCHEMA_BUILD_DIR}/generator_generated.h
12-
${SCHEMA_BUILD_DIR}/target_generated.h
13-
)
14-
set(FBS_GEN_OPTIONS
15-
-I ${CMAKE_CURRENT_SOURCE_DIR}
16-
--gen-object-api
17-
)
18-
19-
add_custom_command(OUTPUT ${FBS_GEN_FILES}
20-
COMMAND flatc -o ${SCHEMA_BUILD_DIR} ${FBS_GEN_OPTIONS} --cpp ${FBS_FILES}
21-
DEPENDS flatc ${FBS_FILES}
22-
)
23-
24-
add_custom_target(fbs_to_header
25-
DEPENDS ${FBS_GEN_FILES}
26-
)
1+
include(cmake/schema_generate.cmake)
2+
include(cmake/schema.cmake)

0 commit comments

Comments
 (0)