Skip to content

Commit 392df11

Browse files
committed
VCPKG Full refactor
uses local cache for assets now so should be able to produce an offline build with vcpkg. Only a couple of libraries left that are too big, and the vcpkg repo itself has files that are blocked from the repo. We could get around both issues by utilizing a submodule
1 parent 0b73e70 commit 392df11

9,683 files changed

Lines changed: 283 additions & 3430726 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-linux-gcc.yml

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -52,40 +52,38 @@ jobs:
5252

5353
- name: Install Linux Dependencies
5454
run: |
55-
sudo apt-get update && \
56-
sudo apt-get install -y \
57-
ninja-build \
58-
build-essential \
59-
nasm \
60-
python3 \
61-
python3-pip \
62-
gcc-12 g++-12 \
63-
gcc-13 g++-13 \
64-
clang \
65-
libogg-dev \
66-
libxft-dev \
67-
libx11-dev \
68-
libxxf86vm-dev \
69-
libopenal-dev \
70-
libasound2-dev \
71-
libpipewire-0.3-dev \
72-
portaudio19-dev \
73-
oss4-dev \
74-
libjack-dev \
75-
libpulse-dev \
76-
libdbus-1-dev \
77-
libfreetype6-dev \
78-
libxcursor-dev \
79-
libxinerama-dev \
80-
libxi-dev \
81-
libxrandr-dev \
82-
libxss-dev \
83-
libglu1-mesa-dev \
84-
libgtk-3-dev
85-
ninja --version
86-
cmake --version
87-
${{matrix.config.cc}} --version
88-
python3 -m pip install --break-system-packages jinja2
55+
sudo apt-get install ninja-build
56+
ninja --version
57+
cmake --version
58+
gcc --version
59+
sudo apt-get update && \
60+
sudo apt-get install -y \
61+
build-essential \
62+
nasm \
63+
git \
64+
curl \
65+
zip \
66+
unzip \
67+
pkg-config \
68+
autoconf \
69+
autoconf-archive \
70+
automake \
71+
make \
72+
libtool \
73+
libltdl-dev \
74+
libx11-dev \
75+
libxft-dev \
76+
libxext-dev \
77+
libwayland-dev \
78+
libxkbcommon-dev \
79+
libegl1-mesa-dev \
80+
libibus-1.0-dev \
81+
libgtk-3-dev
82+
83+
sudo apt-get install -y \
84+
python3
85+
86+
pip install jinja2
8987
9088
- name: Configure, Build & Install
9189
uses: threeal/cmake-action@v1.3.0
@@ -97,7 +95,7 @@ jobs:
9795
generator: ${{matrix.config.generator}}
9896
options: CMAKE_BUILD_TYPE=${{matrix.config.build_type}} TORQUE_APP_NAME=Torque3D TORQUE_TESTING=ON
9997
run-build: true
100-
build-args: --config ${{matrix.config.build_type}} --target install
98+
build-args: --config ${{matrix.config.build_type}}
10199

102100
- name: Unit Tests
103101
run: |

.github/workflows/build-macos-clang.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
generator: ${{matrix.config.generator}}
7070
options: CMAKE_BUILD_TYPE=${{matrix.config.build_type}} TORQUE_APP_NAME=Torque3D TORQUE_TESTING=ON
7171
run-build: true
72-
build-args: --config ${{matrix.config.build_type}} --target install
72+
build-args: --config ${{matrix.config.build_type}}
7373

7474
- name: Unit Tests
7575
run: |

.github/workflows/build-windows-msvc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ jobs:
9595
args: ${{matrix.config.cmake_args}}
9696
options: CMAKE_BUILD_TYPE=${{matrix.config.build_type}} TORQUE_APP_NAME=Torque3D TORQUE_TESTING=ON
9797
run-build: true
98-
build-args: --config ${{matrix.config.build_type}} --target install
98+
build-args: --config ${{matrix.config.build_type}}
9999

