Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
e4be633
external_deps: use gmake instead of make on FreeBSD
illwieckz Sep 26, 2025
d40c213
external_deps: workaround a GLEW build error on FreeBSD
illwieckz Sep 26, 2025
d2e5cf9
external_deps: make defaults resetable with setup_default()
illwieckz Jun 25, 2026
08fa92b
external_deps: extract platform components
illwieckz Jun 25, 2026
bd4eef0
external_deps: provide a reusable framework for building native tools…
illwieckz Jun 26, 2026
4fa230c
external_deps: build pkg-config as a native tool
illwieckz Jun 26, 2026
0f55182
external_deps: build nasm as a native tool
illwieckz Jun 26, 2026
ca85c5a
external_deps: build naclruntime with cmake
illwieckz Jun 25, 2026
36bac3f
external_deps: upgrade nettle
illwieckz Jun 26, 2026
027d70d
external_deps: upgrade curl
illwieckz Jun 26, 2026
f315fad
external_deps: upgrade glew
illwieckz Jun 26, 2026
9e49895
external_deps: upgrade png
illwieckz Jun 26, 2026
cf34802
external_deps: upgrade jpeg
illwieckz Jun 26, 2026
8ba8a30
external_deps: upgrade opus
illwieckz Jun 26, 2026
440d05f
external_deps: upgrade sdl3
illwieckz Jun 26, 2026
43044a2
external_deps: upgrade zlib
illwieckz Jun 26, 2026
022a5d6
external_deps: rework the cmake toolchain configuration
illwieckz Jun 27, 2026
e0da623
external_deps: rework the macos configuration
illwieckz Jun 27, 2026
110d5b6
cmake: download macos-arm64 deps archive
illwieckz Jun 27, 2026
a904e25
external_deps: make possible to build box64
illwieckz Jul 3, 2026
626612c
external_deps: amd64 nacl_loader on arm64
illwieckz Jul 3, 2026
18069a5
cmake: copy box64
illwieckz Jul 3, 2026
f0e1f46
external_deps: let jpeg build for unknown platforms
illwieckz Sep 25, 2025
61f8adf
external_deps: build box64 for arm64
illwieckz Jul 3, 2026
a8b121b
cmake: enable box64 on arm64
illwieckz Jul 3, 2026
5be55e1
external_deps: add linux-riscv64 platform
illwieckz Sep 25, 2025
0555627
external_deps: add linux-ppc64el platform
illwieckz Jul 4, 2026
ec21239
external_deps: add linux-loong64 architecture
illwieckz Jul 4, 2026
acf3f0b
external_deps: distinguish between supported and extra deps packages
illwieckz Sep 25, 2025
1d1b82c
external_deps: use default build on unknown platform
illwieckz Jul 4, 2026
bec12fe
external_deps: add linux-armel platform
illwieckz Jul 4, 2026
a311e9f
external_deps: add freebsd-amd64 and freebsd-i686 platforms
illwieckz Jul 4, 2026
0ae3bf4
cmake: use Saigo by default to compile NaCl binaries
illwieckz Jun 26, 2026
031a7fd
external_deps: set MinGW flags as flags
illwieckz Jul 7, 2026
17436cd
cmake,external_deps: bump deps version to 12, expect the loader be pa…
illwieckz Jun 26, 2026
9cff592
external_deps: use ccache when available
illwieckz Jul 7, 2026
d5034b9
cmake: make possible for the game cmake to tell which variable to pas…
illwieckz Jul 8, 2026
f6ad5e2
VirtualMachine: increase timeout
illwieckz Jul 10, 2026
4b3a677
Remove amd64 bootstrap usage from deps
slipher Sep 7, 2026
333dccd
external_deps: make possible to reconfigure for a different target
illwieckz Jun 25, 2026
85df28b
external_deps: upgrade webp
illwieckz Oct 16, 2026
ebed0b8
external_deps: upgrade openal
illwieckz Oct 16, 2026
2e050c3
external_deps: upgrade nasm
illwieckz Oct 16, 2026
0534829
external_deps: upgrade png
illwieckz Oct 16, 2026
c63408c
external_deps: upgrade jpeg
illwieckz Oct 16, 2026
0940cbe
external_deps: upgrade curl
illwieckz Oct 16, 2026
b9dfa32
external_deps: upgrade ncurses
illwieckz Oct 16, 2026
6a3f0ae
external_deps: add macos-arm64-default
illwieckz Jun 26, 2026
cea1d56
VirtualMachine: implement VmFlags
illwieckz Oct 23, 2026
74223a9
VirtualMachine: make possible to force box64 on armhf
illwieckz Oct 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 15 additions & 28 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@ set(DEFAULT_NACL_VM_INHERITED_OPTIONS
BUILD_SGAME
CMAKE_BUILD_TYPE
CMAKE_VERBOSE_MAKEFILE
DAEMON_CBSE_PYTHON_PATH
USE_ARCH_INTRINSICS
USE_COMPILER_CUSTOMIZATION
USE_COMPILER_INTRINSICS
Expand Down Expand Up @@ -199,7 +198,7 @@ else()
endif()

# Dependencies versions
set(DEPS_VERSION 11) # This must match the number in external_deps/build.sh
set(DEPS_VERSION 12) # This must match the number in external_deps/build.sh
set(SAIGOSDK_VERSION 20261030) # This must match the number in external_deps/sdk-build.sh

option(USE_EXTERNAL_DEPS "Download or reuse dependencies from EXTERNAL_DEPS_DIR (mandatory for building and running NaCl .nexe binaries)." ON)
Expand Down Expand Up @@ -230,17 +229,7 @@ if (USE_EXTERNAL_DEPS AND NOT YOKAI_TARGET_SYSTEM_NACL)
set(SUPPORTED_${DEPS_SYSTEM}_ARCH amd64 i686)
elseif (YOKAI_TARGET_SYSTEM_MACOS)
set(DEPS_SYSTEM macos)
set(SUPPORTED_${DEPS_SYSTEM}_ARCH amd64)

if (YOKAI_TARGET_ARCH_ARM64)
set(DEPS_ARCH amd64)

set_deps_dir()

if (NOT EXISTS ${DEPS_DIR})
set(DEFAULT_USE_EXTERNAL_DEPS_LIBS OFF)
endif()
endif()
set(SUPPORTED_${DEPS_SYSTEM}_ARCH amd64 arm64)
elseif (YOKAI_TARGET_SYSTEM_LINUX)
set(DEPS_SYSTEM linux)
set(SUPPORTED_${DEPS_SYSTEM}_ARCH amd64 i686 arm64 armhf)
Expand Down Expand Up @@ -979,20 +968,11 @@ if (DEPS_DIR AND HAS_NACL AND (BUILD_CLIENT OR BUILD_TTY_CLIENT OR BUILD_SERVER

foreach(arch_name IN LISTS DAEMON_NACL_ARCH_NAME_LIST)
# The NaCl loader and IRT are required to load .nexe files
if (YOKAI_TARGET_SYSTEM_WINDOWS AND YOKAI_TARGET_ARCH_I686 AND "${arch_name}" STREQUAL "amd64")
# Backport compatibility until the external_deps script properly suffixes names in the archives.
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/nacl_loader-${arch_name}${CMAKE_EXECUTABLE_SUFFIX}
${FULL_OUTPUT_DIR}/nacl_loader-${arch_name}${CMAKE_EXECUTABLE_SUFFIX}
)
else()
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/nacl_loader${CMAKE_EXECUTABLE_SUFFIX}
${FULL_OUTPUT_DIR}/nacl_loader-${arch_name}${CMAKE_EXECUTABLE_SUFFIX}
)
endif()

add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
Expand All @@ -1002,26 +982,33 @@ if (DEPS_DIR AND HAS_NACL AND (BUILD_CLIENT OR BUILD_TTY_CLIENT OR BUILD_SERVER
endforeach()

if (YOKAI_TARGET_SYSTEM_LINUX_COMPATIBILITY)
# Backport compatibility until the external_deps script properly suffixes names in the archives.
if (YOKAI_TARGET_ARCH_ARM64)
foreach(arch_name IN LISTS DAEMON_NACL_MULTILIB_ARCH_NAME_LIST)
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${DEPS_DIR}/lib-armhf
${FULL_OUTPUT_DIR}/lib-armhf
${DEPS_DIR}/libs-linux-${arch_name}
${FULL_OUTPUT_DIR}/libs-linux-${arch_name}
)
endif()
endforeach()

# Linux uses a bootstrap program to reserve address space for 32-bit runtimes.
foreach(arch_name IN LISTS DAEMON_NACL_ARCH_NAME_LIST)
set(arch_32bit "i686" "armhf")
if ("${arch_name}" IN_LIST arch_32bit)
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/nacl_helper_bootstrap
${DEPS_DIR}/nacl_helper_bootstrap-${arch_name}
${FULL_OUTPUT_DIR}/nacl_helper_bootstrap-${arch_name}
)
endif()
endforeach()

if (DAEMON_NACL_BOX64_EMULATION)
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/box64
${FULL_OUTPUT_DIR}/box64
)
endif()
endif()

