Skip to content

Commit fc99039

Browse files
committed
avoid building optional components
1 parent a36ca90 commit fc99039

File tree

11 files changed

+84
-62
lines changed

11 files changed

+84
-62
lines changed

CMakeLists.txt

Lines changed: 62 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ project(RLBotCPP VERSION 2.0.0)
44

55
option(RLBOT_CPP_ENABLE_LTO "Enable RLBotCPP link-time optimization" ON)
66
option(RLBOT_CPP_ENABLE_TRACY "Enable tracy profiler" OFF)
7+
option(RLBOT_CPP_BUILD_BENCHMARK "Build benchmark application" OFF)
78

89
include(CheckIPOSupported)
910
check_ipo_supported(RESULT LTO_SUPPORTED)
@@ -19,52 +20,68 @@ FetchContent_Declare(flatbuffers
1920
)
2021
FetchContent_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-
5723
FetchContent_Declare(flatbuffers_schema
5824
GIT_REPOSITORY https://github.com/RLBot/flatbuffers-schema.git
5925
GIT_TAG 805c3cb5f0cd8aa13b940d98f9af59914aab0012
6026
)
6127
FetchContent_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

6986
if(LINUX OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
7087
FetchContent_Declare(liburing
@@ -84,12 +101,6 @@ if(LINUX OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
84101
)
85102
endif()
86103

87-
find_program(FLATC flatc REQUIRED NO_DEFAULT_PATH
88-
PATHS
89-
${flatbuffers_BINARY_DIR}
90-
${flatbuffers_BINARY_DIR}/Release
91-
)
92-
93104
add_custom_command(
94105
OUTPUT
95106
${CMAKE_CURRENT_BINARY_DIR}/rlbot_generated.h
@@ -107,6 +118,10 @@ add_custom_command(
107118
add_custom_target(rlbot-generated DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/rlbot_generated.h)
108119

109120
add_subdirectory(library)
110-
add_subdirectory(benchmark)
121+
111122
add_subdirectory(examples/ATBA)
112123
add_subdirectory(examples/ExampleBot)
124+
125+
if(RLBOT_CPP_BUILD_BENCHMARK)
126+
add_subdirectory(benchmark)
127+
endif()

examples/ATBA/ATBA.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#include "ATBA.h"
22

3-
#include <tracy/Tracy.hpp>
4-
53
#include <algorithm>
64
#include <cmath>
75
#include <concepts>

examples/ExampleBot/ExampleBot.cpp

100755100644
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#include "ExampleBot.h"
22

3-
#include <tracy/Tracy.hpp>
4-
53
#include <algorithm>
64
#include <cmath>
75
#include <concepts>

examples/ExampleBot/main.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
#include <rlbot/BotManager.h>
44

5+
#ifdef TRACY_ENABLE
56
#include <tracy/Tracy.hpp>
7+
#endif
68

79
#include <cstdio>
810
#include <cstdlib>
@@ -23,7 +25,9 @@ void (&alignedFree) (void *) = std::free;
2325

2426
int main (int argc_, char *argv_[])
2527
{
28+
#ifdef TRACY_ENABLE
2629
TracyNoop;
30+
#endif
2731

2832
auto const agentId = std::getenv ("RLBOT_AGENT_ID");
2933
if (!agentId || std::strlen (agentId) == 0)

library/BotContext.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
#include "BotManagerImpl.h"
44
#include "Log.h"
5+
#include "TracyHelper.h"
6+
57
#include <chrono>
68

79
using namespace rlbot::detail;

library/BotContext.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
#include "Message.h"
66
#include "Pool.h"
77

8-
#include <tracy/Tracy.hpp>
9-
108
#include <atomic>
119
#include <condition_variable>
1210
#include <future>

library/BotManagerImpl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#include "BotManagerImpl.h"
22

33
#include "Log.h"
4+
#include "TracyHelper.h"
45

56
#include <cstdint>
6-
#include <tracy/Tracy.hpp>
77

88
#ifdef _WIN32
99
#include <WS2tcpip.h>

library/BotManagerImpl.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414

1515
#include <rlbot_generated.h>
1616

17-
#include <tracy/Tracy.hpp>
18-
1917
#include <atomic>
2018
#include <condition_variable>
2119
#include <deque>

library/CMakeLists.txt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,11 @@ foreach(TARGET ${PROJECT_NAME} ${PROJECT_NAME}-static)
4949

5050
target_include_directories(${TARGET} PUBLIC include)
5151

52-
target_include_directories(${TARGET} SYSTEM PUBLIC
53-
${flatbuffers_SOURCE_DIR}/include
54-
${tracy_SOURCE_DIR}/public
55-
)
52+
target_include_directories(${TARGET} SYSTEM PUBLIC ${flatbuffers_SOURCE_DIR}/include)
53+
54+
if(RLBOT_CPP_ENABLE_TRACY)
55+
target_include_directories(${TARGET} SYSTEM PUBLIC ${tracy_SOURCE_DIR}/public)
56+
endif()
5657

5758
add_dependencies(${TARGET} rlbot-generated)
5859
target_include_directories(${TARGET} SYSTEM PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/..)

library/Pool.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#include "Pool.h"
22

33
#include "Log.h"
4-
5-
#include <tracy/Tracy.hpp>
4+
#include "TracyHelper.h"
65

76
#include <algorithm>
87
#include <cassert>

0 commit comments

Comments
 (0)