fix: address PR #31 and #32 review findings

- Dockerfile: fix LLVM apt repo codename (jammy → noble) for ubuntu:24.04
- build-linux.sh: add missing mkdir -p /wowee-build-src before tar extraction
- Dockerfile: remove dead ENV OSXCROSS_VERSION=1.5 and its unset
- CMakeLists: scope -undefined dynamic_lookup to wowee target only
- GameServices: remove redundant game:: qualifier inside namespace game
- application.cpp: zero out gameServices_ after gameHandler reset in shutdown
This commit is contained in:
Kelsi 2026-03-30 13:40:40 -07:00
parent fe080bed4b
commit 76d29ad669
5 changed files with 10 additions and 5 deletions

View file

@ -338,7 +338,7 @@ endif()
# macOS cross-compilation: the Vulkan loader (MoltenVK) is not available at link # macOS cross-compilation: the Vulkan loader (MoltenVK) is not available at link
# time. Allow unresolved Vulkan symbols — they are resolved at runtime. # time. Allow unresolved Vulkan symbols — they are resolved at runtime.
if(CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_NAME STREQUAL "Darwin") if(CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_NAME STREQUAL "Darwin")
add_link_options("-undefined" "dynamic_lookup") set(WOWEE_MACOS_CROSS_COMPILE TRUE)
endif() endif()
# GL/GLEW kept temporarily for unconverted sub-renderers during Vulkan migration. # GL/GLEW kept temporarily for unconverted sub-renderers during Vulkan migration.
# These files compile against GL types but their code is never called — the Vulkan # These files compile against GL types but their code is never called — the Vulkan
@ -783,6 +783,11 @@ add_executable(wowee ${WOWEE_SOURCES} ${WOWEE_HEADERS} ${WOWEE_PLATFORM_SOURCES}
if(TARGET opcodes-generate) if(TARGET opcodes-generate)
add_dependencies(wowee opcodes-generate) add_dependencies(wowee opcodes-generate)
endif() endif()
# macOS cross-compilation: MoltenVK is not available at link time.
# Allow unresolved Vulkan symbols — resolved at runtime. Scoped to wowee only.
if(WOWEE_MACOS_CROSS_COMPILE)
target_link_options(wowee PRIVATE "-undefined" "dynamic_lookup")
endif()
# FidelityFX-SDK headers can trigger compiler-specific pragma/unused-static noise # FidelityFX-SDK headers can trigger compiler-specific pragma/unused-static noise
# when included through the runtime bridge; keep suppression scoped to that TU. # when included through the runtime bridge; keep suppression scoped to that TU.

View file

@ -11,6 +11,7 @@ OUT=/out
NPROC=$(nproc) NPROC=$(nproc)
echo "==> [linux] Copying source tree..." echo "==> [linux] Copying source tree..."
mkdir -p /wowee-build-src
tar -C "${SRC}" \ tar -C "${SRC}" \
--exclude='./build' --exclude='./logs' --exclude='./cache' \ --exclude='./build' --exclude='./logs' --exclude='./cache' \
--exclude='./container' --exclude='./.git' \ --exclude='./container' --exclude='./.git' \

View file

@ -32,7 +32,6 @@ FROM ubuntu:24.04 AS builder
# Default: arm64. Override with MACOS_ARCH=x86_64 env var at run time. # Default: arm64. Override with MACOS_ARCH=x86_64 env var at run time.
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV OSXCROSS_VERSION=1.5
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
@ -61,7 +60,7 @@ RUN apt-get update && \
gnupg \ gnupg \
software-properties-common && \ software-properties-common && \
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \ wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main" > /etc/apt/sources.list.d/llvm-18.list && \ echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-18 main" > /etc/apt/sources.list.d/llvm-18.list && \
apt-get update && \ apt-get update && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
clang-18 \ clang-18 \
@ -81,7 +80,6 @@ COPY --from=sdk-fetcher /opt/sdk/ /opt/osxcross/tarballs/
ENV MACOSX_DEPLOYMENT_TARGET=13.0 ENV MACOSX_DEPLOYMENT_TARGET=13.0
RUN cd /opt/osxcross && \ RUN cd /opt/osxcross && \
unset OSXCROSS_VERSION && \
UNATTENDED=1 ./build.sh && \ UNATTENDED=1 ./build.sh && \
rm -rf /opt/osxcross/build /opt/osxcross/tarballs rm -rf /opt/osxcross/build /opt/osxcross/tarballs

View file

@ -14,7 +14,7 @@ namespace game {
struct GameServices { struct GameServices {
rendering::Renderer* renderer = nullptr; rendering::Renderer* renderer = nullptr;
pipeline::AssetManager* assetManager = nullptr; pipeline::AssetManager* assetManager = nullptr;
game::ExpansionRegistry* expansionRegistry = nullptr; ExpansionRegistry* expansionRegistry = nullptr;
uint32_t gryphonDisplayId = 0; uint32_t gryphonDisplayId = 0;
uint32_t wyvernDisplayId = 0; uint32_t wyvernDisplayId = 0;
}; };

View file

@ -921,6 +921,7 @@ void Application::shutdown() {
world.reset(); world.reset();
LOG_WARNING("Resetting gameHandler..."); LOG_WARNING("Resetting gameHandler...");
gameHandler.reset(); gameHandler.reset();
gameServices_ = {};
LOG_WARNING("Resetting authHandler..."); LOG_WARNING("Resetting authHandler...");
authHandler.reset(); authHandler.reset();
LOG_WARNING("Resetting assetManager..."); LOG_WARNING("Resetting assetManager...");