Skip to content

Commit 1f4cde8

Browse files
committed
Install re2 dependency instead of building it
re2 plz forgive me
1 parent 8216302 commit 1f4cde8

File tree

2 files changed

+46
-36
lines changed

2 files changed

+46
-36
lines changed

.github/workflows/fast-build.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ jobs:
5252
if: contains(matrix.os, 'macOS')
5353
run: |
5454
brew update || true
55-
brew install pkg-config ninja molten-vk vulkan-headers glslang spirv-tools glew googletest libpng molten-vk opusfile wavpack x264 || true
56-
brew upgrade freetype
55+
brew install molten-vk vulkan-headers glslang spirv-tools glew googletest molten-vk opusfile wavpack x264 || true
5756
pip3 install --break-system-packages dmgbuild
5857
echo /Library/Frameworks/Python.framework/Versions/3.12/bin >> $GITHUB_PATH
5958
sudo rm -rf /Library/Developer/CommandLineTools

CMakeLists.txt

Lines changed: 45 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6329
set(DATA_VERSION_FILE "${CMAKE_BINARY_DIR}/data/data_version.txt")
@@ -92,6 +58,50 @@ endif()
9258

9359
file(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

97107
set(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

Comments
 (0)