|
|
@ -3,15 +3,17 @@ |
|
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project |
|
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project |
|
|
# SPDX-License-Identifier: GPL-3.0-or-later |
|
|
# SPDX-License-Identifier: GPL-3.0-or-later |
|
|
|
|
|
|
|
|
cat << EOF >"ps4-toolchain.cmake" |
|
|
|
|
|
|
|
|
OO_PS4_TOOLCHAIN="/home/xerix/src/ps4-sdk/prefix" |
|
|
|
|
|
|
|
|
|
|
|
[ -f "ps4-toolchain.cmake" ] || cat << EOF >"ps4-toolchain.cmake" |
|
|
set(CMAKE_SYSROOT "$OO_PS4_TOOLCHAIN") |
|
|
set(CMAKE_SYSROOT "$OO_PS4_TOOLCHAIN") |
|
|
|
|
|
|
|
|
set(CMAKE_C_FLAGS "-D_LIBCPP_HAS_MUSL_LIBC=1 -D_GNU_SOURCE=1 --target=x86_64-pc-freebsd12-elf -funwind-tables -isystem $OO_PS4_TOOLCHAIN/include -isystem $OO_PS4_TOOLCHAIN/include/c++/v1") |
|
|
|
|
|
set(CMAKE_CXX_FLAGS "-D_LIBCPP_HAS_MUSL_LIBC=1 -D_GNU_SOURCE=1 --target=x86_64-pc-freebsd12-elf -funwind-tables -isystem $OO_PS4_TOOLCHAIN/include -isystem $OO_PS4_TOOLCHAIN/include/c++/v1") |
|
|
|
|
|
|
|
|
set(CMAKE_C_FLAGS "-D_LIBCPP_HAS_MUSL_LIBC=1 -D_GNU_SOURCE=1 --target=x86_64-pc-freebsd12-elf -mtune=x86-64 -march=x86-64 -funwind-tables -nostdinc -isystem $OO_PS4_TOOLCHAIN/include/c++/v1 -isystem $OO_PS4_TOOLCHAIN/include") |
|
|
|
|
|
set(CMAKE_CXX_FLAGS "-D_LIBCPP_HAS_MUSL_LIBC=1 -D_GNU_SOURCE=1 --target=x86_64-pc-freebsd12-elf -mtune=x86-64 -march=x86-64 -funwind-tables -nostdinc -isystem $OO_PS4_TOOLCHAIN/include/c++/v1 -isystem $OO_PS4_TOOLCHAIN/include") |
|
|
|
|
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "-m elf_x86_64 -pie --script $OO_PS4_TOOLCHAIN/link.x --eh-frame-hdr -L$OO_PS4_TOOLCHAIN/lib -lc -lkernel -lc++ -lSceUserService -lSceVideoOut -lSceAudioOut -lScePad -lSceSysmodule -lSceFreeType $OO_PS4_TOOLCHAIN/lib/crt1.o") |
|
|
|
|
|
set(CMAKE_C_LINK_FLAGS "-m elf_x86_64 -pie --script $OO_PS4_TOOLCHAIN/link.x --eh-frame-hdr -L$OO_PS4_TOOLCHAIN/lib -lc -lkernel -lSceUserService -lSceVideoOut -lSceAudioOut -lScePad -lSceSysmodule -lSceFreeType $OO_PS4_TOOLCHAIN/lib/crt1.o") |
|
|
|
|
|
set(CMAKE_CXX_LINK_FLAGS "-m elf_x86_64 -pie --script $OO_PS4_TOOLCHAIN/link.x --eh-frame-hdr -L$OO_PS4_TOOLCHAIN/lib -lc -lkernel -lc++ -lSceUserService -lSceVideoOut -lSceAudioOut -lScePad -lSceSysmodule -lSceFreeType $OO_PS4_TOOLCHAIN/lib/crt1.o") |
|
|
|
|
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "-m elf_x86_64 -pie --script $OO_PS4_TOOLCHAIN/link.x --eh-frame-hdr -L$OO_PS4_TOOLCHAIN/lib") |
|
|
|
|
|
set(CMAKE_C_LINK_FLAGS "-lc -lkernel -lSceUserService -lSceVideoOut -lSceAudioOut -lScePad -lSceSysmodule -lSceFreeType $OO_PS4_TOOLCHAIN/lib/crt1.o") |
|
|
|
|
|
set(CMAKE_CXX_LINK_FLAGS "<CMAKE_C_LINK_FLAGS> -lc++") |
|
|
|
|
|
|
|
|
set(CMAKE_C_COMPILER clang) |
|
|
set(CMAKE_C_COMPILER clang) |
|
|
set(CMAKE_CXX_COMPILER clang++) |
|
|
set(CMAKE_CXX_COMPILER clang++) |
|
|
@ -36,9 +38,7 @@ fi |
|
|
# Normally a platform has a package manager |
|
|
# Normally a platform has a package manager |
|
|
# PS4 does not, atleast not in the normal sense |
|
|
# PS4 does not, atleast not in the normal sense |
|
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@) |
|
|
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@) |
|
|
mkdir -p build |
|
|
|
|
|
cd build |
|
|
|
|
|
cmake .. -G Ninja \ |
|
|
|
|
|
|
|
|
cmake -S . -B build -G Ninja \ |
|
|
-DCMAKE_TOOLCHAIN_FILE="ps4-toolchain.cmake" \ |
|
|
-DCMAKE_TOOLCHAIN_FILE="ps4-toolchain.cmake" \ |
|
|
-DENABLE_QT_TRANSLATION=OFF \ |
|
|
-DENABLE_QT_TRANSLATION=OFF \ |
|
|
-DENABLE_CUBEB=OFF \ |
|
|
-DENABLE_CUBEB=OFF \ |
|
|
@ -54,4 +54,4 @@ cmake .. -G Ninja \ |
|
|
-DYUZU_USE_EXTERNAL_FFMPEG=ON \ |
|
|
-DYUZU_USE_EXTERNAL_FFMPEG=ON \ |
|
|
-DYUZU_USE_CPM=ON \ |
|
|
-DYUZU_USE_CPM=ON \ |
|
|
"${EXTRA_CMAKE_FLAGS[@]}" || exit |
|
|
"${EXTRA_CMAKE_FLAGS[@]}" || exit |
|
|
ninja -j${NPROC} || exit |
|
|
|
|
|
|
|
|
cmake --build build --parallel |