@@ -24,40 +24,6 @@ endif()
2424
2525# <TClient>
2626
27- # re2
28-
29- find_package (PkgConfig QUIET )
30- if (PkgConfig_FOUND)
31- pkg_check_modules(RE2 QUIET re2)
32- else ()
33- find_package (re2 REQUIRED)
34- message (STATUS "PkgConfig not found" )
35- message (STATUS " RE2 will probably be built even if installed" )
36- endif ()
37- if (NOT RE2_FOUND)
38- message (STATUS "RE2 not found" )
39- message (STATUS " building RE2 2025-08-12 and absl 2025-08-14.1 instead" )
40- message (STATUS " you should install RE2 for a faster build" )
41- set (ABSL_ENABLE_INSTALL FALSE CACHE BOOL "" FORCE)
42- set (RE2_INSTALL OFF CACHE BOOL "" FORCE)
43- include (FetchContent)
44- FetchContent_Declare(
45- absl
46- GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
47- GIT_TAG 20250814.1
48- GIT_SHALLOW TRUE
49- )
50- FetchContent_MakeAvailable(absl)
51- FetchContent_Declare(
52- re2
53- GIT_REPOSITORY https://github.com/google/re2.git
54- GIT_TAG 2025-08-12
55- GIT_SHALLOW TRUE
56- )
57- FetchContent_MakeAvailable(re2)
58- set (RE2_LIBRARIES, re2::re2)
59- endif ()
60-
6127# data_version.txt
6228
6329set (DATA_VERSION_FILE "${CMAKE_BINARY_DIR} /data/data_version.txt" )
@@ -92,6 +58,50 @@ endif()
9258
9359file (APPEND "${DATA_VERSION_FILE} " "TClient ${TCLIENT_VERSION_MAJOR} .${TCLIENT_VERSION_MINOR} .${TCLIENT_VERSION_PATCH} \n " )
9460
61+ # Try install RE2 for CI
62+ if (DEFINED ENV{GITHUB_ACTIONS})
63+ message (STATUS "Detected GitHub Actions CI, installing re2" )
64+ message (STATUS "System Name: ${CMAKE_HOST_SYSTEM_NAME} " )
65+ if (MINGW OR MSYS)
66+ execute_process (COMMAND pacman -Sy --noconfirm mingw-w64-x86_64-re2)
67+ elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" )
68+ execute_process (COMMAND sudo apt-get install -y libre2-dev)
69+ elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin" )
70+ execute_process (COMMAND brew install re2)
71+ elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows" )
72+ set (VCPKG_DIR "${CMAKE_BINARY_DIR} /vcpkg" )
73+ set (ENV{VCPKG_DISABLE_METRICS} "yes" )
74+ set (ENV{VCPKG_ROOT} "${VCPKG_DIR} " )
75+ execute_process (COMMAND git clone --depth 1 https://github.com/microsoft/vcpkg.git "${VCPKG_DIR} " RESULT_VARIABLE GIT_CLONE_RESULT)
76+ if (NOT GIT_CLONE_RESULT EQUAL 0)
77+ message (FATAL_ERROR "Failed to clone vcpkg" )
78+ endif ()
79+ execute_process (COMMAND "${VCPKG_DIR} /bootstrap-vcpkg.bat" WORKING_DIRECTORY "${VCPKG_DIR} " RESULT_VARIABLE BOOTSTRAP_RESULT)
80+ if (NOT BOOTSTRAP_RESULT EQUAL 0)
81+ message (FATAL_ERROR "Failed to bootstrap vcpkg" )
82+ endif ()
83+ set (ENV{VCPKG_BUILD_TYPE} "release" )
84+ execute_process (COMMAND "${VCPKG_DIR} /vcpkg.exe" install re2 WORKING_DIRECTORY "${VCPKG_DIR} " RESULT_VARIABLE VCPKG_INSTALL_RE2_RESULT)
85+ if (NOT VCPKG_INSTALL_RE2_RESULT EQUAL 0)
86+ message (FATAL_ERROR "Failed to install re2 via vcpkg" )
87+ endif ()
88+ else ()
89+ message (FATAL_ERROR "Couldn't install re2" )
90+ endif ()
91+ endif ()
92+ # Find package
93+ find_package (RE2 QUIET )
94+ if (NOT RE2_FOUND)
95+ find_package (RE2 CONFIG QUIET )
96+ if (NOT RE2_FOUND)
97+ find_package (PkgConfig REQUIRED)
98+ pkg_check_modules(RE2 REQUIRED re2)
99+ endif ()
100+ endif ()
101+ message (STATUS "RE2_INCLUDE_DIRS = ${RE2_INCLUDE_DIRS} " )
102+ message (STATUS "RE2_LIBRARY_DIRS = ${RE2_LIBRARY_DIRS} " )
103+ message (STATUS "RE2_LIBRARIES = ${RE2_LIBRARIES} " )
104+
95105# </TClient>
96106
97107set (ORIGINAL_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} )
@@ -2863,6 +2873,7 @@ if(CLIENT)
28632873 endif ()
28642874
28652875 target_include_directories (game-client SYSTEM PRIVATE
2876+ ${RE2_INCLUDE_DIRS} # TClient
28662877 ${FREETYPE_INCLUDE_DIRS}
28672878 ${GLEW_INCLUDE_DIRS}
28682879 ${OGG_INCLUDE_DIRS}
0 commit comments