# Mac requires some libraries from external_deps
Expand Down
6 changes: 3 additions & 3 deletions cmake/DaemonGame.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ include(CMakeParseArguments)
list(APPEND NACL_ALL_TARGETS "amd64" "i686" "armhf")

if (NOT GAME_BUILD_SUBINVOCATION)
option(USE_NACL_SAIGO "Use the Saigo toolchain to build NaCl executables" OFF)
option(USE_NACL_SAIGO "Use the Saigo toolchain to build NaCl executables" ON)

if (USE_NACL_SAIGO)
set(HAS_NACL_SDK ON)
Expand Down Expand Up @@ -220,8 +220,8 @@ function(GAMEMODULE)

set(INHERITED_OPTION_ARGS)

foreach(inherited_option ${NACL_VM_INHERITED_OPTIONS})
set(INHERITED_OPTION_ARGS ${INHERITED_OPTION_ARGS}
foreach(inherited_option IN LISTS NACL_VM_INHERITED_OPTIONS GAME_NACL_VM_INHERITED_OPTIONS)
list(APPEND INHERITED_OPTION_ARGS
"-D${inherited_option}=${${inherited_option}}")
endforeach(inherited_option)

Expand Down
2 changes: 1 addition & 1 deletion cmake/DaemonNaclArchitecture.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ function(daemon_detect_nacl_arch target_arch)
endif()

set(armhf_usage "arm64" "armel")
set(box64_usage "ppc64el" "riscv64" "loong64")
set(box64_usage "arm64" "ppc64el" "riscv64" "loong64")

if ("${target_arch}" IN_LIST armhf_usage)
# Load 32-bit armhf nexe on 64-bit arm64 engine on Linux with multiarch.
Expand Down
Loading
Loading