@@ -4,6 +4,7 @@ project(RLBotCPP VERSION 2.0.0)
44
55option (RLBOT_CPP_ENABLE_LTO "Enable RLBotCPP link-time optimization" ON )
66option (RLBOT_CPP_ENABLE_TRACY "Enable tracy profiler" OFF )
7+ option (RLBOT_CPP_BUILD_BENCHMARK "Build benchmark application" OFF )
78
89include (CheckIPOSupported )
910check_ipo_supported (RESULT LTO_SUPPORTED )
@@ -19,52 +20,68 @@ FetchContent_Declare(flatbuffers
1920)
2021FetchContent_Populate (flatbuffers)
2122
22- execute_process (COMMAND
23- ${CMAKE_COMMAND}
24- -B ${flatbuffers_BINARY_DIR}
25- -S ${flatbuffers_SOURCE_DIR}
26- -G ${CMAKE_GENERATOR}
27- -DCMAKE_BUILD_TYPE=Release
28- -DCMAKE_CONFIGURATION_TYPES=Release
29- -DFLATBUFFERS_CODE_COVERAGE=OFF
30- -DFLATBUFFERS_BUILD_TESTS=OFF
31- -DFLATBUFFERS_INSTALL=OFF
32- -DFLATBUFFERS_BUILD_FLATLIB=OFF
33- -DFLATBUFFERS_BUILD_FLATC=ON
34- -DFLATBUFFERS_STATIC_FLATC=OFF
35- -DFLATBUFFERS_BUILD_FLATHASH=OFF
36- -DFLATBUFFERS_BUILD_BENCHMARKS=OFF
37- -DFLATBUFFERS_BUILD_GRPCTEST=OFF
38- -DFLATBUFFERS_BUILD_SHAREDLIB=OFF
39- -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF
40- -DFLATBUFFERS_CODE_SANITIZE=OFF
41- -DFLATBUFFERS_PACKAGE_REDHAT=OFF
42- -DFLATBUFFERS_PACKAGE_DEBIAN=OFF
43- -DFLATBUFFERS_BUILD_CPP17=ON
44- -DFLATBUFFERS_BUILD_LEGACY=OFF
45- -DFLATBUFFERS_ENABLE_PCH=OFF
46- -DFLATBUFFERS_SKIP_MONSTER_EXTRA=ON
47- -DFLATBUFFERS_STRICT_MODE=OFF
48- )
49- execute_process (COMMAND
50- ${CMAKE_COMMAND}
51- --build ${flatbuffers_BINARY_DIR}
52- --target flatc
53- --parallel ${NPROC}
54- --config Release
55- )
56-
5723FetchContent_Declare (flatbuffers_schema
5824 GIT_REPOSITORY https://github.com/RLBot/flatbuffers-schema.git
5925 GIT_TAG 805c3cb5f0cd8aa13b940d98f9af59914aab0012
6026)
6127FetchContent_Populate (flatbuffers_schema)
6228
63- FetchContent_Declare (tracy
64- GIT_REPOSITORY https://github.com/wolfpld/tracy.git
65- GIT_TAG v0.11.1
66- )
67- FetchContent_Populate (tracy)
29+ if (RLBOT_CPP_ENABLE_TRACY)
30+ FetchContent_Declare (tracy
31+ GIT_REPOSITORY https://github.com/wolfpld/tracy.git
32+ GIT_TAG v0.11.1
33+ )
34+ FetchContent_Populate (tracy)
35+ endif ()
36+
37+ find_program (FLATC flatc REQUIRED NO_DEFAULT_PATH PATHS ${flatbuffers_schema_SOURCE_DIR} )
38+
39+ execute_process (COMMAND ${FLATC} --help OUTPUT_QUIET RESULTS_VARIABLE FLATC_RESULT )
40+
41+ if (NOT FLATC_RESULT STREQUAL "0" )
42+ execute_process (COMMAND
43+ ${CMAKE_COMMAND}
44+ -B ${flatbuffers_BINARY_DIR}
45+ -S ${flatbuffers_SOURCE_DIR}
46+ -G ${CMAKE_GENERATOR}
47+ -DCMAKE_BUILD_TYPE=Release
48+ -DCMAKE_CONFIGURATION_TYPES=Release
49+ -DFLATBUFFERS_CODE_COVERAGE=OFF
50+ -DFLATBUFFERS_BUILD_TESTS=OFF
51+ -DFLATBUFFERS_INSTALL=OFF
52+ -DFLATBUFFERS_BUILD_FLATLIB=OFF
53+ -DFLATBUFFERS_BUILD_FLATC=ON
54+ -DFLATBUFFERS_STATIC_FLATC=OFF
55+ -DFLATBUFFERS_BUILD_FLATHASH=OFF
56+ -DFLATBUFFERS_BUILD_BENCHMARKS=OFF
57+ -DFLATBUFFERS_BUILD_GRPCTEST=OFF
58+ -DFLATBUFFERS_BUILD_SHAREDLIB=OFF
59+ -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF
60+ -DFLATBUFFERS_CODE_SANITIZE=OFF
61+ -DFLATBUFFERS_PACKAGE_REDHAT=OFF
62+ -DFLATBUFFERS_PACKAGE_DEBIAN=OFF
63+ -DFLATBUFFERS_BUILD_CPP17=ON
64+ -DFLATBUFFERS_BUILD_LEGACY=OFF
65+ -DFLATBUFFERS_ENABLE_PCH=OFF
66+ -DFLATBUFFERS_SKIP_MONSTER_EXTRA=ON
67+ -DFLATBUFFERS_STRICT_MODE=OFF
68+ )
69+
70+ execute_process (COMMAND
71+ ${CMAKE_COMMAND}
72+ --build ${flatbuffers_BINARY_DIR}
73+ --target flatc
74+ --parallel ${NPROC}
75+ --config Release
76+ )
77+
78+ unset (FLATC CACHE )
79+ find_program (FLATC flatc REQUIRED NO_DEFAULT_PATH
80+ PATHS
81+ ${flatbuffers_BINARY_DIR}
82+ ${flatbuffers_BINARY_DIR} /Release
83+ )
84+ endif ()
6885
6986if (LINUX OR CMAKE_SYSTEM_NAME STREQUAL "Linux" )
7087 FetchContent_Declare (liburing
@@ -84,12 +101,6 @@ if(LINUX OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
84101 )
85102endif ()
86103
87- find_program (FLATC flatc REQUIRED NO_DEFAULT_PATH
88- PATHS
89- ${flatbuffers_BINARY_DIR}
90- ${flatbuffers_BINARY_DIR} /Release
91- )
92-
93104add_custom_command (
94105 OUTPUT
95106 ${CMAKE_CURRENT_BINARY_DIR} /rlbot_generated.h
@@ -107,6 +118,10 @@ add_custom_command(
107118add_custom_target (rlbot-generated DEPENDS ${CMAKE_CURRENT_BINARY_DIR} /rlbot_generated.h )
108119
109120add_subdirectory (library )
110- add_subdirectory ( benchmark )
121+
111122add_subdirectory (examples/ATBA )
112123add_subdirectory (examples/ExampleBot )
124+
125+ if (RLBOT_CPP_BUILD_BENCHMARK)
126+ add_subdirectory (benchmark )
127+ endif ()
0 commit comments