Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
e9f98d6
external_deps: use gmake instead of make on FreeBSD
illwieckz Sep 26, 2025
5d286b0
external_deps: workaround a GLEW build error on FreeBSD
illwieckz Sep 26, 2025
40cc0d1
external_deps: make defaults resetable with setup_default()
illwieckz Jun 25, 2026
818c547
external_deps: extract platform components
illwieckz Jun 25, 2026
7fb14ff
cmake,VirtualMachine: append the architecture name to loader binaries…
illwieckz Jun 26, 2026
72c8de9
external_deps: provide a reusable framework for building native tools…
illwieckz Jun 26, 2026
f668636
external_deps: build pkg-config as a native tool
illwieckz Jun 26, 2026
2ecff5c
external_deps: build nasm as a native tool
illwieckz Jun 26, 2026
fef3491
cmake,external_deps: bump deps version to 12, expect the loader be pa…
illwieckz Jun 26, 2026
c90704f
external_deps: build naclruntime with cmake
illwieckz Jun 25, 2026
81fe391
external_deps: upgrade sdl3
illwieckz Jun 26, 2026
d233051
external_deps: upgrade zlib
illwieckz Jun 26, 2026
ccb02ee
external_deps: upgrade nettle
illwieckz Jun 26, 2026
78496c7
external_deps: upgrade curl
illwieckz Jun 26, 2026
e88df73
external_deps: upgrade glew
illwieckz Jun 26, 2026
6a9ea02
external_deps: upgrade png
illwieckz Jun 26, 2026
87bded0
external_deps: upgrade jpeg
illwieckz Jun 26, 2026
3916280
external_deps: do not upgrade openal
illwieckz Jun 26, 2026
5d93670
external_deps: upgrade opus
illwieckz Jun 26, 2026
592c226
external_deps: disable the GPU framework
illwieckz Jun 26, 2026
664f5cc
external_deps: add macos-arm64-default
illwieckz Jun 26, 2026
e51cfb7
external_deps: rework the cmake toolchain configuration
illwieckz Jun 27, 2026
6298e4b
external_deps: rework the macos configuration
illwieckz Jun 27, 2026
b78b277
cmake: download macos-arm64 deps archive
illwieckz Jun 27, 2026
fb26204
external_deps: box64
illwieckz Jul 3, 2026
24c6073
external_deps: amd64 nacl_loader on arm64
illwieckz Jul 3, 2026
0836a86
cmake: rework the code enabling nexe build when there is an nacl sdk,…
illwieckz Jul 3, 2026
821fc0f
cmake: copy box64
illwieckz Jul 3, 2026
8dd7d65
external_deps: let jpeg build for unknown platforms
illwieckz Sep 25, 2025
693e75b
external_deps: box64 install for arm64
illwieckz Jul 3, 2026
c885ee1
cmake: enable box64 on arm64
illwieckz Jul 3, 2026
c0b5ff0
external_deps: add linux-riscv64 platform
illwieckz Sep 25, 2025
4e4cb87
external_deps: add linux-ppc64el platform
illwieckz Jul 4, 2026
13b9b02
external_deps: add linux-loong64 architecture
illwieckz Jul 4, 2026
6adbac1
external_deps: distinguish between supported and extra deps packages
illwieckz Sep 25, 2025
b98ab6a
jpeg: default on PLATFORM_ARCH
illwieckz Jul 4, 2026
a880897
external_deps: add linux-armel platform
illwieckz Jul 4, 2026
0350e60
external_deps: add freebsd-amd64 and freebsd-i686 platforms
illwieckz Jul 4, 2026
829a19b
cmake: use Saigo by default to compile NaCl binaries
illwieckz Jun 26, 2026
770f58c
cmake: deeply rewrite the NaCl toolchains
illwieckz Jul 4, 2026
2a2000d
external_deps: set MinGW flags as flags
illwieckz Jul 7, 2026
7bc8c25
external_deps: use ccache when available
illwieckz Jul 7, 2026
36f2e5b
cmake: make possible for the game cmake to tell which variable to pas…
illwieckz Jul 8, 2026
92dc51b
virtualmachine: increase timeout
illwieckz Jul 10, 2026
0ce6ea3
Refactor: function for Linux arm64 check for VM
slipher Jul 30, 2026
1eb7652
Get rid of nacl_multiarch executable
slipher Jul 30, 2026
02b3fa4
Don't use nacl_helper_bootstrap with x86-64 loader
slipher Sep 7, 2026
21cd45d
external_deps: remove amd64 bootstrap usage from deps.
slipher Sep 7, 2026
3ea3154
Windows: block NaCl process from inheriting environment
slipher Sep 7, 2026
572cd5b
Check mmap_min_addr only if using NaCl bootstrap
slipher Sep 15, 2026
009c3d5
cmake: raise an error when the SDK prefix is not a directory
slipher Oct 12, 2026
91d87e8
Auto-download Saigo SDK for any supported host
slipher Oct 12, 2026
30f7b84
Add build script for Saigo SDK (host-mode deps)
slipher Oct 13, 2026
21ea764
external_deps: make possible to reconfigure for a different target
illwieckz Jun 25, 2026
fe987a3
external_deps: upgrade webp
illwieckz Oct 16, 2026
5c12632
external_deps: ++ webp
illwieckz Oct 16, 2026
3526407
external_deps: upgrade openal
illwieckz Oct 16, 2026
a515a42
external_deps: ++ openal
illwieckz Oct 16, 2026
ee5aee3
external_deps: upgrade nasm
illwieckz Oct 16, 2026
c6f2959
fixup: build naclruntime with cmake
illwieckz Oct 16, 2026
5ec77ca
external_deps: upgrade png
illwieckz Oct 16, 2026
5b1f878
external_deps: upgrade jpeg
illwieckz Oct 16, 2026
99a3752
external_deps: upgrade curl
illwieckz Oct 16, 2026
2ae7be6
external_deps: upgrade ncurses
illwieckz Oct 16, 2026
b18bd52
external_deps: upgrade sdl3
illwieckz Oct 16, 2026
df1e179
fixup-macos-platform
illwieckz Oct 16, 2026
c7f1cf5
fixup-space
illwieckz Oct 16, 2026
126c539
sdl-no-camera
illwieckz Oct 16, 2026
54a1df3
curl-disable-options
illwieckz Oct 17, 2026
f0b55e4
workaround-openal-macos
illwieckz Oct 17, 2026
dfd6f3c
bootstrap
illwieckz Oct 17, 2026
ee7eb9b
box64
illwieckz Oct 23, 2026
575ec50
naclruntime
illwieckz Oct 23, 2026
fcf80c4
space
illwieckz Oct 23, 2026
ee68953
implement VmFlags
illwieckz Oct 23, 2026
969e8a2
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ build
#ignore external deps
external_deps/*
!external_deps/build.sh
!external_deps/sdk-build.sh
!external_deps/cygtar.py
!external_deps/*.patch

Expand Down
177 changes: 83 additions & 94 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,15 @@ if (Daemon_OUT)
endif()

include(Yokai/All)
include(DaemonNaclHost)

if (NOT YOKAI_TARGET_SYSTEM_NACL)
include(DaemonNaclArchitecture)

daemon_detect_nacl_arch("${YOKAI_TARGET_ARCH_NAME}")

# Add printable strings to the executable.
yokai_add_buildinfo("char*" "DAEMON_NACL_ARCH_STRING" "\"${DAEMON_NACL_ARCH_NAME}\"")
endif()

################################################################################
# Configuration options
Expand Down Expand Up @@ -142,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 @@ -190,8 +197,9 @@ else()
set(FULL_OUTPUT_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR})
endif()

# Dependencies version, this must match the number in external_deps/build.sh
set(DEPS_VERSION 11)
# Dependencies versions
set(DEPS_VERSION 12) # This must match the number in external_deps/build.sh
set(SAIGOSDK_VERSION 20260925) # 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 @@ -221,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 @@ -266,6 +264,9 @@ endif()

option(USE_EXTERNAL_DEPS_LIBS "Build and link against libraries from the EXTERNAL_DEPS_DIR" ${DEFAULT_USE_EXTERNAL_DEPS_LIBS})

set(PNACLSDK_PREFIX "${DEPS_DIR}/pnacl" CACHE PATH "PNaCl SDK path")
mark_as_advanced(PNACLSDK_PREFIX)

if (USE_EXTERNAL_DEPS AND NOT YOKAI_TARGET_SYSTEM_NACL)
if (DEPS_DIR)
message(STATUS "Using external deps dir: ${DEPS_DIR}")
Expand All @@ -292,6 +293,7 @@ endif()
# meaning we have to detect useless engine compiler to set
# useless engine flags when only building vms.
include(DaemonFlags)
include(DaemonNaclFlags)

# FIXME: Once engine flags would be only set when building the engine
# this would be likely unused by vms as they are built by DaemonGame.
Expand Down Expand Up @@ -398,33 +400,33 @@ if (DEPS_DIR)
if (NOT EXISTS ${DEPS_DIR})
file(MAKE_DIRECTORY ${EXTERNAL_DEPS_DIR})
get_filename_component(BASENAME ${DEPS_DIR} NAME)
set(DEPS_FILENAME "${BASENAME}${DEPS_EXT}")

# Download test DEPS archive if DEPS archive isn't available yet.
# This makes possible to get the CI working before releasing the DEPS archive.
foreach(REMOTE_BASEURL https://dl.unvanquished.net/deps;https://dl.unvanquished.net/test/deps)
set(REMOTE "${REMOTE_BASEURL}/${DEPS_FILENAME}")
message(STATUS "Downloading dependencies from '${REMOTE}'")

file(DOWNLOAD "${REMOTE}" "${OBJ_DIR}/${DEPS_FILENAME}"
SHOW_PROGRESS
STATUS DOWNLOAD_RESULT
LOG DOWNLOAD_LOG
)

list(GET DOWNLOAD_RESULT 0 DOWNLOAD_STATUS)
list(GET DOWNLOAD_RESULT 1 DOWNLOAD_STRING)

if (DOWNLOAD_STATUS EQUAL 0)
break()
else ()
message(WARNING "Error downloading '${REMOTE}':
Status code: ${DOWNLOAD_STATUS}
Error string: ${DOWNLOAD_STRING}
Download log: ${DOWNLOAD_LOG}"
)
endif()
endforeach()
set(DEPS_FILENAME "${BASENAME}${DEPS_EXT}")

# Download test DEPS archive if DEPS archive isn't available yet.
# This makes possible to get the CI working before releasing the DEPS archive.
foreach(REMOTE_BASEURL https://dl.unvanquished.net/deps;https://dl.unvanquished.net/test/deps)
set(REMOTE "${REMOTE_BASEURL}/${DEPS_FILENAME}")
message(STATUS "Downloading dependencies from '${REMOTE}'")

file(DOWNLOAD "${REMOTE}" "${OBJ_DIR}/${DEPS_FILENAME}"
SHOW_PROGRESS
STATUS DOWNLOAD_RESULT
LOG DOWNLOAD_LOG
)

list(GET DOWNLOAD_RESULT 0 DOWNLOAD_STATUS)
list(GET DOWNLOAD_RESULT 1 DOWNLOAD_STRING)

if (DOWNLOAD_STATUS EQUAL 0)
break()
else ()
message(WARNING "Error downloading '${REMOTE}':
Status code: ${DOWNLOAD_STATUS}
Error string: ${DOWNLOAD_STRING}
Download log: ${DOWNLOAD_LOG}"
)
endif()
endforeach()

if (NOT DOWNLOAD_STATUS EQUAL 0)
message(FATAL_ERROR "Failed to download '${DEPS_FILENAME}'")
Expand All @@ -443,6 +445,11 @@ if (DEPS_DIR)
endif()
endif()

if (BUILD_GAME_NACL AND USE_NACL_SAIGO AND NOT SAIGOSDK_PREFIX)
include(DaemonDependenciesDownload)
download_saigosdk()
endif()

if (USE_EXTERNAL_DEPS_LIBS)
# Add to paths
set(CMAKE_FIND_ROOT_PATH ${DEPS_DIR} ${CMAKE_FIND_ROOT_PATH})
Expand All @@ -463,7 +470,6 @@ endif()
# LIBS_BASE, LIBS_ENGINE_BASE LIBS_ENGINE, LIBS_BASECLIENT, LIBS_CLIENT

# Native client
include(DaemonNacl)
if (YOKAI_TARGET_SYSTEM_NACL)
add_library(srclibs-nacl-module EXCLUDE_FROM_ALL ${NACLLIST_MODULE})
set(LIBS_BASE ${LIBS_BASE} srclibs-nacl-module)
Expand All @@ -484,16 +490,6 @@ elseif (YOKAI_TARGET_SYSTEM_NACL)
find_library(NACL_EXCEPTION nacl_exception)
find_library(NACL_MINIDUMP minidump_generator)

# HACK: To be removed when Saigo is repackaged properly.
if (NOT NACL_MINIDUMP
# NACL_TARGET is specific to Saigo, PNaCl target is le32 and doesn't set NACL_TARGET.
AND "${NACL_TARGET}" STREQUAL "i686"
# x86_64-nacl/lib32 is specific to Google build, other builds may provide i686-nacl/lib instead.
AND EXISTS "${DEPS_DIR}/saigo_newlib/x86_64-nacl/lib32")
set(NACL_EXCEPTION "${DEPS_DIR}/saigo_newlib/x86_64-nacl/lib32/libnacl_exception.a")
set(NACL_MINIDUMP "${DEPS_DIR}/saigo_newlib/x86_64-nacl/lib32/libminidump_generator.a")
endif()

set(LIBS_BASE ${LIBS_BASE} ${NACL_MINIDUMP} ${NACL_EXCEPTION})
else()
find_library(LIBM m)
Expand Down Expand Up @@ -970,56 +966,49 @@ if (DEPS_DIR AND HAS_NACL AND (BUILD_CLIENT OR BUILD_TTY_CLIENT OR BUILD_SERVER
add_custom_target(runtime_deps)
set_target_properties(runtime_deps PROPERTIES FOLDER "CMakePlumbing")

# The NaCl loader and IRT are required to load .nexe files
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${CMAKE_EXECUTABLE_SUFFIX}
)
foreach(arch_name IN LISTS DAEMON_NACL_ARCH_NAME_LIST)
# The NaCl loader and IRT are required to load .nexe files
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}
)

add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/irt_core-${DAEMON_NACL_ARCH_NAME}.nexe
${FULL_OUTPUT_DIR}/irt_core-${DAEMON_NACL_ARCH_NAME}.nexe
)
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/irt_core-${arch_name}.nexe
${FULL_OUTPUT_DIR}/irt_core-${arch_name}.nexe
)
endforeach()

# Linux uses a bootstrap program to reserve address space
if (YOKAI_TARGET_SYSTEM_LINUX_COMPATIBILITY)
if (YOKAI_TARGET_ARCH_ARM64)
add_executable(nacl_helper_bootstrap-armhf tools/nacl_helper_bootstrap-armhf/nacl_helper_bootstrap-armhf.cpp)
add_dependencies(runtime_deps nacl_helper_bootstrap-armhf)

foreach(arch_name IN LISTS DAEMON_NACL_MULTILIB_ARCH_NAME_LIST)
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory
${FULL_OUTPUT_DIR}/lib-armhf
COMMAND ${CMAKE_COMMAND} -E copy_directory
${DEPS_DIR}/libs-linux-${arch_name}
${FULL_OUTPUT_DIR}/libs-linux-${arch_name}
)
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-${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_directory
${DEPS_DIR}/lib-armhf
${FULL_OUTPUT_DIR}/lib-armhf
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/box64
${FULL_OUTPUT_DIR}/box64
)
endif()

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

# Win32 requires nacl_loader_amd64.exe in order to run on Win64
if (YOKAI_TARGET_SYSTEM_WINDOWS AND YOKAI_TARGET_ARCH_I686)
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/nacl_loader-amd64${CMAKE_EXECUTABLE_SUFFIX}
${FULL_OUTPUT_DIR}/nacl_loader-amd64${CMAKE_EXECUTABLE_SUFFIX}
)
add_custom_command(TARGET runtime_deps PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${DEPS_DIR}/irt_core-amd64.nexe
${FULL_OUTPUT_DIR}/irt_core-amd64.nexe
)
endif()

# Mac requires some libraries from external_deps
Expand Down
74 changes: 74 additions & 0 deletions cmake/DaemonDependenciesDownload.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Daemon BSD Source Code
# Copyright (c) 2013-2026, Daemon Developers
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the Daemon developers nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL DAEMON DEVELOPERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# TODO: Move other deps downloading code in here.

set(SAIGOSDK_BASENAME "saigosdk-${DEPS_SYSTEM}-${DEPS_ARCH}_${SAIGOSDK_VERSION}")

# Warning: changing SAIGOSDK_PREFIX/SAIGOSDK_VERSION after subprojects have been configured WILL
# change the compiler, but it is a bad idea since flag tests and such (not to mention the actual
# compiled artifacts) will be out of date.
set(SAIGOSDK_PREFIX "${EXTERNAL_DEPS_DIR}/${SAIGOSDK_BASENAME}" CACHE PATH "PNaCl SDK path")
mark_as_advanced(SAIGOSDK_PREFIX)

# As an alternative to downloading, external_deps/sdk-build.sh can be used, to build the host-mode
# dependencies and install them in the expected path.
function(download_saigosdk)
if (NOT EXISTS "${SAIGOSDK_PREFIX}")
set(DEPS_FILENAME "${SAIGOSDK_BASENAME}.tar.xz")
set(REMOTE "https://github.com/DaemonEngine/saigo-nacl-sdk/releases/download/v${SAIGOSDK_VERSION}/${DEPS_FILENAME}")
message(STATUS "Downloading NaCl SDK from '${REMOTE}'")

file(DOWNLOAD "${REMOTE}" "${OBJ_DIR}/${DEPS_FILENAME}"
SHOW_PROGRESS
STATUS DOWNLOAD_RESULT
LOG DOWNLOAD_LOG
)

list(GET DOWNLOAD_RESULT 0 DOWNLOAD_STATUS)
list(GET DOWNLOAD_RESULT 1 DOWNLOAD_STRING)

if (NOT DOWNLOAD_STATUS EQUAL 0)
message(FATAL_ERROR "Failed to download '${REMOTE}': This may be a network error, or your system may be an unsupported host platform.
Status code: ${DOWNLOAD_STATUS}
Error string: ${DOWNLOAD_STRING}
Download log: ${DOWNLOAD_LOG}"
)
endif()

message(STATUS "SDK download completed successfully")

# Extract the downloaded archive
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xJf ${OBJ_DIR}/${DEPS_FILENAME}
WORKING_DIRECTORY ${EXTERNAL_DEPS_DIR}
RESULT_VARIABLE EXTRACT_RESULT
)
if (NOT EXTRACT_RESULT EQUAL 0)
message(FATAL_ERROR "Could not extract ${DEPS_FILENAME}")
endif()
endif()
endfunction()
Loading
Loading