100100
# Skipped for ARM64 — binary cannot run on the x64 host runner.
101101
- name: Unit Tests

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ console.log
181181
*.cached.dts
182182
!Engine/bin
183183
My Projects/
184+
Tools/CMake/vcpkg/local
184185
Project Manager.exe
185186
projects.xml
186187
Qt*.dll

Engine/lib/CMakeLists.txt

Lines changed: 3 additions & 256 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,11 @@
1-
# Ask CMake to perform builds in a temporary directory for all of these.
2-
# We also use EXCLUDE_FROM_ALL to ensure we only build and install what we want
3-
#ZLIB
4-
get_filename_component(ZLIB_ROOT "zlib" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
5-
set(ZLIB_ROOT "${ZLIB_ROOT}" CACHE STRING "ZLib root location" FORCE)
6-
advanced_option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" OFF)
7-
mark_as_advanced(ZLIB_ROOT)
8-
# Png depends on zlib
9-
add_subdirectory(zlib ${TORQUE_LIB_TARG_DIRECTORY}/zlib EXCLUDE_FROM_ALL)
10-
11-
if(APPLE)
12-
enable_language(OBJC)
13-
advanced_option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" OFF)
14-
else()
15-
advanced_option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" ON)
16-
endif()
17-
18-
if(AL_ALEXT_PROTOTYPES)
19-
addDef( "AL_ALEXT_PROTOTYPES" )
20-
endif()
21-
22-
#SDL
23-
set(SDL_SHARED ON CACHE BOOL "Build a shared version of the library" FORCE)
24-
set(SDL_STATIC OFF CACHE BOOL "Build a static version of the library" FORCE)
25-
mark_as_advanced(SDL2MAIN_LIBRARY)
26-
mark_as_advanced(SDL2_CORE_LIBRARY)
27-
mark_as_advanced(SDL2_INCLUDE_DIR)
28-
mark_as_advanced(SDL2_DISABLE_INSTALL)
29-
mark_as_advanced(SDL2_DISABLE_SDL2MAIN)
30-
mark_as_advanced(SDL2_DISABLE_UNINSTALL)
31-
mark_as_advanced(SDL_3DNOW)
32-
mark_as_advanced(SDL_ALSA)
33-
mark_as_advanced(SDL_ALTIVEC)
34-
mark_as_advanced(SDL_ARMNEON)
35-
mark_as_advanced(SDL_ARMSIMD)
36-
mark_as_advanced(SDL_ARTS)
37-
mark_as_advanced(SDL_ASAN)
38-
mark_as_advanced(SDL_ASSEMBLY)
39-
mark_as_advanced(SDL_ASSERTIONS)
40-
mark_as_advanced(SDL_ATOMIC)
41-
mark_as_advanced(SDL_AUDIO)
42-
mark_as_advanced(SDL_BACKGROUNDING_SIGNAL)
43-
mark_as_advanced(SDL_CCACHE)
44-
mark_as_advanced(SDL_CLOCK_GETTIME)
45-
mark_as_advanced(SDL_COCOA)
46-
mark_as_advanced(SDL_CPUINFO)
47-
mark_as_advanced(SDL_DIRECTFB)
48-
mark_as_advanced(SDL_DIRECTX)
49-
mark_as_advanced(SDL_DISKAUDIO)
50-
mark_as_advanced(SDL_DUMMYAUDIO)
51-
mark_as_advanced(SDL_DUMMYVIDEO)
52-
mark_as_advanced(SDL_ESD)
53-
mark_as_advanced(SDL_EVENTS)
54-
mark_as_advanced(SDL_FILE)
55-
mark_as_advanced(SDL_FILESYSTEM)
56-
mark_as_advanced(SDL_FORCE_STATIC_VCRT)
57-
mark_as_advanced(SDL_FOREGROUNDING_SIGNAL)
58-
mark_as_advanced(SDL_FUSIONSOUND)
59-
mark_as_advanced(SDL_GCC_ATOMICS)
60-
mark_as_advanced(SDL_HAPTIC)
61-
mark_as_advanced(SDL_HIDAPI)
62-
mark_as_advanced(SDL_HIDAPI_JOYSTICK)
63-
mark_as_advanced(SDL_HIDAPI_LIBUSB)
64-
mark_as_advanced(SDL_INSTALL_TESTS)
65-
mark_as_advanced(SDL_JACK)
66-
mark_as_advanced(SDL_JOYSTICK)
67-
mark_as_advanced(SDL_KMSDRM)
68-
mark_as_advanced(SDL_LIBC)
69-
mark_as_advanced(SDL_LIBSAMPLERATE)
70-
mark_as_advanced(SDL_LIBUDEV)
71-
mark_as_advanced(SDL_LOADSO)
72-
mark_as_advanced(SDL_LOCALE)
73-
mark_as_advanced(SDL_METAL)
74-
mark_as_advanced(SDL_MISC)
75-
mark_as_advanced(SDL_MMX)
76-
mark_as_advanced(SDL_NAS)
77-
mark_as_advanced(SDL_OFFSCREEN)
78-
mark_as_advanced(SDL_OPENGL)
79-
mark_as_advanced(SDL_OPENGLES)
80-
mark_as_advanced(SDL_PIPEWIRE)
81-
mark_as_advanced(SDL_POWER)
82-
mark_as_advanced(SDL_PTHREADS)
83-
mark_as_advanced(SDL_PULSEAUDIO)
84-
mark_as_advanced(SDL_RENDER)
85-
mark_as_advanced(SDL_RENDER_D3D)
86-
mark_as_advanced(SDL_RENDER_METAL)
87-
mark_as_advanced(SDL_RPATH)
88-
mark_as_advanced(SDL_RPI)
89-
mark_as_advanced(SDL_SENSOR)
90-
mark_as_advanced(SDL_SHARED)
91-
mark_as_advanced(SDL_SNDIO)
92-
mark_as_advanced(SDL_SSE)
93-
mark_as_advanced(SDL_SSE2)
94-
mark_as_advanced(SDL_SSE3)
95-
mark_as_advanced(SDL_SSEMATH)
96-
mark_as_advanced(SDL_STATIC)
97-
mark_as_advanced(SDL_SYSTEM_ICONV)
98-
mark_as_advanced(SDL_TEST)
99-
mark_as_advanced(SDL_TESTS)
100-
mark_as_advanced(SDL_THREADS)
101-
mark_as_advanced(SDL_TIMERS)
102-
mark_as_advanced(SDL_VENDOR_INFO)
103-
mark_as_advanced(SDL_VIDEO)
104-
mark_as_advanced(SDL_VIRTUAL_JOYSTICK)
105-
mark_as_advanced(SDL_VIVANTE)
106-
mark_as_advanced(SDL_VULKAN)
107-
mark_as_advanced(SDL_WASAPI)
108-
mark_as_advanced(SDL_WAYLAND)
109-
mark_as_advanced(SDL_WERROR)
110-
mark_as_advanced(SDL_X11)
111-
mark_as_advanced(SDL_XINPUT)
112-
mark_as_advanced(SDL2_DIR)
113-
add_subdirectory(sdl ${TORQUE_LIB_TARG_DIRECTORY}/sdl2 EXCLUDE_FROM_ALL)
1141

1152
add_subdirectory(nativeFileDialogs ${TORQUE_LIB_TARG_DIRECTORY}/nfd EXCLUDE_FROM_ALL)
1163
add_subdirectory(convexMath ${TORQUE_LIB_TARG_DIRECTORY}/convexMath EXCLUDE_FROM_ALL)
1174

1185
# Assimp
6+
# Kept as a local build rather than a vcpkg port — the source tree is too
7+
# large to vendor a duplicate copy of via an overlay-port download, and we
8+
# already maintain it as a submodule under Engine/lib/assimp.
1199
advanced_option(ASSIMP_HUNTER_ENABLED "Enable Hunter package manager support" OFF)
12010
advanced_option(ASSIMP_BUILD_NO_OWN_ZLIB "" ON)
12111
set(BUILD_SHARED_LIBS OFF )
@@ -163,150 +53,7 @@ mark_as_advanced(ASSIMP_RUNTIME_OUTPUT_DIRECTORY)
16353
add_subdirectory(assimp ${TORQUE_LIB_TARG_DIRECTORY}/assimp EXCLUDE_FROM_ALL)
16454
target_compile_definitions(assimp PUBLIC ASSIMP_BUILD_NO_OWN_ZLIB)
16555

166-
if (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64)
167-
if(NOT APPLE)
168-
set(PNG_ARM_NEON on CACHE BOOL "" FORCE)
169-
endif(NOT APPLE)
170-
endif (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64)
171-
172-
if(APPLE)
173-
set(PNG_ARM_NEON off CACHE BOOL "" FORCE)
174-
endif()
175-
176-
#PNG STB Update: Not sure if these are still needed.
177-
set(PNG_STATIC on CACHE BOOL "" FORCE)
178-
mark_as_advanced(PNG_STATIC)
179-
set(PNG_SHARED off CACHE BOOL "" FORCE)
180-
mark_as_advanced(PNG_SHARED)
181-
set(PNG_BUILD_ZLIB OFF CACHE BOOL "" FORCE)
182-
mark_as_advanced(PNG_BUILD_ZLIB)
183-
set(PNG_TESTS off CACHE BOOL "" FORCE)
184-
mark_as_advanced(PNG_TESTS)
185-
set(PNG_HARDWARE_OPTIMIZATIONS on CACHE BOOL "" FORCE)
186-
set(SKIP_INSTALL_ALL ON CACHE BOOL "" FORCE)
187-
mark_as_advanced(PNG_HARDWARE_OPTIMIZATIONS)
188-
189-
if(APPLE)
190-
set(PNG_FRAMEWORK on CACHE BOOL "" FORCE)
191-
addDef(PNG_DEBUG Debug)
192-
endif()
193-
194-
mark_as_advanced(PNG_DEBUG)
195-
mark_as_advanced(PNG_FRAMEWORK)
196-
mark_as_advanced(PNG_PREFIX)
197-
add_subdirectory(lpng ${TORQUE_LIB_TARG_DIRECTORY}/lpng EXCLUDE_FROM_ALL)
198-
199-
add_subdirectory(tinyxml2 ${TORQUE_LIB_TARG_DIRECTORY}/tinyxml2 EXCLUDE_FROM_ALL)
20056
add_subdirectory(opcode ${TORQUE_LIB_TARG_DIRECTORY}/opcode EXCLUDE_FROM_ALL)
201-
add_subdirectory(pcre ${TORQUE_LIB_TARG_DIRECTORY}/pcre EXCLUDE_FROM_ALL)
20257

203-
add_subdirectory(squish ${TORQUE_LIB_TARG_DIRECTORY}/squish EXCLUDE_FROM_ALL)
20458
add_subdirectory(collada ${TORQUE_LIB_TARG_DIRECTORY}/collada EXCLUDE_FROM_ALL)
20559
add_subdirectory(glad ${TORQUE_LIB_TARG_DIRECTORY}/glad EXCLUDE_FROM_ALL)
206-
207-
set(ALSOFT_REQUIRE_LINUX OFF)
208-
set(ALSOFT_REQUIRE_WINDOWS OFF)
209-
set(ALSOFT_REQUIRE_WINDOWS_NOT_UWP OFF)
210-
set(ALSOFT_REQUIRE_APPLE OFF)
211-
set(ALSOFT_CPUEXT_NEON OFF)
212-
213-
if(UNIX AND NOT APPLE)
214-
set(ALSOFT_REQUIRE_LINUX ON)
215-
endif()
216-
if(WIN32)
217-
set(ALSOFT_REQUIRE_WINDOWS ON)
218-
endif()
219-
if(APPLE)
220-
set(ALSOFT_REQUIRE_APPLE ON)
221-
endif()
222-
223-
#hidden options
224-
if(TORQUE_SFX_OPENAL)
225-
advanced_option(TORQUE_OGGVORBIS "Enable OGG Vorbis" ON)
226-
advanced_option(ALSOFT_EAX "Enable legacy EAX extensions" ${WIN32})
227-
advanced_option(ALSOFT_UPDATE_BUILD_VERSION "Update git build version info" ON)
228-
mark_as_advanced(ALSOFT_BACKEND_COREAUDIO)
229-
advanced_option(ALSOFT_BACKEND_ALSA "Enable ALSA Backend" ${ALSOFT_REQUIRE_LINUX})
230-
advanced_option(ALSOFT_REQUIRE_ALSA "Require ALSA Backend" ${ALSOFT_REQUIRE_LINUX})
231-
advanced_option(ALSOFT_BACKEND_DSOUND "Enable DirectSound backend" ${ALSOFT_REQUIRE_WINDOWS})
232-
advanced_option(ALSOFT_REQUIRE_DSOUND "Require DirectSound Backend" ${ALSOFT_REQUIRE_WINDOWS})
233-
advanced_option(ALSOFT_BACKEND_JACK "Enable Jack backend" OFF)
234-
advanced_option(ALSOFT_BACKEND_OBOE "Enable OBOE backend" OFF)
235-
advanced_option(ALSOFT_BACKEND_OPENSL "Enable OpenSL backend" OFF)
236-
advanced_option(ALSOFT_BACKEND_PIPEWIRE "Enable PipeWire backend" OFF)
237-
advanced_option(ALSOFT_BACKEND_PORTAUDIO "Enable PortAudio backend" OFF)
238-
advanced_option(ALSOFT_BACKEND_PULSEAUDIO "Enable PulseAudio backend" OFF)
239-
advanced_option(ALSOFT_BACKEND_SDL2 "Use SDL2 Backend" OFF)
240-
advanced_option(ALSOFT_BACKEND_COREAUDIO "Enable CoreAudio backend" ${ALSOFT_REQUIRE_APPLE})
241-
advanced_option(ALSOFT_REQUIRE_COREAUDIO "Require CoreAudio backend" ${ALSOFT_REQUIRE_APPLE})
242-
advanced_option(ALSOFT_BACKEND_WASAPI "Enable WASAPI backend" ${ALSOFT_REQUIRE_WINDOWS})
243-
advanced_option(ALSOFT_REQUIRE_WASAPI "Require WASAPI backend" ${ALSOFT_REQUIRE_WINDOWS})
244-
advanced_option(ALSOFT_BACKEND_WAVE "Enable Wave backend" ON)
245-
advanced_option(ALSOFT_BACKEND_WINMM "Enable WinMM backend" OFF)
246-
mark_as_advanced(ALSOFT_BUILD_ROUTER)
247-
mark_as_advanced(ALSOFT_CPUEXT_NEON)
248-
mark_as_advanced(ALSOFT_CPUEXT_SSE)
249-
mark_as_advanced(ALSOFT_CPUEXT_SSE2)
250-
mark_as_advanced(ALSOFT_CPUEXT_SSE3)
251-
mark_as_advanced(ALSOFT_CPUEXT_SSE4_1)
252-
mark_as_advanced(ALSOFT_DLOPEN)
253-
mark_as_advanced(ALSOFT_EAX)
254-
advanced_option(ALSOFT_EMBED_HRTF_DATA "Embed the HRTF data files (increases library footprint)" OFF)
255-
advanced_option(ALSOFT_EXAMPLES "Build example programs" OFF)
256-
advanced_option(ALSOFT_INSTALL "Install OpenAL" OFF) # we move it ourselves
257-
advanced_option(ALSOFT_INSTALL_CONFIG "Install alsoft.conf sample configuration file" OFF)
258-
advanced_option(ALSOFT_INSTALL_HRTF_DATA "Install HRTF data files" OFF)
259-
advanced_option(ALSOFT_INSTALL_AMBDEC_PRESETS "Install AmbDec preset files" OFF)
260-
advanced_option(ALSOFT_INSTALL_EXAMPLES "Install example programs (alplay, alstream, ...)" OFF)
261-
advanced_option(ALSOFT_INSTALL_UTILS "Install utility programs (openal-info, alsoft-config, ...)" OFF)
262-
mark_as_advanced(ALSOFT_UPDATE_BUILD_VERSION)
263-
mark_as_advanced(ALSOFT_NO_CONFIG_UTIL)
264-
mark_as_advanced(ALSOFT_REQUIRE_JACK)
265-
mark_as_advanced(ALSOFT_REQUIRE_NEON)
266-
mark_as_advanced(ALSOFT_REQUIRE_OBOE)
267-
mark_as_advanced(ALSOFT_REQUIRE_OPENSL)
268-
mark_as_advanced(ALSOFT_REQUIRE_PIPEWIRE)
269-
mark_as_advanced(ALSOFT_REQUIRE_PORTAUDIO)
270-
mark_as_advanced(ALSOFT_REQUIRE_PULSEAUDIO)
271-
mark_as_advanced(ALSOFT_REQUIRE_SDL2)
272-
mark_as_advanced(ALSOFT_REQUIRE_SSE)
273-
mark_as_advanced(ALSOFT_REQUIRE_SSE2)
274-
mark_as_advanced(ALSOFT_REQUIRE_SSE3)
275-
mark_as_advanced(ALSOFT_REQUIRE_SSE4_1)
276-
mark_as_advanced(ALSOFT_REQUIRE_WINMM)
277-
mark_as_advanced(ALSOFT_SEARCH_INSTALL_DATADIR)
278-
mark_as_advanced(ALSOFT_TESTS)
279-
mark_as_advanced(ALSOFT_UTILS)
280-
mark_as_advanced(ALSOFT_WERROR)
281-
endif()
282-
283-
set(BUILD_SHARED_LIBS OFF )
284-
if(TORQUE_TESTING)
285-
add_subdirectory(gtest ${TORQUE_LIB_TARG_DIRECTORY}/gtest EXCLUDE_FROM_ALL)
286-
endif()
287-
#endif()
288-
289-
#misc randoms
290-
mark_as_advanced(WINDRES)
291-
mark_as_advanced(AUDIOUNIT_INCLUDE_DIR)
292-
mark_as_advanced(CCACHE_BINARY)
293-
mark_as_advanced(COREAUDIO_FRAMEWORK)
294-
mark_as_advanced(FORCE_STATIC_VCRT)
295-
mark_as_advanced(HAVE_GIT)
296-
mark_as_advanced(LIBRARY_SUFFIX)
297-
mark_as_advanced(USE_STATIC_CRT)
298-
299-
mark_as_advanced(BUILD_CXXLIBS)
300-
mark_as_advanced(BUILD_DOCS)
301-
mark_as_advanced(BUILD_REGTEST)
302-
mark_as_advanced(BUILD_UTILS)
303-
304-
mark_as_advanced(ENABLE_64_BIT_WORDS)
305-
mark_as_advanced(ENABLE_BOW_DOCS)
306-
mark_as_advanced(ENABLE_EXTERNAL_LIBS)
307-
308-
mark_as_advanced(WITH_ASM)
309-
mark_as_advanced(WITH_AVX)
310-
mark_as_advanced(WITH_FORTIFY_SOURCE)
311-
mark_as_advanced(WITH_OGG)
312-
mark_as_advanced(WITH_STACK_PROTECTOR)

Engine/lib/bullet/.ci/docker/env.list

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)