Compare commits
No commits in common. "master" and "v0.0.37" have entirely different histories.
|
|
@ -1,10 +1,9 @@
|
||||||
#!/bin/sh -ex
|
#!/bin/sh -ex
|
||||||
|
|
||||||
# Pull all the submodules except some
|
# Pull all the submodules except llvm, opencv, libpng, sdl and curl
|
||||||
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
git config --global --add safe.directory .
|
git submodule -q update --init --depth 1 $(awk '/path/ && !/llvm/ && !/opencv/ && !/libpng/ && !/libsdl-org/ && !/curl/ { print $3 }' .gitmodules)
|
||||||
git submodule -q update --init --depth 1 $(awk '/path/ && !/llvm/ && !/opencv/ && !/libpng/ && !/libsdl-org/ && !/curl/ && !/zlib/ && !/libusb/ && !/feralinteractive/ { print $3 }' .gitmodules)
|
|
||||||
|
|
||||||
CONFIGURE_ARGS="
|
CONFIGURE_ARGS="
|
||||||
-DWITH_LLVM=ON
|
-DWITH_LLVM=ON
|
||||||
|
|
@ -14,7 +13,6 @@ CONFIGURE_ARGS="
|
||||||
-DUSE_SYSTEM_FFMPEG=ON
|
-DUSE_SYSTEM_FFMPEG=ON
|
||||||
-DUSE_SYSTEM_CURL=ON
|
-DUSE_SYSTEM_CURL=ON
|
||||||
-DUSE_SYSTEM_LIBPNG=ON
|
-DUSE_SYSTEM_LIBPNG=ON
|
||||||
-DUSE_SYSTEM_LIBUSB=ON
|
|
||||||
-DUSE_SYSTEM_OPENCV=ON
|
-DUSE_SYSTEM_OPENCV=ON
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
#!/bin/sh -ex
|
#!/bin/sh -ex
|
||||||
|
|
||||||
cd rpcs3 || exit 1
|
if [ -z "$CIRRUS_CI" ]; then
|
||||||
|
cd rpcs3 || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
shellcheck .ci/*.sh
|
shellcheck .ci/*.sh
|
||||||
|
|
||||||
git config --global --add safe.directory '*'
|
git config --global --add safe.directory '*'
|
||||||
|
|
||||||
# Pull all the submodules except some
|
# Pull all the submodules except llvm, opencv, sdl and curl
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ && !/libsdl-org/ && !/curl/ && !/zlib/ { print $3 }' .gitmodules)
|
git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ && !/libsdl-org/ && !/curl/ { print $3 }' .gitmodules)
|
||||||
|
|
||||||
mkdir build && cd build || exit 1
|
mkdir build && cd build || exit 1
|
||||||
|
|
||||||
|
|
@ -50,6 +52,10 @@ ninja; build_status=$?;
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# If it compiled succesfully let's deploy.
|
# If it compiled succesfully let's deploy.
|
||||||
if [ "$build_status" -eq 0 ]; then
|
# Azure and Cirrus publish PRs as artifacts only.
|
||||||
|
{ [ "$CI_HAS_ARTIFACTS" = "true" ];
|
||||||
|
} && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false"
|
||||||
|
|
||||||
|
if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then
|
||||||
.ci/deploy-linux.sh "aarch64"
|
.ci/deploy-linux.sh "aarch64"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,17 @@
|
||||||
#!/bin/sh -ex
|
#!/bin/sh -ex
|
||||||
|
|
||||||
cd rpcs3 || exit 1
|
if [ -z "$CIRRUS_CI" ]; then
|
||||||
|
cd rpcs3 || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
shellcheck .ci/*.sh
|
shellcheck .ci/*.sh
|
||||||
|
|
||||||
git config --global --add safe.directory '*'
|
git config --global --add safe.directory '*'
|
||||||
|
|
||||||
# Pull all the submodules except some
|
# Pull all the submodules except llvm, opencv, sdl and curl
|
||||||
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ && !/libsdl-org/ && !/curl/ && !/zlib/ { print $3 }' .gitmodules)
|
git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ && !/libsdl-org/ && !/curl/ { print $3 }' .gitmodules)
|
||||||
|
|
||||||
mkdir build && cd build || exit 1
|
mkdir build && cd build || exit 1
|
||||||
|
|
||||||
|
|
@ -61,6 +63,10 @@ ninja; build_status=$?;
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# If it compiled succesfully let's deploy.
|
# If it compiled succesfully let's deploy.
|
||||||
if [ "$build_status" -eq 0 ]; then
|
# Azure and Cirrus publish PRs as artifacts only.
|
||||||
|
{ [ "$CI_HAS_ARTIFACTS" = "true" ];
|
||||||
|
} && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false"
|
||||||
|
|
||||||
|
if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then
|
||||||
.ci/deploy-linux.sh "x86_64"
|
.ci/deploy-linux.sh "x86_64"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -6,16 +6,14 @@ export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||||
export HOMEBREW_NO_ENV_HINTS=1
|
export HOMEBREW_NO_ENV_HINTS=1
|
||||||
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
||||||
|
|
||||||
brew install -f --overwrite --quiet pipenv googletest opencv@4 ffmpeg@5 "llvm@$LLVM_COMPILER_VER" glew sdl3 vulkan-headers
|
/opt/homebrew/bin/brew install -f --overwrite --quiet nasm ninja p7zip ccache pipenv gnutls freetype #create-dmg
|
||||||
brew unlink --quiet ffmpeg qtbase qtsvg qtdeclarative
|
/opt/homebrew/bin/brew install -f --quiet ffmpeg@5
|
||||||
brew link -f --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
|
/opt/homebrew/bin/brew install --quiet "llvm@$LLVM_COMPILER_VER" glew cmake sdl3 vulkan-headers coreutils
|
||||||
|
/opt/homebrew/bin/brew link -f --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
|
||||||
|
|
||||||
# moltenvk based on commit for 1.4.0 release
|
# moltenvk based on commit for 1.3.0 release
|
||||||
export HOMEBREW_DEVELOPER=1 # Prevents blocking of local formulae
|
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/7255441cbcafabaa8950f67c7ec55ff499dbb2d3/Formula/m/molten-vk.rb
|
||||||
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/ea2bec5f1f4384e188d7fc0702ab21a20a2ced08/Formula/m/molten-vk.rb
|
|
||||||
/opt/homebrew/bin/brew install -f --overwrite --formula --quiet ./molten-vk.rb
|
/opt/homebrew/bin/brew install -f --overwrite --formula --quiet ./molten-vk.rb
|
||||||
export HOMEBREW_DEVELOPER=0
|
|
||||||
|
|
||||||
export CXX=clang++
|
export CXX=clang++
|
||||||
export CC=clang
|
export CC=clang
|
||||||
|
|
||||||
|
|
@ -28,25 +26,23 @@ export CMAKE_EXTRA_OPTS='-DLLVM_TARGETS_TO_BUILD=arm64'
|
||||||
export WORKDIR;
|
export WORKDIR;
|
||||||
WORKDIR="$(pwd)"
|
WORKDIR="$(pwd)"
|
||||||
|
|
||||||
# Setup ccache
|
|
||||||
if [ ! -d "$CCACHE_DIR" ]; then
|
|
||||||
mkdir -p "$CCACHE_DIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get Qt
|
# Get Qt
|
||||||
if [ ! -d "/tmp/Qt/$QT_VER" ]; then
|
if [ ! -d "/tmp/Qt/$QT_VER" ]; then
|
||||||
mkdir -p "/tmp/Qt"
|
mkdir -p "/tmp/Qt"
|
||||||
git clone https://github.com/engnr/qt-downloader.git
|
git clone https://github.com/engnr/qt-downloader.git
|
||||||
cd qt-downloader
|
cd qt-downloader
|
||||||
git checkout f52efee0f18668c6d6de2dec0234b8c4bc54c597
|
git checkout f52efee0f18668c6d6de2dec0234b8c4bc54c597
|
||||||
sed -i '' "s/'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/'qt{0}_{0}{1}{2}'.format(major, minor, patch), 'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/g" qt-downloader
|
# nested Qt 6.9.0 URL workaround
|
||||||
sed -i '' "s/'{}\/{}\/qt{}_{}\/'/'{0}\/{1}\/qt{2}_{3}\/qt{2}_{3}\/'/g" qt-downloader
|
# sed -i '' "s/'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/'qt{0}_{0}{1}{2}'.format(major, minor, patch), 'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/g" qt-downloader
|
||||||
|
# sed -i '' "s/'{}\/{}\/qt{}_{}\/'/'{0}\/{1}\/qt{2}_{3}\/qt{2}_{3}\/'/g" qt-downloader
|
||||||
|
# archived Qt 6.7.3 URL workaround
|
||||||
|
sed -i '' "s/official_releases/archive/g" qt-downloader
|
||||||
cd "/tmp/Qt"
|
cd "/tmp/Qt"
|
||||||
"$BREW_PATH/bin/pipenv" run pip3 uninstall py7zr requests semantic_version lxml
|
arch -arm64 "$BREW_PATH/bin/pipenv" run pip3 uninstall py7zr requests semantic_version lxml
|
||||||
"$BREW_PATH/bin/pipenv" run pip3 install py7zr requests semantic_version lxml --no-cache
|
arch -arm64 "$BREW_PATH/bin/pipenv" run pip3 install py7zr requests semantic_version lxml --no-cache
|
||||||
mkdir -p "$QT_VER/macos" ; ln -s "macos" "$QT_VER/clang_64"
|
mkdir -p "$QT_VER/macos" ; ln -s "macos" "$QT_VER/clang_64"
|
||||||
sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader"
|
# sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader" # Qt 6.9.0 workaround
|
||||||
"$BREW_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats -o "$QT_VER/clang_64"
|
arch -arm64 "$BREW_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats # -o "$QT_VER/clang_64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd "$WORKDIR"
|
cd "$WORKDIR"
|
||||||
|
|
@ -71,7 +67,7 @@ export LLVM_DIR
|
||||||
LLVM_DIR="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER"
|
LLVM_DIR="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER"
|
||||||
# exclude ffmpeg, LLVM, opencv, and sdl from submodule update
|
# exclude ffmpeg, LLVM, opencv, and sdl from submodule update
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/opencv/ && !/SDL/ && !/feralinteractive/ { print $3 }' .gitmodules)
|
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/opencv/ && !/SDL/ { print $3 }' .gitmodules)
|
||||||
|
|
||||||
# 3rdparty fixes
|
# 3rdparty fixes
|
||||||
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
|
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
|
||||||
|
|
@ -81,8 +77,8 @@ mkdir build && cd build || exit 1
|
||||||
export MACOSX_DEPLOYMENT_TARGET=14.0
|
export MACOSX_DEPLOYMENT_TARGET=14.0
|
||||||
|
|
||||||
"$BREW_PATH/bin/cmake" .. \
|
"$BREW_PATH/bin/cmake" .. \
|
||||||
-DBUILD_RPCS3_TESTS="${RUN_UNIT_TESTS}" \
|
-DBUILD_RPCS3_TESTS=OFF \
|
||||||
-DRUN_RPCS3_TESTS="${RUN_UNIT_TESTS}" \
|
-DRUN_RPCS3_TESTS=OFF \
|
||||||
-DUSE_SDL=ON \
|
-DUSE_SDL=ON \
|
||||||
-DUSE_DISCORD_RPC=ON \
|
-DUSE_DISCORD_RPC=ON \
|
||||||
-DUSE_VULKAN=ON \
|
-DUSE_VULKAN=ON \
|
||||||
|
|
@ -119,7 +115,9 @@ export MACOSX_DEPLOYMENT_TARGET=14.0
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# If it compiled succesfully let's deploy.
|
{ [ "$CI_HAS_ARTIFACTS" = "true" ];
|
||||||
if [ "$build_status" -eq 0 ]; then
|
} && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false"
|
||||||
|
|
||||||
|
if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then
|
||||||
.ci/deploy-mac-arm64.sh
|
.ci/deploy-mac-arm64.sh
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -6,21 +6,18 @@ export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||||
export HOMEBREW_NO_ENV_HINTS=1
|
export HOMEBREW_NO_ENV_HINTS=1
|
||||||
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
||||||
|
|
||||||
brew install -f --overwrite --quiet ccache pipenv "llvm@$LLVM_COMPILER_VER"
|
#/usr/sbin/softwareupdate --install-rosetta --agree-to-license
|
||||||
brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER"
|
|
||||||
# shellcheck disable=SC3009
|
|
||||||
rm /usr/local/bin/{idle3.14,pip3.14,pydoc3.14,python3.14,python3.14-config} && \
|
|
||||||
rm /usr/local/bin/{idle3,pip3,pydoc3,python3,python3-config}
|
|
||||||
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||||
arch -x86_64 /usr/local/bin/brew install -f --overwrite --quiet opencv@4 ffmpeg@5 "llvm@$LLVM_COMPILER_VER" glew sdl3 vulkan-headers
|
arch -x86_64 /usr/local/bin/brew update
|
||||||
arch -x86_64 /usr/local/bin/brew unlink --quiet ffmpeg qtbase qtsvg qtdeclarative
|
arch -x86_64 /usr/local/bin/brew install -f --overwrite --quiet python || arch -x86_64 /usr/local/bin/brew link --overwrite python
|
||||||
arch -x86_64 /usr/local/bin/brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
|
arch -x86_64 /usr/local/bin/brew install -f --overwrite --quiet nasm ninja p7zip ccache pipenv gnutls freetype #create-dmg
|
||||||
|
arch -x86_64 /usr/local/bin/brew install -f --quiet ffmpeg@5
|
||||||
|
arch -x86_64 /usr/local/bin/brew install --quiet "llvm@$LLVM_COMPILER_VER" glew cmake sdl3 vulkan-headers coreutils
|
||||||
|
arch -x86_64 /usr/local/bin/brew link -f --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
|
||||||
|
|
||||||
# moltenvk based on commit for 1.4.0 release
|
# moltenvk based on commit for 1.3.0 release
|
||||||
export HOMEBREW_DEVELOPER=1 # Prevents blocking of local formulae
|
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/7255441cbcafabaa8950f67c7ec55ff499dbb2d3/Formula/m/molten-vk.rb
|
||||||
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/ea2bec5f1f4384e188d7fc0702ab21a20a2ced08/Formula/m/molten-vk.rb
|
|
||||||
arch -x86_64 /usr/local/bin/brew install -f --overwrite --formula --quiet ./molten-vk.rb
|
arch -x86_64 /usr/local/bin/brew install -f --overwrite --formula --quiet ./molten-vk.rb
|
||||||
export HOMEBREW_DEVELOPER=0
|
|
||||||
export CXX=clang++
|
export CXX=clang++
|
||||||
export CC=clang
|
export CC=clang
|
||||||
|
|
||||||
|
|
@ -39,13 +36,16 @@ if [ ! -d "/tmp/Qt/$QT_VER" ]; then
|
||||||
git clone https://github.com/engnr/qt-downloader.git
|
git clone https://github.com/engnr/qt-downloader.git
|
||||||
cd qt-downloader
|
cd qt-downloader
|
||||||
git checkout f52efee0f18668c6d6de2dec0234b8c4bc54c597
|
git checkout f52efee0f18668c6d6de2dec0234b8c4bc54c597
|
||||||
sed -i '' "s/'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/'qt{0}_{0}{1}{2}'.format(major, minor, patch), 'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/g" qt-downloader
|
# nested Qt 6.9.0 URL workaround
|
||||||
sed -i '' "s/'{}\/{}\/qt{}_{}\/'/'{0}\/{1}\/qt{2}_{3}\/qt{2}_{3}\/'/g" qt-downloader
|
# sed -i '' "s/'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/'qt{0}_{0}{1}{2}'.format(major, minor, patch), 'qt{0}_{0}{1}{2}'.format(major, minor, patch)]))/g" qt-downloader
|
||||||
|
# sed -i '' "s/'{}\/{}\/qt{}_{}\/'/'{0}\/{1}\/qt{2}_{3}\/qt{2}_{3}\/'/g" qt-downloader
|
||||||
|
# archived Qt 6.7.3 URL workaround
|
||||||
|
sed -i '' "s/official_releases/archive/g" qt-downloader
|
||||||
cd "/tmp/Qt"
|
cd "/tmp/Qt"
|
||||||
"/opt/homebrew/bin/pipenv" --python "/opt/homebrew/bin/python3" run pip3 install py7zr requests semantic_version lxml
|
arch -x86_64 "$BREW_X64_PATH/bin/pipenv" --python "$BREW_X64_PATH/bin/python3" run pip3 install py7zr requests semantic_version lxml
|
||||||
mkdir -p "$QT_VER/macos" ; ln -s "macos" "$QT_VER/clang_64"
|
mkdir -p "$QT_VER/macos" ; ln -s "macos" "$QT_VER/clang_64"
|
||||||
sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader"
|
# sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader" # Qt 6.9.0 workaround
|
||||||
"/opt/homebrew/bin/pipenv" --python "/opt/homebrew/bin/python3" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats -o "$QT_VER/clang_64"
|
arch -x86_64 "$BREW_X64_PATH/bin/pipenv" --python "$BREW_X64_PATH/bin/python3" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats # -o "$QT_VER/clang_64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd "$WORKDIR"
|
cd "$WORKDIR"
|
||||||
|
|
@ -54,13 +54,12 @@ ditto "/tmp/Qt/$QT_VER" "qt-downloader/$QT_VER"
|
||||||
export Qt6_DIR="$WORKDIR/qt-downloader/$QT_VER/clang_64/lib/cmake/Qt$QT_VER_MAIN"
|
export Qt6_DIR="$WORKDIR/qt-downloader/$QT_VER/clang_64/lib/cmake/Qt$QT_VER_MAIN"
|
||||||
export SDL3_DIR="$BREW_X64_PATH/opt/sdl3/lib/cmake/SDL3"
|
export SDL3_DIR="$BREW_X64_PATH/opt/sdl3/lib/cmake/SDL3"
|
||||||
|
|
||||||
export PATH="/opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/bin:$WORKDIR/qt-downloader/$QT_VER/clang_64/bin:$BREW_BIN:$BREW_SBIN:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:$PATH"
|
export PATH="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER/bin:$WORKDIR/qt-downloader/$QT_VER/clang_64/bin:$BREW_BIN:$BREW_SBIN:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:$PATH"
|
||||||
# shellcheck disable=SC2155
|
export LDFLAGS="-L$BREW_X64_PATH/lib -Wl,-rpath,$BREW_X64_PATH/lib"
|
||||||
export LDFLAGS="-L$BREW_X64_PATH/lib -Wl,-rpath,$BREW_X64_PATH/lib,-L$(brew --prefix llvm)/lib/c++"
|
|
||||||
export CPPFLAGS="-I$BREW_X64_PATH/include -msse -msse2 -mcx16 -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
|
export CPPFLAGS="-I$BREW_X64_PATH/include -msse -msse2 -mcx16 -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
|
||||||
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
|
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
|
||||||
export LIBRARY_PATH="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER/lib:$BREW_X64_PATH/lib"
|
export LIBRARY_PATH="$BREW_X64_PATH/lib"
|
||||||
export LD_LIBRARY_PATH="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER/lib:$BREW_X64_PATH/lib"
|
export LD_LIBRARY_PATH="$BREW_X64_PATH/lib"
|
||||||
|
|
||||||
export VULKAN_SDK
|
export VULKAN_SDK
|
||||||
VULKAN_SDK="$BREW_X64_PATH/opt/molten-vk"
|
VULKAN_SDK="$BREW_X64_PATH/opt/molten-vk"
|
||||||
|
|
@ -68,10 +67,10 @@ ln -s "$VULKAN_SDK/lib/libMoltenVK.dylib" "$VULKAN_SDK/lib/libvulkan.dylib"
|
||||||
export VK_ICD_FILENAMES="$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json"
|
export VK_ICD_FILENAMES="$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json"
|
||||||
|
|
||||||
export LLVM_DIR
|
export LLVM_DIR
|
||||||
LLVM_DIR="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER"
|
LLVM_DIR="BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER"
|
||||||
# exclude ffmpeg, LLVM, opencv, and sdl from submodule update
|
# exclude ffmpeg, LLVM, opencv, and sdl from submodule update
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/opencv/ && !/SDL/ && !/feralinteractive/ { print $3 }' .gitmodules)
|
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/opencv/ && !/SDL/ { print $3 }' .gitmodules)
|
||||||
|
|
||||||
# 3rdparty fixes
|
# 3rdparty fixes
|
||||||
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
|
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
|
||||||
|
|
@ -80,7 +79,7 @@ mkdir build && cd build || exit 1
|
||||||
|
|
||||||
export MACOSX_DEPLOYMENT_TARGET=14.0
|
export MACOSX_DEPLOYMENT_TARGET=14.0
|
||||||
|
|
||||||
"/opt/homebrew/bin/cmake" .. \
|
"$BREW_X64_PATH/bin/cmake" .. \
|
||||||
-DBUILD_RPCS3_TESTS=OFF \
|
-DBUILD_RPCS3_TESTS=OFF \
|
||||||
-DRUN_RPCS3_TESTS=OFF \
|
-DRUN_RPCS3_TESTS=OFF \
|
||||||
-DUSE_SDL=ON \
|
-DUSE_SDL=ON \
|
||||||
|
|
@ -108,8 +107,6 @@ export MACOSX_DEPLOYMENT_TARGET=14.0
|
||||||
"$CMAKE_EXTRA_OPTS" \
|
"$CMAKE_EXTRA_OPTS" \
|
||||||
-DLLVM_TARGET_ARCH=X86_64 \
|
-DLLVM_TARGET_ARCH=X86_64 \
|
||||||
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
|
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
|
||||||
-DCMAKE_SYSTEM_PROCESSOR=x86_64 \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=buildfiles/cmake/TCDarwinX86_64.cmake \
|
|
||||||
-DCMAKE_IGNORE_PATH="$BREW_X64_PATH/lib" \
|
-DCMAKE_IGNORE_PATH="$BREW_X64_PATH/lib" \
|
||||||
-DCMAKE_IGNORE_PREFIX_PATH=/usr/local/opt \
|
-DCMAKE_IGNORE_PREFIX_PATH=/usr/local/opt \
|
||||||
-DCMAKE_CXX_FLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000" \
|
-DCMAKE_CXX_FLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000" \
|
||||||
|
|
@ -117,11 +114,13 @@ export MACOSX_DEPLOYMENT_TARGET=14.0
|
||||||
-DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \
|
-DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \
|
||||||
-G Ninja
|
-G Ninja
|
||||||
|
|
||||||
"/opt/homebrew/bin/ninja"; build_status=$?;
|
"$BREW_X64_PATH/bin/ninja"; build_status=$?;
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# If it compiled succesfully let's deploy.
|
{ [ "$CI_HAS_ARTIFACTS" = "true" ];
|
||||||
if [ "$build_status" -eq 0 ]; then
|
} && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false"
|
||||||
|
|
||||||
|
if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then
|
||||||
.ci/deploy-mac.sh
|
.ci/deploy-mac.sh
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
#!/bin/sh -ex
|
|
||||||
|
|
||||||
git config --global --add safe.directory '*'
|
|
||||||
|
|
||||||
# Pull all the submodules except some
|
|
||||||
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
|
||||||
# shellcheck disable=SC2046
|
|
||||||
git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ && !/ffmpeg/ && !/curl/ && !/FAudio/ && !/zlib/ { print $3 }' .gitmodules)
|
|
||||||
|
|
||||||
mkdir build && cd build || exit 1
|
|
||||||
|
|
||||||
export CC="clang"
|
|
||||||
export CXX="clang++"
|
|
||||||
export LINKER=lld
|
|
||||||
export LINKER_FLAG="-fuse-ld=${LINKER}"
|
|
||||||
|
|
||||||
if [ -n "$LLVMVER" ]; then
|
|
||||||
export AR="llvm-ar-$LLVMVER"
|
|
||||||
export RANLIB="llvm-ranlib-$LLVMVER"
|
|
||||||
else
|
|
||||||
export AR="llvm-ar"
|
|
||||||
export RANLIB="llvm-ranlib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmake .. \
|
|
||||||
-DCMAKE_PREFIX_PATH=/clang64 \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
||||||
-DUSE_NATIVE_INSTRUCTIONS=OFF \
|
|
||||||
-DUSE_PRECOMPILED_HEADERS=OFF \
|
|
||||||
-DCMAKE_C_FLAGS="$CFLAGS" \
|
|
||||||
-DCMAKE_CXX_FLAGS="$CFLAGS" \
|
|
||||||
-DCMAKE_EXE_LINKER_FLAGS="${LINKER_FLAG}" \
|
|
||||||
-DCMAKE_MODULE_LINKER_FLAGS="${LINKER_FLAG}" \
|
|
||||||
-DCMAKE_SHARED_LINKER_FLAGS="${LINKER_FLAG}" \
|
|
||||||
-DCMAKE_AR="$AR" \
|
|
||||||
-DCMAKE_RANLIB="$RANLIB" \
|
|
||||||
-DUSE_SYSTEM_CURL=ON \
|
|
||||||
-DUSE_FAUDIO=OFF \
|
|
||||||
-DUSE_SDL=ON \
|
|
||||||
-DUSE_SYSTEM_SDL=OFF \
|
|
||||||
-DUSE_SYSTEM_FFMPEG=ON \
|
|
||||||
-DUSE_SYSTEM_OPENCV=ON \
|
|
||||||
-DUSE_SYSTEM_OPENAL=OFF \
|
|
||||||
-DUSE_DISCORD_RPC=ON \
|
|
||||||
-DOpenGL_GL_PREFERENCE=LEGACY \
|
|
||||||
-DWITH_LLVM=ON \
|
|
||||||
-DLLVM_DIR=/clang64/lib/cmake/llvm \
|
|
||||||
-DVulkan_LIBRARY=/clang64/lib/libvulkan-1.dll.a \
|
|
||||||
-DSTATIC_LINK_LLVM=ON \
|
|
||||||
-DBUILD_RPCS3_TESTS=OFF \
|
|
||||||
-DRUN_RPCS3_TESTS=OFF \
|
|
||||||
-G Ninja
|
|
||||||
|
|
||||||
ninja; build_status=$?;
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
# If it compiled succesfully let's deploy.
|
|
||||||
if [ "$build_status" -eq 0 ]; then
|
|
||||||
.ci/deploy-windows-clang.sh "x86_64"
|
|
||||||
fi
|
|
||||||
|
|
@ -14,7 +14,7 @@ if [ "$DEPLOY_APPIMAGE" = "true" ]; then
|
||||||
curl -fsSLo linuxdeploy-plugin-checkrt.sh https://github.com/darealshinji/linuxdeploy-plugin-checkrt/releases/download/continuous/linuxdeploy-plugin-checkrt.sh
|
curl -fsSLo linuxdeploy-plugin-checkrt.sh https://github.com/darealshinji/linuxdeploy-plugin-checkrt/releases/download/continuous/linuxdeploy-plugin-checkrt.sh
|
||||||
chmod +x ./linuxdeploy-plugin-checkrt.sh
|
chmod +x ./linuxdeploy-plugin-checkrt.sh
|
||||||
|
|
||||||
export EXTRA_PLATFORM_PLUGINS="libqwayland.so"
|
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
|
||||||
export EXTRA_QT_PLUGINS="svg;wayland-decoration-client;wayland-graphics-integration-client;wayland-shell-integration;waylandcompositor"
|
export EXTRA_QT_PLUGINS="svg;wayland-decoration-client;wayland-graphics-integration-client;wayland-shell-integration;waylandcompositor"
|
||||||
|
|
||||||
APPIMAGE_EXTRACT_AND_RUN=1 linuxdeploy --appdir AppDir --plugin qt --plugin checkrt
|
APPIMAGE_EXTRACT_AND_RUN=1 linuxdeploy --appdir AppDir --plugin qt --plugin checkrt
|
||||||
|
|
@ -26,31 +26,15 @@ if [ "$DEPLOY_APPIMAGE" = "true" ]; then
|
||||||
rm -f ./AppDir/usr/lib/libvulkan.so*
|
rm -f ./AppDir/usr/lib/libvulkan.so*
|
||||||
|
|
||||||
# Remove unused Qt6 libraries
|
# Remove unused Qt6 libraries
|
||||||
|
rm -f ./AppDir/usr/lib/libQt6OpenGL.so*
|
||||||
|
rm -f ./AppDir/usr/lib/libQt6Qml*.so*
|
||||||
|
rm -f ./AppDir/usr/lib/libQt6Quick.so*
|
||||||
rm -f ./AppDir/usr/lib/libQt6VirtualKeyboard.so*
|
rm -f ./AppDir/usr/lib/libQt6VirtualKeyboard.so*
|
||||||
rm -f ./AppDir/usr/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so*
|
rm -f ./AppDir/usr/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so*
|
||||||
|
|
||||||
# Remove git directory containing local commit history file
|
# Remove git directory containing local commit history file
|
||||||
rm -rf ./AppDir/usr/share/rpcs3/git
|
rm -rf ./AppDir/usr/share/rpcs3/git
|
||||||
|
|
||||||
# Download translations
|
|
||||||
mkdir -p "./AppDir/usr/translations"
|
|
||||||
ZIP_URL=$(curl -fsSL "https://api.github.com/repos/RPCS3/rpcs3_translations/releases/latest" \
|
|
||||||
| grep "browser_download_url" \
|
|
||||||
| grep "RPCS3-languages.zip" \
|
|
||||||
| cut -d '"' -f 4)
|
|
||||||
if [ -z "$ZIP_URL" ]; then
|
|
||||||
echo "Failed to find RPCS3-languages.zip in the latest release. Continuing without translations."
|
|
||||||
else
|
|
||||||
echo "Downloading translations from: $ZIP_URL"
|
|
||||||
curl -L -o translations.zip "$ZIP_URL" || {
|
|
||||||
echo "Failed to download translations.zip. Continuing without translations."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
unzip -o translations.zip -d "./AppDir/usr/translations" >/dev/null 2>&1 || \
|
|
||||||
echo "Failed to extract translations.zip. Continuing without translations."
|
|
||||||
rm -f translations.zip
|
|
||||||
fi
|
|
||||||
|
|
||||||
curl -fsSLo /uruntime "https://github.com/VHSgunzo/uruntime/releases/download/v0.3.4/uruntime-appimage-dwarfs-$CPU_ARCH"
|
curl -fsSLo /uruntime "https://github.com/VHSgunzo/uruntime/releases/download/v0.3.4/uruntime-appimage-dwarfs-$CPU_ARCH"
|
||||||
chmod +x /uruntime
|
chmod +x /uruntime
|
||||||
/uruntime --appimage-mkdwarfs -f --set-owner 0 --set-group 0 --no-history --no-create-timestamp \
|
/uruntime --appimage-mkdwarfs -f --set-owner 0 --set-group 0 --no-history --no-create-timestamp \
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
#!/bin/sh -ex
|
|
||||||
|
|
||||||
# First let's print some info about our caches
|
|
||||||
"$(cygpath -u "$CCACHE_BIN_DIR")"/ccache.exe --show-stats -v
|
|
||||||
|
|
||||||
# BUILD_blablabla is Azure specific, so we wrap it for portability
|
|
||||||
ARTIFACT_DIR="$BUILD_ARTIFACTSTAGINGDIRECTORY"
|
|
||||||
BUILD="llvmlibs_mt.7z"
|
|
||||||
|
|
||||||
# Package artifacts
|
|
||||||
7z a -m0=LZMA2 -mx9 "$BUILD" ./build/lib/Release-x64/llvm_build
|
|
||||||
|
|
||||||
# Generate sha256 hashes
|
|
||||||
# Write to file for GitHub releases
|
|
||||||
sha256sum "$BUILD" | awk '{ print $1 }' | tee "$BUILD.sha256"
|
|
||||||
echo "$(cat "$BUILD.sha256");$(stat -c %s "$BUILD")B" > GitHubReleaseMessage.txt
|
|
||||||
|
|
||||||
# Move files to publishing directory
|
|
||||||
cp -- "$BUILD" "$ARTIFACT_DIR"
|
|
||||||
cp -- "$BUILD.sha256" "$ARTIFACT_DIR"
|
|
||||||
|
|
@ -17,7 +17,6 @@ cd bin
|
||||||
mkdir "rpcs3.app/Contents/lib/" || true
|
mkdir "rpcs3.app/Contents/lib/" || true
|
||||||
|
|
||||||
cp "$(realpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
|
cp "$(realpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
|
||||||
cp "$(realpath /opt/homebrew/opt/gcc/lib/gcc/current/libgcc_s.1.1.dylib)" "rpcs3.app/Contents/Frameworks/libgcc_s.1.1.dylib"
|
|
||||||
cp "$(realpath /opt/homebrew/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
|
cp "$(realpath /opt/homebrew/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
|
||||||
cp "$(realpath /opt/homebrew/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.dylib"
|
cp "$(realpath /opt/homebrew/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.dylib"
|
||||||
|
|
||||||
|
|
@ -32,28 +31,11 @@ rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \
|
||||||
|
|
||||||
../../.ci/optimize-mac.sh rpcs3.app
|
../../.ci/optimize-mac.sh rpcs3.app
|
||||||
|
|
||||||
# Download translations
|
|
||||||
mkdir -p "rpcs3.app/Contents/translations"
|
|
||||||
ZIP_URL=$(curl -fsSL "https://api.github.com/repos/RPCS3/rpcs3_translations/releases/latest" \
|
|
||||||
| grep "browser_download_url" \
|
|
||||||
| grep "RPCS3-languages.zip" \
|
|
||||||
| cut -d '"' -f 4)
|
|
||||||
if [ -z "$ZIP_URL" ]; then
|
|
||||||
echo "Failed to find RPCS3-languages.zip in the latest release. Continuing without translations."
|
|
||||||
else
|
|
||||||
echo "Downloading translations from: $ZIP_URL"
|
|
||||||
curl -L -o translations.zip "$ZIP_URL" || {
|
|
||||||
echo "Failed to download translations.zip. Continuing without translations."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
unzip -o translations.zip -d "rpcs3.app/Contents/translations" >/dev/null 2>&1 || \
|
|
||||||
echo "Failed to extract translations.zip. Continuing without translations."
|
|
||||||
rm -f translations.zip
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Hack
|
# Hack
|
||||||
install_name_tool -delete_rpath /opt/homebrew/lib RPCS3.app/Contents/MacOS/rpcs3 || echo "Hack for deleting rpath /opt/homebrew/lib not needed"
|
install_name_tool \
|
||||||
install_name_tool -delete_rpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib RPCS3.app/Contents/MacOS/rpcs3 || echo "Hack for deleting rpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib not needed"
|
-delete_rpath /opt/homebrew/lib \
|
||||||
|
-delete_rpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib RPCS3.app/Contents/MacOS/rpcs3
|
||||||
|
#-delete_rpath /opt/homebrew1/Cellar/sdl3/3.2.8/lib
|
||||||
|
|
||||||
# Need to do this rename hack due to case insensitive filesystem
|
# Need to do this rename hack due to case insensitive filesystem
|
||||||
mv rpcs3.app RPCS3_.app
|
mv rpcs3.app RPCS3_.app
|
||||||
|
|
@ -66,8 +48,24 @@ echo "[InternetShortcut]" > Quickstart.url
|
||||||
echo "URL=https://rpcs3.net/quickstart" >> Quickstart.url
|
echo "URL=https://rpcs3.net/quickstart" >> Quickstart.url
|
||||||
echo "IconIndex=0" >> Quickstart.url
|
echo "IconIndex=0" >> Quickstart.url
|
||||||
|
|
||||||
|
#DMG_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos_arm64.dmg"
|
||||||
|
#"$BREW_X64_PATH/bin/create-dmg" --volname RPCS3 \
|
||||||
|
#--window-size 800 400 \
|
||||||
|
#--icon-size 100 \
|
||||||
|
#--icon rpcs3.app 200 190 \
|
||||||
|
#--add-file Quickstart.url Quickstart.url 400 20 \
|
||||||
|
#--hide-extension rpcs3.app \
|
||||||
|
#--hide-extension Quickstart.url \
|
||||||
|
#--app-drop-link 600 185 \
|
||||||
|
#--skip-jenkins \
|
||||||
|
#--format ULMO \
|
||||||
|
#"$DMG_FILEPATH" \
|
||||||
|
#RPCS3.app
|
||||||
|
#FILESIZE=$(stat -f %z "$DMG_FILEPATH")
|
||||||
|
#SHA256SUM=$(shasum -a 256 "$DMG_FILEPATH" | awk '{ print $1 }')
|
||||||
|
|
||||||
ARCHIVE_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos_arm64.7z"
|
ARCHIVE_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos_arm64.7z"
|
||||||
"/opt/homebrew/bin/7z" a -mx9 "$ARCHIVE_FILEPATH" RPCS3.app Quickstart.url
|
"$BREW_PATH/bin/7z" a -mx9 "$ARCHIVE_FILEPATH" RPCS3.app Quickstart.url
|
||||||
FILESIZE=$(stat -f %z "$ARCHIVE_FILEPATH")
|
FILESIZE=$(stat -f %z "$ARCHIVE_FILEPATH")
|
||||||
SHA256SUM=$(shasum -a 256 "$ARCHIVE_FILEPATH" | awk '{ print $1 }')
|
SHA256SUM=$(shasum -a 256 "$ARCHIVE_FILEPATH" | awk '{ print $1 }')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,7 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env
|
||||||
cd bin
|
cd bin
|
||||||
mkdir "rpcs3.app/Contents/lib/"
|
mkdir "rpcs3.app/Contents/lib/"
|
||||||
|
|
||||||
cp "$(realpath /usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
|
cp "/usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/lib/libc++abi.1.dylib"
|
||||||
cp "$(realpath /usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib)" "rpcs3.app/Contents/Frameworks/libunwind.1.dylib"
|
|
||||||
cp "$(realpath /usr/local/opt/gcc/lib/gcc/current/libgcc_s.1.1.dylib)" "rpcs3.app/Contents/Frameworks/libgcc_s.1.1.dylib"
|
|
||||||
cp "$(realpath /usr/local/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
|
cp "$(realpath /usr/local/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
|
||||||
cp "$(realpath /usr/local/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.dylib"
|
cp "$(realpath /usr/local/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.dylib"
|
||||||
|
|
||||||
|
|
@ -33,31 +31,14 @@ rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \
|
||||||
|
|
||||||
../../.ci/optimize-mac.sh rpcs3.app
|
../../.ci/optimize-mac.sh rpcs3.app
|
||||||
|
|
||||||
# Download translations
|
|
||||||
mkdir -p "rpcs3.app/Contents/translations"
|
|
||||||
ZIP_URL=$(curl -fsSL "https://api.github.com/repos/RPCS3/rpcs3_translations/releases/latest" \
|
|
||||||
| grep "browser_download_url" \
|
|
||||||
| grep "RPCS3-languages.zip" \
|
|
||||||
| cut -d '"' -f 4)
|
|
||||||
if [ -z "$ZIP_URL" ]; then
|
|
||||||
echo "Failed to find RPCS3-languages.zip in the latest release. Continuing without translations."
|
|
||||||
else
|
|
||||||
echo "Downloading translations from: $ZIP_URL"
|
|
||||||
curl -L -o translations.zip "$ZIP_URL" || {
|
|
||||||
echo "Failed to download translations.zip. Continuing without translations."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
unzip -o translations.zip -d "rpcs3.app/Contents/translations" >/dev/null 2>&1 || \
|
|
||||||
echo "Failed to extract translations.zip. Continuing without translations."
|
|
||||||
rm -f translations.zip
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Need to do this rename hack due to case insensitive filesystem
|
# Need to do this rename hack due to case insensitive filesystem
|
||||||
mv rpcs3.app RPCS3_.app
|
mv rpcs3.app RPCS3_.app
|
||||||
mv RPCS3_.app RPCS3.app
|
mv RPCS3_.app RPCS3.app
|
||||||
|
|
||||||
# Hack
|
# Hack
|
||||||
install_name_tool -delete_rpath /usr/local/lib RPCS3.app/Contents/MacOS/rpcs3
|
install_name_tool \
|
||||||
|
-delete_rpath /usr/local/lib \
|
||||||
|
-delete_rpath /usr/local/opt/llvm@$LLVM_COMPILER_VER/lib RPCS3.app/Contents/MacOS/rpcs3
|
||||||
#-delete_rpath /usr/local/Cellar/sdl3/3.2.8/lib
|
#-delete_rpath /usr/local/Cellar/sdl3/3.2.8/lib
|
||||||
|
|
||||||
# NOTE: "--deep" is deprecated
|
# NOTE: "--deep" is deprecated
|
||||||
|
|
@ -67,8 +48,24 @@ echo "[InternetShortcut]" > Quickstart.url
|
||||||
echo "URL=https://rpcs3.net/quickstart" >> Quickstart.url
|
echo "URL=https://rpcs3.net/quickstart" >> Quickstart.url
|
||||||
echo "IconIndex=0" >> Quickstart.url
|
echo "IconIndex=0" >> Quickstart.url
|
||||||
|
|
||||||
|
#DMG_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos.dmg"
|
||||||
|
#"$BREW_X64_PATH/bin/create-dmg" --volname RPCS3 \
|
||||||
|
#--window-size 800 400 \
|
||||||
|
#--icon-size 100 \
|
||||||
|
#--icon rpcs3.app 200 190 \
|
||||||
|
#--add-file Quickstart.url Quickstart.url 400 20 \
|
||||||
|
#--hide-extension rpcs3.app \
|
||||||
|
#--hide-extension Quickstart.url \
|
||||||
|
#--app-drop-link 600 185 \
|
||||||
|
#--skip-jenkins \
|
||||||
|
#--format ULMO \
|
||||||
|
#"$DMG_FILEPATH" \
|
||||||
|
#RPCS3.app
|
||||||
|
#FILESIZE=$(stat -f %z "$DMG_FILEPATH")
|
||||||
|
#SHA256SUM=$(shasum -a 256 "$DMG_FILEPATH" | awk '{ print $1 }')
|
||||||
|
|
||||||
ARCHIVE_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos.7z"
|
ARCHIVE_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos.7z"
|
||||||
"/opt/homebrew/bin/7z" a -mx9 "$ARCHIVE_FILEPATH" RPCS3.app Quickstart.url
|
"$BREW_X64_PATH/bin/7z" a -mx9 "$ARCHIVE_FILEPATH" RPCS3.app Quickstart.url
|
||||||
FILESIZE=$(stat -f %z "$ARCHIVE_FILEPATH")
|
FILESIZE=$(stat -f %z "$ARCHIVE_FILEPATH")
|
||||||
SHA256SUM=$(shasum -a 256 "$ARCHIVE_FILEPATH" | awk '{ print $1 }')
|
SHA256SUM=$(shasum -a 256 "$ARCHIVE_FILEPATH" | awk '{ print $1 }')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
#!/bin/sh -ex
|
|
||||||
|
|
||||||
# source ci-vars.env
|
|
||||||
# shellcheck disable=SC1091
|
|
||||||
. .ci/ci-vars.env
|
|
||||||
|
|
||||||
cd build || exit 1
|
|
||||||
|
|
||||||
CPU_ARCH="${1:-x86_64}"
|
|
||||||
|
|
||||||
echo "Deploying rpcs3 windows clang $CPU_ARCH"
|
|
||||||
|
|
||||||
# BUILD_blablabla is CI specific, so we wrap it for portability
|
|
||||||
ARTIFACT_DIR=$(cygpath -u "$BUILD_ARTIFACTSTAGINGDIRECTORY")
|
|
||||||
MSYS2_CLANG_BIN=$(cygpath -w /clang64/bin)
|
|
||||||
MSYS2_USR_BIN=$(cygpath -w /usr/bin)
|
|
||||||
|
|
||||||
echo "Installing dependencies of: ./bin/rpcs3.exe (MSYS2 dir is '$MSYS2_CLANG_BIN', usr dir is '$MSYS2_USR_BIN')"
|
|
||||||
cmake -DMSYS2_CLANG_BIN="$MSYS2_CLANG_BIN" -DMSYS2_USR_BIN="$MSYS2_USR_BIN" -Dexe=./bin/rpcs3.exe -P ../buildfiles/cmake/CopyRuntimeDependencies.cmake
|
|
||||||
|
|
||||||
# Prepare compatibility and SDL database for packaging
|
|
||||||
mkdir ./bin/config
|
|
||||||
mkdir ./bin/config/input_configs
|
|
||||||
curl -fsSL 'https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt' 1> ./bin/config/input_configs/gamecontrollerdb.txt
|
|
||||||
curl -fsSL 'https://rpcs3.net/compatibility?api=v1&export' | iconv -t UTF-8 1> ./bin/GuiConfigs/compat_database.dat
|
|
||||||
|
|
||||||
# Download translations
|
|
||||||
mkdir -p ./bin/share/qt6/translations
|
|
||||||
ZIP_URL=$(curl -fsSL "https://api.github.com/repos/RPCS3/rpcs3_translations/releases/latest" \
|
|
||||||
| grep "browser_download_url" \
|
|
||||||
| grep "RPCS3-languages.zip" \
|
|
||||||
| cut -d '"' -f 4)
|
|
||||||
if [ -z "$ZIP_URL" ]; then
|
|
||||||
echo "Failed to find RPCS3-languages.zip in the latest release. Continuing without translations."
|
|
||||||
else
|
|
||||||
echo "Downloading translations from: $ZIP_URL"
|
|
||||||
curl -L -o translations.zip "$ZIP_URL" || {
|
|
||||||
echo "Failed to download translations.zip. Continuing without translations."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
unzip -o translations.zip -d "./bin/share/qt6/translations" >/dev/null 2>&1 || \
|
|
||||||
echo "Failed to extract translations.zip. Continuing without translations."
|
|
||||||
rm -f translations.zip
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Package artifacts
|
|
||||||
7z a -m0=LZMA2 -mx9 "$BUILD" ./bin/*
|
|
||||||
|
|
||||||
# Generate sha256 hashes
|
|
||||||
# Write to file for GitHub releases
|
|
||||||
sha256sum "$BUILD" | awk '{ print $1 }' | tee "$BUILD.sha256"
|
|
||||||
echo "$(cat "$BUILD.sha256");$(stat -c %s "$BUILD")B" > GitHubReleaseMessage.txt
|
|
||||||
|
|
||||||
# Move files to publishing directory
|
|
||||||
mkdir -p "$ARTIFACT_DIR"
|
|
||||||
cp -- "$BUILD" "$ARTIFACT_DIR"
|
|
||||||
cp -- "$BUILD.sha256" "$ARTIFACT_DIR"
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!/bin/sh -ex
|
#!/bin/sh -ex
|
||||||
|
|
||||||
# First let's print some info about our caches
|
# First let's see print some info about our caches
|
||||||
"$(cygpath -u "$CCACHE_BIN_DIR")"/ccache.exe --show-stats -v
|
"$(cygpath -u "$CCACHE_BIN_DIR")"/ccache.exe --show-stats -v
|
||||||
|
|
||||||
# BUILD_blablabla is CI specific, so we wrap it for portability
|
# BUILD_blablabla is Azure specific, so we wrap it for portability
|
||||||
ARTIFACT_DIR="$BUILD_ARTIFACTSTAGINGDIRECTORY"
|
ARTIFACT_DIR="$BUILD_ARTIFACTSTAGINGDIRECTORY"
|
||||||
|
|
||||||
# Remove unecessary files
|
# Remove unecessary files
|
||||||
|
|
@ -15,25 +15,6 @@ mkdir ./bin/config/input_configs
|
||||||
curl -fsSL 'https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt' 1> ./bin/config/input_configs/gamecontrollerdb.txt
|
curl -fsSL 'https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt' 1> ./bin/config/input_configs/gamecontrollerdb.txt
|
||||||
curl -fsSL 'https://rpcs3.net/compatibility?api=v1&export' | iconv -t UTF-8 1> ./bin/GuiConfigs/compat_database.dat
|
curl -fsSL 'https://rpcs3.net/compatibility?api=v1&export' | iconv -t UTF-8 1> ./bin/GuiConfigs/compat_database.dat
|
||||||
|
|
||||||
# Download translations
|
|
||||||
mkdir -p ./bin/qt6/translations
|
|
||||||
ZIP_URL=$(curl -fsSL "https://api.github.com/repos/RPCS3/rpcs3_translations/releases/latest" \
|
|
||||||
| grep "browser_download_url" \
|
|
||||||
| grep "RPCS3-languages.zip" \
|
|
||||||
| cut -d '"' -f 4)
|
|
||||||
if [ -z "$ZIP_URL" ]; then
|
|
||||||
echo "Failed to find RPCS3-languages.zip in the latest release. Continuing without translations."
|
|
||||||
else
|
|
||||||
echo "Downloading translations from: $ZIP_URL"
|
|
||||||
curl -L -o translations.zip "$ZIP_URL" || {
|
|
||||||
echo "Failed to download translations.zip. Continuing without translations."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
unzip -o translations.zip -d "./bin/qt6/translations" >/dev/null 2>&1 || \
|
|
||||||
echo "Failed to extract translations.zip. Continuing without translations."
|
|
||||||
rm -f translations.zip
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Download SSL certificate (not needed with CURLSSLOPT_NATIVE_CA)
|
# Download SSL certificate (not needed with CURLSSLOPT_NATIVE_CA)
|
||||||
#curl -fsSL 'https://curl.haxx.se/ca/cacert.pem' 1> ./bin/cacert.pem
|
#curl -fsSL 'https://curl.haxx.se/ca/cacert.pem' 1> ./bin/cacert.pem
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
# Variables set by CI
|
# Variables set by Azure Pipelines
|
||||||
|
CI_HAS_ARTIFACTS
|
||||||
BUILD_REASON
|
BUILD_REASON
|
||||||
BUILD_SOURCEVERSION
|
BUILD_SOURCEVERSION
|
||||||
BUILD_ARTIFACTSTAGINGDIRECTORY
|
BUILD_ARTIFACTSTAGINGDIRECTORY
|
||||||
|
|
|
||||||
13
.ci/export-azure-vars.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# Export variables for later stages of the Azure pipeline
|
||||||
|
# Values done in this manner will appear as environment variables
|
||||||
|
# in later stages.
|
||||||
|
|
||||||
|
# From pure-sh-bible
|
||||||
|
# Setting 'IFS' tells 'read' where to split the string.
|
||||||
|
while IFS='=' read -r key val; do
|
||||||
|
# Skip over lines containing comments.
|
||||||
|
[ "${key##\#*}" ] || continue
|
||||||
|
echo "##vso[task.setvariable variable=$key]$val"
|
||||||
|
done < ".ci/ci-vars.env"
|
||||||
13
.ci/export-cirrus-vars.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# Export variables for later stages of the Cirrus pipeline
|
||||||
|
# Values done in this manner will appear as environment variables
|
||||||
|
# in later stages.
|
||||||
|
|
||||||
|
# From pure-sh-bible
|
||||||
|
# Setting 'IFS' tells 'read' where to split the string.
|
||||||
|
while IFS='=' read -r key val; do
|
||||||
|
# Skip over lines containing comments.
|
||||||
|
[ "${key##\#*}" ] || continue
|
||||||
|
export "$key"="$val"
|
||||||
|
done < ".ci/ci-vars.env"
|
||||||
|
|
@ -12,7 +12,7 @@ pkg info # debug
|
||||||
pkg install "llvm$LLVM_COMPILER_VER"
|
pkg install "llvm$LLVM_COMPILER_VER"
|
||||||
|
|
||||||
# Mandatory dependencies (qtX-base is pulled via qtX-multimedia)
|
# Mandatory dependencies (qtX-base is pulled via qtX-multimedia)
|
||||||
pkg install git ccache cmake ninja "qt$QT_VER_MAIN-multimedia" "qt$QT_VER_MAIN-svg" glew openal-soft ffmpeg pcre2
|
pkg install git ccache cmake ninja "qt$QT_VER_MAIN-multimedia" "qt$QT_VER_MAIN-svg" glew openal-soft ffmpeg
|
||||||
|
|
||||||
# Optional dependencies (libevdev is pulled by qtX-base)
|
# Optional dependencies (libevdev is pulled by qtX-base)
|
||||||
pkg install pkgconf alsa-lib pulseaudio sdl3 evdev-proto vulkan-headers vulkan-loader opencv
|
pkg install pkgconf alsa-lib pulseaudio sdl3 evdev-proto vulkan-headers vulkan-loader
|
||||||
|
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
#!/bin/sh -ex
|
|
||||||
|
|
||||||
# Resource/dependency URLs
|
|
||||||
CCACHE_URL="https://github.com/ccache/ccache/releases/download/v4.11.2/ccache-4.11.2-windows-x86_64.zip"
|
|
||||||
|
|
||||||
DEP_URLS=" \
|
|
||||||
$CCACHE_URL"
|
|
||||||
|
|
||||||
# CI doesn't make a cache dir if it doesn't exist, so we do it manually
|
|
||||||
[ -d "$DEPS_CACHE_DIR" ] || mkdir "$DEPS_CACHE_DIR"
|
|
||||||
|
|
||||||
# Pull the llvm submodule
|
|
||||||
# shellcheck disable=SC2046
|
|
||||||
git submodule -q update --init --depth=1 -- 3rdparty/llvm
|
|
||||||
|
|
||||||
# Git bash doesn't have rev, so here it is
|
|
||||||
rev()
|
|
||||||
{
|
|
||||||
echo "$1" | awk '{ for(i = length($0); i != 0; --i) { a = a substr($0, i, 1); } } END { print a }'
|
|
||||||
}
|
|
||||||
|
|
||||||
# Usage: download_and_verify url checksum algo file
|
|
||||||
# Check to see if a file is already cached, and the checksum matches. If not, download it.
|
|
||||||
# Tries up to 3 times
|
|
||||||
download_and_verify()
|
|
||||||
{
|
|
||||||
url="$1"
|
|
||||||
correctChecksum="$2"
|
|
||||||
algo="$3"
|
|
||||||
fileName="$4"
|
|
||||||
|
|
||||||
for _ in 1 2 3; do
|
|
||||||
[ -e "$DEPS_CACHE_DIR/$fileName" ] || curl -fLo "$DEPS_CACHE_DIR/$fileName" "$url"
|
|
||||||
fileChecksum=$("${algo}sum" "$DEPS_CACHE_DIR/$fileName" | awk '{ print $1 }')
|
|
||||||
[ "$fileChecksum" = "$correctChecksum" ] && return 0
|
|
||||||
done
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Some dependencies install here
|
|
||||||
[ -d "./build/lib_ext/Release-x64" ] || mkdir -p "./build/lib_ext/Release-x64"
|
|
||||||
|
|
||||||
for url in $DEP_URLS; do
|
|
||||||
# Get the filename from the URL and remove query strings (?arg=something).
|
|
||||||
fileName="$(rev "$(rev "$url" | cut -d'/' -f1)" | cut -d'?' -f1)"
|
|
||||||
[ -z "$fileName" ] && echo "Unable to parse url: $url" && exit 1
|
|
||||||
|
|
||||||
# shellcheck disable=SC1003
|
|
||||||
case "$url" in
|
|
||||||
*ccache*) checksum=$CCACHE_SHA; algo="sha256"; outDir="$CCACHE_BIN_DIR" ;;
|
|
||||||
*) echo "Unknown url resource: $url"; exit 1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
download_and_verify "$url" "$checksum" "$algo" "$fileName"
|
|
||||||
7z x -y "$DEPS_CACHE_DIR/$fileName" -aos -o"$outDir"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Setup ccache tool
|
|
||||||
[ -d "$CCACHE_DIR" ] || mkdir -p "$(cygpath -u "$CCACHE_DIR")"
|
|
||||||
CCACHE_SH_DIR=$(cygpath -u "$CCACHE_BIN_DIR")
|
|
||||||
mv "$CCACHE_SH_DIR"/ccache-*/* "$CCACHE_SH_DIR"
|
|
||||||
cp "$CCACHE_SH_DIR"/ccache.exe "$CCACHE_SH_DIR"/cl.exe
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/sh -ex
|
|
||||||
|
|
||||||
CPU_ARCH="${1:-win64}"
|
|
||||||
COMPILER="${2:-msvc}"
|
|
||||||
|
|
||||||
# These are CI specific, so we wrap them for portability
|
|
||||||
REPO_NAME="$BUILD_REPOSITORY_NAME"
|
|
||||||
REPO_BRANCH="$BUILD_SOURCEBRANCHNAME"
|
|
||||||
PR_NUMBER="$BUILD_PR_NUMBER"
|
|
||||||
|
|
||||||
# Gather explicit version number and number of commits
|
|
||||||
COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp)
|
|
||||||
COMM_COUNT=$(git rev-list --count HEAD)
|
|
||||||
COMM_HASH=$(git rev-parse --short=8 HEAD)
|
|
||||||
|
|
||||||
# Format the above into filenames
|
|
||||||
if [ -n "$PR_NUMBER" ]; then
|
|
||||||
AVVER="${COMM_TAG}-${COMM_HASH}"
|
|
||||||
BUILD_RAW="rpcs3-v${AVVER}_${CPU_ARCH}_${COMPILER}"
|
|
||||||
BUILD="${BUILD_RAW}.7z"
|
|
||||||
else
|
|
||||||
AVVER="${COMM_TAG}-${COMM_COUNT}"
|
|
||||||
BUILD_RAW="rpcs3-v${AVVER}-${COMM_HASH}_${CPU_ARCH}_${COMPILER}"
|
|
||||||
BUILD="${BUILD_RAW}.7z"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# BRANCH is used for experimental build warnings for pr builds, used in main_window.cpp.
|
|
||||||
# BUILD is the name of the release artifact
|
|
||||||
# BUILD_RAW is just filename
|
|
||||||
# AVVER is used for GitHub releases, it is the version number.
|
|
||||||
BRANCH="${REPO_NAME}/${REPO_BRANCH}"
|
|
||||||
|
|
||||||
# SC2129
|
|
||||||
{
|
|
||||||
echo "BRANCH=$BRANCH"
|
|
||||||
echo "BUILD=$BUILD"
|
|
||||||
echo "BUILD_RAW=$BUILD_RAW"
|
|
||||||
echo "AVVER=$AVVER"
|
|
||||||
} >> .ci/ci-vars.env
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
#!/bin/sh -ex
|
#!/bin/sh -ex
|
||||||
|
|
||||||
|
# These are Azure specific, so we wrap them for portability
|
||||||
|
REPO_NAME="$BUILD_REPOSITORY_NAME"
|
||||||
|
REPO_BRANCH="$SYSTEM_PULLREQUEST_SOURCEBRANCH"
|
||||||
|
PR_NUMBER="$SYSTEM_PULLREQUEST_PULLREQUESTID"
|
||||||
|
|
||||||
# Resource/dependency URLs
|
# Resource/dependency URLs
|
||||||
# Qt mirrors can be volatile and slow, so we list 2
|
# Qt mirrors can be volatile and slow, so we list 2
|
||||||
#QT_HOST="http://mirrors.ocf.berkeley.edu/qt/"
|
#QT_HOST="http://mirrors.ocf.berkeley.edu/qt/"
|
||||||
|
|
@ -8,7 +13,7 @@ QT_URL_VER=$(echo "$QT_VER" | sed "s/\.//g")
|
||||||
QT_VER_MSVC_UP=$(echo "${QT_VER_MSVC}" | tr '[:lower:]' '[:upper:]')
|
QT_VER_MSVC_UP=$(echo "${QT_VER_MSVC}" | tr '[:lower:]' '[:upper:]')
|
||||||
QT_PREFIX="online/qtsdkrepository/windows_x86/desktop/qt${QT_VER_MAIN}_${QT_URL_VER}/qt${QT_VER_MAIN}_${QT_URL_VER}/qt.qt${QT_VER_MAIN}.${QT_URL_VER}."
|
QT_PREFIX="online/qtsdkrepository/windows_x86/desktop/qt${QT_VER_MAIN}_${QT_URL_VER}/qt${QT_VER_MAIN}_${QT_URL_VER}/qt.qt${QT_VER_MAIN}.${QT_URL_VER}."
|
||||||
QT_PREFIX_2="win64_${QT_VER_MSVC}_64/${QT_VER}-0-${QT_DATE}"
|
QT_PREFIX_2="win64_${QT_VER_MSVC}_64/${QT_VER}-0-${QT_DATE}"
|
||||||
QT_SUFFIX="-Windows-Windows_11_24H2-${QT_VER_MSVC_UP}-Windows-Windows_11_24H2-X86_64.7z"
|
QT_SUFFIX="-Windows-Windows_11_23H2-${QT_VER_MSVC_UP}-Windows-Windows_11_23H2-X86_64.7z"
|
||||||
QT_BASE_URL="${QT_HOST}${QT_PREFIX}${QT_PREFIX_2}qtbase${QT_SUFFIX}"
|
QT_BASE_URL="${QT_HOST}${QT_PREFIX}${QT_PREFIX_2}qtbase${QT_SUFFIX}"
|
||||||
QT_DECL_URL="${QT_HOST}${QT_PREFIX}${QT_PREFIX_2}qtdeclarative${QT_SUFFIX}"
|
QT_DECL_URL="${QT_HOST}${QT_PREFIX}${QT_PREFIX_2}qtdeclarative${QT_SUFFIX}"
|
||||||
QT_TOOL_URL="${QT_HOST}${QT_PREFIX}${QT_PREFIX_2}qttools${QT_SUFFIX}"
|
QT_TOOL_URL="${QT_HOST}${QT_PREFIX}${QT_PREFIX_2}qttools${QT_SUFFIX}"
|
||||||
|
|
@ -28,13 +33,13 @@ DEP_URLS=" \
|
||||||
$VULKAN_SDK_URL\
|
$VULKAN_SDK_URL\
|
||||||
$CCACHE_URL"
|
$CCACHE_URL"
|
||||||
|
|
||||||
# CI doesn't make a cache dir if it doesn't exist, so we do it manually
|
# Azure pipelines doesn't make a cache dir if it doesn't exist, so we do it manually
|
||||||
[ -d "$DEPS_CACHE_DIR" ] || mkdir "$DEPS_CACHE_DIR"
|
[ -d "$DEPS_CACHE_DIR" ] || mkdir "$DEPS_CACHE_DIR"
|
||||||
|
|
||||||
# Pull all the submodules except llvm, since it is built separately and we just download that build
|
# Pull all the submodules except llvm, since it is built separately and we just download that build
|
||||||
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/FAudio/ && !/llvm/ && !/feralinteractive/ { print $3 }' .gitmodules)
|
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/FAudio/ && !/llvm/ { print $3 }' .gitmodules)
|
||||||
|
|
||||||
# Git bash doesn't have rev, so here it is
|
# Git bash doesn't have rev, so here it is
|
||||||
rev()
|
rev()
|
||||||
|
|
@ -94,3 +99,33 @@ done
|
||||||
CCACHE_SH_DIR=$(cygpath -u "$CCACHE_BIN_DIR")
|
CCACHE_SH_DIR=$(cygpath -u "$CCACHE_BIN_DIR")
|
||||||
mv "$CCACHE_SH_DIR"/ccache-*/* "$CCACHE_SH_DIR"
|
mv "$CCACHE_SH_DIR"/ccache-*/* "$CCACHE_SH_DIR"
|
||||||
cp "$CCACHE_SH_DIR"/ccache.exe "$CCACHE_SH_DIR"/cl.exe
|
cp "$CCACHE_SH_DIR"/ccache.exe "$CCACHE_SH_DIR"/cl.exe
|
||||||
|
|
||||||
|
# Gather explicit version number and number of commits
|
||||||
|
COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp)
|
||||||
|
COMM_COUNT=$(git rev-list --count HEAD)
|
||||||
|
COMM_HASH=$(git rev-parse --short=8 HEAD)
|
||||||
|
|
||||||
|
# Format the above into filenames
|
||||||
|
if [ -n "$PR_NUMBER" ]; then
|
||||||
|
AVVER="${COMM_TAG}-${COMM_HASH}"
|
||||||
|
BUILD_RAW="rpcs3-v${AVVER}_win64"
|
||||||
|
BUILD="${BUILD_RAW}.7z"
|
||||||
|
else
|
||||||
|
AVVER="${COMM_TAG}-${COMM_COUNT}"
|
||||||
|
BUILD_RAW="rpcs3-v${AVVER}-${COMM_HASH}_win64"
|
||||||
|
BUILD="${BUILD_RAW}.7z"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# BRANCH is used for experimental build warnings for pr builds, used in main_window.cpp.
|
||||||
|
# BUILD is the name of the release artifact
|
||||||
|
# BUILD_RAW is just filename
|
||||||
|
# AVVER is used for GitHub releases, it is the version number.
|
||||||
|
BRANCH="${REPO_NAME}/${REPO_BRANCH}"
|
||||||
|
|
||||||
|
# SC2129
|
||||||
|
{
|
||||||
|
echo "BRANCH=$BRANCH"
|
||||||
|
echo "BUILD=$BUILD"
|
||||||
|
echo "BUILD_RAW=$BUILD_RAW"
|
||||||
|
echo "AVVER=$AVVER"
|
||||||
|
} >> .ci/ci-vars.env
|
||||||
|
|
|
||||||
153
.cirrus.yml
Normal file
|
|
@ -0,0 +1,153 @@
|
||||||
|
env:
|
||||||
|
CIRRUS_CLONE_DEPTH: 0 # Unshallow clone to obtain proper GIT_VERSION
|
||||||
|
BUILD_REPOSITORY_NAME: $CIRRUS_REPO_FULL_NAME
|
||||||
|
SYSTEM_PULLREQUEST_SOURCEBRANCH: $CIRRUS_BRANCH
|
||||||
|
SYSTEM_PULLREQUEST_PULLREQUESTID: $CIRRUS_PR
|
||||||
|
BUILD_SOURCEVERSION: $CIRRUS_CHANGE_IN_REPO
|
||||||
|
BUILD_SOURCEBRANCHNAME: $CIRRUS_BRANCH
|
||||||
|
RPCS3_TOKEN: ENCRYPTED[100ebb8e3552bf2021d0ef55dccda3e58d27be5b6cab0b0b92843ef490195d3c4edaefa087e4a3b425caa6392300b9b1]
|
||||||
|
QT_VER_MAIN: '6'
|
||||||
|
QT_VER: '6.9.0'
|
||||||
|
LLVM_COMPILER_VER: '19'
|
||||||
|
LLVM_VER: '19.1.7'
|
||||||
|
|
||||||
|
# windows_task:
|
||||||
|
# matrix:
|
||||||
|
# - name: Cirrus Windows
|
||||||
|
# windows_container:
|
||||||
|
# image: cirrusci/windowsservercore:visualstudio2019
|
||||||
|
# cpu: 8
|
||||||
|
# memory: 16G
|
||||||
|
# env:
|
||||||
|
# CIRRUS_SHELL: "bash"
|
||||||
|
# COMPILER: msvc
|
||||||
|
# BUILD_ARTIFACTSTAGINGDIRECTORY: ${CIRRUS_WORKING_DIR}\artifacts\
|
||||||
|
# QT_VER_MSVC: 'msvc2022'
|
||||||
|
# QT_DATE: '202503301022'
|
||||||
|
# QTDIR: C:\Qt\${QT_VER}\${QT_VER_MSVC}_64
|
||||||
|
# VULKAN_VER: '1.3.268.0'
|
||||||
|
# VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5'
|
||||||
|
# VULKAN_SDK: C:\VulkanSDK\${VULKAN_VER}
|
||||||
|
# CACHE_DIR: "./cache"
|
||||||
|
# UPLOAD_COMMIT_HASH: 7d09e3be30805911226241afbb14f8cdc2eb054e
|
||||||
|
# UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-win"
|
||||||
|
# deps_cache:
|
||||||
|
# folder: "./cache"
|
||||||
|
# #obj_cache:
|
||||||
|
# # folder: "./tmp"
|
||||||
|
# #obj2_cache:
|
||||||
|
# # folder: "./rpcs3/x64"
|
||||||
|
# setup_script:
|
||||||
|
# - './.ci/get_keys-windows.sh'
|
||||||
|
# - './.ci/setup-windows.sh'
|
||||||
|
# rpcs3_script:
|
||||||
|
# - export PATH=${PATH}:"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin"
|
||||||
|
# - msbuild.exe rpcs3.sln //p:Configuration=Release //m
|
||||||
|
# deploy_script:
|
||||||
|
# - mkdir artifacts
|
||||||
|
# - source './.ci/export-cirrus-vars.sh'
|
||||||
|
# - './.ci/deploy-windows.sh'
|
||||||
|
# artifacts:
|
||||||
|
# name: Artifact
|
||||||
|
# path: "*.7z*"
|
||||||
|
# push_script: |
|
||||||
|
# if [ "$CIRRUS_REPO_OWNER" = "RPCS3" ] && [ -z "$CIRRUS_PR" ] && [ "$CIRRUS_BRANCH" = "master" ]; then
|
||||||
|
# source './.ci/export-cirrus-vars.sh'
|
||||||
|
# './.ci/github-upload.sh'
|
||||||
|
# fi;
|
||||||
|
|
||||||
|
# linux_task:
|
||||||
|
# container:
|
||||||
|
# image: rpcs3/rpcs3-ci-jammy:1.6
|
||||||
|
# cpu: 4
|
||||||
|
# memory: 16G
|
||||||
|
# env:
|
||||||
|
# BUILD_ARTIFACTSTAGINGDIRECTORY: ${CIRRUS_WORKING_DIR}/artifacts
|
||||||
|
# ARTDIR: ${CIRRUS_WORKING_DIR}/artifacts/
|
||||||
|
# CCACHE_DIR: "/tmp/ccache_dir"
|
||||||
|
# CCACHE_MAXSIZE: 300M
|
||||||
|
# CI_HAS_ARTIFACTS: true
|
||||||
|
# UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f
|
||||||
|
# UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux"
|
||||||
|
# DEPLOY_APPIMAGE: true
|
||||||
|
# APPDIR: "./appdir"
|
||||||
|
# RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
|
||||||
|
# ccache_cache:
|
||||||
|
# folder: "/tmp/ccache_dir"
|
||||||
|
# matrix:
|
||||||
|
# - name: Cirrus Linux GCC
|
||||||
|
# env:
|
||||||
|
# COMPILER: gcc
|
||||||
|
# gcc_script:
|
||||||
|
# - mkdir artifacts
|
||||||
|
# - ".ci/build-linux.sh"
|
||||||
|
# - name: Cirrus Linux Clang
|
||||||
|
# env:
|
||||||
|
# COMPILER: clang
|
||||||
|
# clang_script:
|
||||||
|
# - mkdir artifacts
|
||||||
|
# - ".ci/build-linux.sh"
|
||||||
|
# artifacts:
|
||||||
|
# name: Artifact
|
||||||
|
# path: "artifacts/*"
|
||||||
|
# push_script: |
|
||||||
|
# if [ "$CIRRUS_REPO_OWNER" = "RPCS3" ] && [ -z "$CIRRUS_PR" ] && [ "$CIRRUS_BRANCH" = "master" ] && [ "$COMPILER" = "gcc" ]; then
|
||||||
|
# COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp)
|
||||||
|
# COMM_COUNT=$(git rev-list --count HEAD)
|
||||||
|
# COMM_HASH=$(git rev-parse --short=8 HEAD)
|
||||||
|
|
||||||
|
# export AVVER="${COMM_TAG}-${COMM_COUNT}"
|
||||||
|
|
||||||
|
# .ci/github-upload.sh
|
||||||
|
# fi;
|
||||||
|
|
||||||
|
freebsd_task:
|
||||||
|
matrix:
|
||||||
|
- name: Cirrus FreeBSD
|
||||||
|
freebsd_instance:
|
||||||
|
image_family: freebsd-13-5
|
||||||
|
cpu: 8
|
||||||
|
memory: 8G
|
||||||
|
env:
|
||||||
|
CCACHE_MAXSIZE: 300M # 3x clean build, rounded
|
||||||
|
CCACHE_DIR: /tmp/ccache_dir
|
||||||
|
ccache_cache:
|
||||||
|
folder: /tmp/ccache_dir
|
||||||
|
install_script: "sh -ex ./.ci/install-freebsd.sh"
|
||||||
|
script: "./.ci/build-freebsd.sh"
|
||||||
|
|
||||||
|
# linux_aarch64_task:
|
||||||
|
# env:
|
||||||
|
# BUILD_ARTIFACTSTAGINGDIRECTORY: ${CIRRUS_WORKING_DIR}/artifacts
|
||||||
|
# ARTDIR: ${CIRRUS_WORKING_DIR}/artifacts/
|
||||||
|
# CCACHE_DIR: "/tmp/ccache_dir"
|
||||||
|
# CCACHE_MAXSIZE: 300M
|
||||||
|
# CI_HAS_ARTIFACTS: true
|
||||||
|
# UPLOAD_COMMIT_HASH: a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1
|
||||||
|
# UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux-arm64"
|
||||||
|
# DEPLOY_APPIMAGE: true
|
||||||
|
# APPDIR: "./appdir"
|
||||||
|
# RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
|
||||||
|
# COMPILER: clang
|
||||||
|
# ccache_cache:
|
||||||
|
# folder: "/tmp/ccache_dir"
|
||||||
|
# matrix:
|
||||||
|
# - name: Cirrus Linux AArch64 Clang
|
||||||
|
# arm_container:
|
||||||
|
# image: 'docker.io/rpcs3/rpcs3-ci-jammy-aarch64:1.6'
|
||||||
|
# cpu: 8
|
||||||
|
# memory: 8G
|
||||||
|
# clang_script:
|
||||||
|
# - mkdir artifacts
|
||||||
|
# - "sh -ex ./.ci/build-linux-aarch64.sh"
|
||||||
|
# artifacts:
|
||||||
|
# name: Artifact
|
||||||
|
# path: "artifacts/*"
|
||||||
|
# push_script: |
|
||||||
|
# if [ "$CIRRUS_REPO_OWNER" = "RPCS3" ] && [ -z "$CIRRUS_PR" ] && [ "$CIRRUS_BRANCH" = "master" ]; then
|
||||||
|
# COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp)
|
||||||
|
# COMM_COUNT=$(git rev-list --count HEAD)
|
||||||
|
# COMM_HASH=$(git rev-parse --short=8 HEAD)
|
||||||
|
# export AVVER="${COMM_TAG}-${COMM_COUNT}"
|
||||||
|
# .ci/github-upload.sh
|
||||||
|
# fi;
|
||||||
72
.github/workflows/llvm.yml
vendored
|
|
@ -1,72 +0,0 @@
|
||||||
name: Build LLVM
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.ref }}-${{ github.event_name }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
env:
|
|
||||||
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ github.workspace }}/artifacts/
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
Windows_Build:
|
|
||||||
if: github.event_name == 'workflow_dispatch'
|
|
||||||
name: LLVM Windows (MSVC)
|
|
||||||
runs-on: windows-2025
|
|
||||||
env:
|
|
||||||
COMPILER: msvc
|
|
||||||
CCACHE_SHA: '1f39f3ad5aae3fe915e99ad1302633bc8f6718e58fa7c0de2b0ba7e080f0f08c'
|
|
||||||
CCACHE_BIN_DIR: 'C:\ccache_bin'
|
|
||||||
CCACHE_DIR: 'C:\ccache'
|
|
||||||
CCACHE_INODECACHE: 'true'
|
|
||||||
CCACHE_SLOPPINESS: 'time_macros'
|
|
||||||
DEPS_CACHE_DIR: ./dependency_cache
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@main
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Restore Dependencies Cache
|
|
||||||
uses: actions/cache/restore@main
|
|
||||||
id: restore-dependencies-cache
|
|
||||||
with:
|
|
||||||
path: ${{ env.DEPS_CACHE_DIR }}
|
|
||||||
key: "${{ runner.os }}-${{ env.COMPILER }}-llvm-${{ env.CCACHE_SHA }}"
|
|
||||||
restore-keys: ${{ runner.os }}-${{ env.COMPILER }}-llvm
|
|
||||||
|
|
||||||
- name: Download and unpack dependencies
|
|
||||||
run: .ci/setup-llvm.sh
|
|
||||||
|
|
||||||
- name: Add msbuild to PATH
|
|
||||||
uses: microsoft/setup-msbuild@main
|
|
||||||
|
|
||||||
- name: Compile LLVM
|
|
||||||
shell: pwsh
|
|
||||||
run: msbuild 3rdparty\llvm\llvm_build.vcxproj /p:SolutionDir="$(pwd)/" /p:Configuration=Release /v:minimal /p:Platform=x64 /p:PreferredToolArchitecture=x64 /p:CLToolPath=${{ env.CCACHE_BIN_DIR }} /p:UseMultiToolTask=true /p:CustomAfterMicrosoftCommonTargets="${{ github.workspace }}\buildfiles\msvc\ci_only.targets"
|
|
||||||
|
|
||||||
- name: Pack up build artifacts
|
|
||||||
run: |
|
|
||||||
mkdir -p "${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}"
|
|
||||||
.ci/deploy-llvm.sh
|
|
||||||
|
|
||||||
- name: Upload artifacts (7z)
|
|
||||||
uses: actions/upload-artifact@main
|
|
||||||
with:
|
|
||||||
name: LLVM for Windows (MSVC)
|
|
||||||
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}
|
|
||||||
compression-level: 0
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
- name: Save Dependencies Cache
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
uses: actions/cache/save@main
|
|
||||||
with:
|
|
||||||
path: ${{ env.DEPS_CACHE_DIR }}
|
|
||||||
key: ${{ steps.restore-dependencies-cache.outputs.cache-primary-key }}
|
|
||||||
219
.github/workflows/rpcs3.yml
vendored
|
|
@ -17,7 +17,6 @@ concurrency:
|
||||||
env:
|
env:
|
||||||
BUILD_REPOSITORY_NAME: ${{ github.repository }}
|
BUILD_REPOSITORY_NAME: ${{ github.repository }}
|
||||||
BUILD_SOURCEBRANCHNAME: ${{ github.ref_name }}
|
BUILD_SOURCEBRANCHNAME: ${{ github.ref_name }}
|
||||||
BUILD_PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
||||||
BUILD_SOURCEVERSION: ${{ github.sha }}
|
BUILD_SOURCEVERSION: ${{ github.sha }}
|
||||||
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ github.workspace }}/artifacts/
|
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ github.workspace }}/artifacts/
|
||||||
|
|
||||||
|
|
@ -30,29 +29,26 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-24.04
|
- os: ubuntu-24.04
|
||||||
docker_img: "rpcs3/rpcs3-ci-jammy:1.7"
|
docker_img: "rpcs3/rpcs3-ci-jammy:1.6"
|
||||||
build_sh: "/rpcs3/.ci/build-linux.sh"
|
build_sh: "/rpcs3/.ci/build-linux.sh"
|
||||||
compiler: clang
|
compiler: clang
|
||||||
UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f
|
UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f
|
||||||
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux"
|
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux"
|
||||||
- os: ubuntu-24.04
|
- os: ubuntu-24.04
|
||||||
docker_img: "rpcs3/rpcs3-ci-jammy:1.7"
|
docker_img: "rpcs3/rpcs3-ci-jammy:1.6"
|
||||||
build_sh: "/rpcs3/.ci/build-linux.sh"
|
build_sh: "/rpcs3/.ci/build-linux.sh"
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
- os: ubuntu-24.04-arm
|
- os: ubuntu-24.04-arm
|
||||||
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.7"
|
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.6"
|
||||||
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh"
|
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh"
|
||||||
compiler: clang
|
compiler: clang
|
||||||
UPLOAD_COMMIT_HASH: a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1
|
UPLOAD_COMMIT_HASH: a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1
|
||||||
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux-arm64"
|
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux-arm64"
|
||||||
- os: ubuntu-24.04-arm
|
|
||||||
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.7"
|
|
||||||
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh"
|
|
||||||
compiler: gcc
|
|
||||||
name: RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }}
|
name: RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
env:
|
env:
|
||||||
CCACHE_DIR: ${{ github.workspace }}/ccache
|
CCACHE_DIR: ${{ github.workspace }}/ccache
|
||||||
|
CI_HAS_ARTIFACTS: true
|
||||||
DEPLOY_APPIMAGE: true
|
DEPLOY_APPIMAGE: true
|
||||||
APPDIR: "/rpcs3/build/appdir"
|
APPDIR: "/rpcs3/build/appdir"
|
||||||
ARTDIR: "/root/artifacts"
|
ARTDIR: "/root/artifacts"
|
||||||
|
|
@ -67,19 +63,19 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Restore build Ccache
|
- name: Setup Cache
|
||||||
uses: actions/cache/restore@main
|
uses: actions/cache@main
|
||||||
id: restore-build-ccache
|
|
||||||
with:
|
with:
|
||||||
path: ${{ env.CCACHE_DIR }}
|
path: ${{ env.CCACHE_DIR }}
|
||||||
key: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-${{github.run_id}}
|
key: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-${{github.run_id}}
|
||||||
restore-keys: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-
|
restore-keys: |
|
||||||
|
${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-
|
||||||
|
|
||||||
- name: Docker setup and build
|
- name: Docker setup and build
|
||||||
run: |
|
run: |
|
||||||
docker pull --quiet ${{ matrix.docker_img }}
|
docker pull --quiet ${{ matrix.docker_img }}
|
||||||
docker run \
|
docker run \
|
||||||
-v $PWD:/rpcs3 \
|
-v $PWD:/rpcs3 \
|
||||||
--env-file .ci/docker.env \
|
--env-file .ci/docker.env \
|
||||||
-v ${{ env.CCACHE_DIR }}:/root/.ccache \
|
-v ${{ env.CCACHE_DIR }}:/root/.ccache \
|
||||||
-v ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}:${{ env.ARTDIR }} \
|
-v ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}:${{ env.ARTDIR }} \
|
||||||
|
|
@ -108,13 +104,6 @@ jobs:
|
||||||
export AVVER="${COMM_TAG}-${COMM_COUNT}"
|
export AVVER="${COMM_TAG}-${COMM_COUNT}"
|
||||||
.ci/github-upload.sh
|
.ci/github-upload.sh
|
||||||
|
|
||||||
- name: Save build Ccache
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
uses: actions/cache/save@main
|
|
||||||
with:
|
|
||||||
path: ${{ env.CCACHE_DIR }}
|
|
||||||
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }}
|
|
||||||
|
|
||||||
Mac_Build:
|
Mac_Build:
|
||||||
# Only run push event on master branch of main repo, but run all PRs
|
# Only run push event on master branch of main repo, but run all PRs
|
||||||
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
|
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
|
||||||
|
|
@ -123,7 +112,7 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- name: Intel
|
- name: Intel
|
||||||
build_sh: .ci/build-mac.sh
|
build_sh: "arch -X86_64 .ci/build-mac.sh"
|
||||||
UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842
|
UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842
|
||||||
UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac
|
UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac
|
||||||
- name: Apple Silicon
|
- name: Apple Silicon
|
||||||
|
|
@ -134,34 +123,34 @@ jobs:
|
||||||
runs-on: macos-14
|
runs-on: macos-14
|
||||||
env:
|
env:
|
||||||
CCACHE_DIR: /tmp/ccache_dir
|
CCACHE_DIR: /tmp/ccache_dir
|
||||||
QT_VER: '6.10.1'
|
CI_HAS_ARTIFACTS: true
|
||||||
|
QT_VER: '6.7.3'
|
||||||
QT_VER_MAIN: '6'
|
QT_VER_MAIN: '6'
|
||||||
LLVM_COMPILER_VER: '21'
|
LLVM_COMPILER_VER: '19'
|
||||||
RELEASE_MESSAGE: ../GitHubReleaseMessage.txt
|
RELEASE_MESSAGE: ../GitHubReleaseMessage.txt
|
||||||
UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }}
|
UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }}
|
||||||
UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }}
|
UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }}
|
||||||
RUN_UNIT_TESTS: github.event_name == 'pull_request' && 'ON' || 'OFF'
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@main
|
uses: actions/checkout@main
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Restore Build Ccache
|
- name: Setup Cache
|
||||||
uses: actions/cache/restore@main
|
uses: actions/cache@main
|
||||||
id: restore-build-ccache
|
|
||||||
with:
|
with:
|
||||||
path: ${{ env.CCACHE_DIR }}
|
path: ${{ env.CCACHE_DIR }}
|
||||||
key: ${{ runner.os }}-ccache-${{ matrix.name }}-${{github.run_id}}
|
key: ${{ runner.os }}-ccache-${{ matrix.name }}-${{github.run_id}}
|
||||||
restore-keys: ${{ runner.os }}-ccache-${{ matrix.name }}-
|
restore-keys: |
|
||||||
|
${{ runner.os }}-ccache-${{ matrix.name }}-
|
||||||
|
|
||||||
- name: Restore Qt Cache
|
- name: Setup Qt Cache
|
||||||
uses: actions/cache/restore@main
|
uses: actions/cache@main
|
||||||
id: restore-qt-cache
|
|
||||||
with:
|
with:
|
||||||
path: /tmp/Qt
|
path: /tmp/Qt
|
||||||
key: ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }}
|
key: ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }}
|
||||||
restore-keys: ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }}
|
restore-keys: |
|
||||||
|
${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }}
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: ${{ matrix.build_sh }}
|
run: ${{ matrix.build_sh }}
|
||||||
|
|
@ -190,20 +179,6 @@ jobs:
|
||||||
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }}
|
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }}
|
||||||
run: .ci/github-upload.sh
|
run: .ci/github-upload.sh
|
||||||
|
|
||||||
- name: Save Build Ccache
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
uses: actions/cache/save@main
|
|
||||||
with:
|
|
||||||
path: ${{ env.CCACHE_DIR }}
|
|
||||||
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }}
|
|
||||||
|
|
||||||
- name: Save Qt Cache
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
uses: actions/cache/save@main
|
|
||||||
with:
|
|
||||||
path: /tmp/Qt
|
|
||||||
key: ${{ steps.restore-qt-cache.outputs.cache-primary-key }}
|
|
||||||
|
|
||||||
Windows_Build:
|
Windows_Build:
|
||||||
# Only run push event on master branch of main repo, but run all PRs
|
# Only run push event on master branch of main repo, but run all PRs
|
||||||
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
|
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
|
||||||
|
|
@ -212,9 +187,9 @@ jobs:
|
||||||
env:
|
env:
|
||||||
COMPILER: msvc
|
COMPILER: msvc
|
||||||
QT_VER_MAIN: '6'
|
QT_VER_MAIN: '6'
|
||||||
QT_VER: '6.10.1'
|
QT_VER: '6.9.0'
|
||||||
QT_VER_MSVC: 'msvc2022'
|
QT_VER_MSVC: 'msvc2022'
|
||||||
QT_DATE: '202511161843'
|
QT_DATE: '202503301022'
|
||||||
LLVM_VER: '19.1.7'
|
LLVM_VER: '19.1.7'
|
||||||
VULKAN_VER: '1.3.268.0'
|
VULKAN_VER: '1.3.268.0'
|
||||||
VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5'
|
VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5'
|
||||||
|
|
@ -248,26 +223,22 @@ jobs:
|
||||||
- name: Get Cache Keys
|
- name: Get Cache Keys
|
||||||
run: .ci/get_keys-windows.sh
|
run: .ci/get_keys-windows.sh
|
||||||
|
|
||||||
- name: Restore Build Ccache
|
- name: Setup Build Ccache
|
||||||
uses: actions/cache/restore@main
|
uses: actions/cache@main
|
||||||
id: restore-build-ccache
|
|
||||||
with:
|
with:
|
||||||
path: ${{ env.CCACHE_DIR }}
|
path: ${{ env.CCACHE_DIR }}
|
||||||
key: "${{ runner.os }}-ccache-${{ env.COMPILER }}-${{github.run_id}}"
|
key: "${{ runner.os }}-ccache-${{ env.COMPILER }}-${{github.run_id}}"
|
||||||
restore-keys: ${{ runner.os }}-ccache-${{ env.COMPILER }}-
|
restore-keys: ${{ runner.os }}-ccache-${{ env.COMPILER }}-
|
||||||
|
|
||||||
- name: Restore Dependencies Cache
|
- name: Setup Dependencies Cache
|
||||||
uses: actions/cache/restore@main
|
uses: actions/cache@main
|
||||||
id: restore-dependencies-cache
|
|
||||||
with:
|
with:
|
||||||
path: ${{ env.DEPS_CACHE_DIR }}
|
path: ${{ env.DEPS_CACHE_DIR }}
|
||||||
key: "${{ runner.os }}-${{ env.COMPILER }}-${{ env.QT_VER }}-${{ env.VULKAN_SDK_SHA }}-${{ env.CCACHE_SHA }}-${{ hashFiles('llvm.lock') }}"
|
key: "${{ runner.os }}-${{ env.COMPILER }}-${{ env.QT_VER }}-${{ env.VULKAN_SDK_SHA }}-${{ env.CCACHE_SHA }}-${{ hashFiles('llvm.lock') }}"
|
||||||
restore-keys: ${{ runner.os }}-${{ env.COMPILER }}-
|
restore-keys: ${{ runner.os }}-${{ env.COMPILER }}-
|
||||||
|
|
||||||
- name: Download and unpack dependencies
|
- name: Download and unpack dependencies
|
||||||
run: |
|
run: .ci/setup-windows.sh
|
||||||
.ci/setup-windows.sh
|
|
||||||
.ci/setup-windows-ci-vars.sh win64 msvc
|
|
||||||
|
|
||||||
- name: Export Variables
|
- name: Export Variables
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -310,135 +281,3 @@ jobs:
|
||||||
env:
|
env:
|
||||||
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }}
|
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }}
|
||||||
run: .ci/github-upload.sh
|
run: .ci/github-upload.sh
|
||||||
|
|
||||||
- name: Save Build Ccache
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
uses: actions/cache/save@main
|
|
||||||
with:
|
|
||||||
path: ${{ env.CCACHE_DIR }}
|
|
||||||
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }}
|
|
||||||
|
|
||||||
- name: Save Dependencies Cache
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
uses: actions/cache/save@main
|
|
||||||
with:
|
|
||||||
path: ${{ env.DEPS_CACHE_DIR }}
|
|
||||||
key: ${{ steps.restore-dependencies-cache.outputs.cache-primary-key }}
|
|
||||||
|
|
||||||
Windows_Build_Clang:
|
|
||||||
# Only run push event on master branch of main repo, but run all PRs
|
|
||||||
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
|
|
||||||
name: RPCS3 Windows Clang
|
|
||||||
runs-on: windows-2025
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- msys2: clang64
|
|
||||||
compiler: clang
|
|
||||||
arch: win64
|
|
||||||
env:
|
|
||||||
CCACHE_DIR: 'C:\ccache'
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@main
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Setup msys2
|
|
||||||
uses: msys2/setup-msys2@v2
|
|
||||||
with:
|
|
||||||
msystem: ${{ matrix.msys2 }}
|
|
||||||
update: true
|
|
||||||
cache: true
|
|
||||||
install: |
|
|
||||||
mingw-w64-clang-x86_64-clang
|
|
||||||
mingw-w64-clang-x86_64-ccache
|
|
||||||
mingw-w64-clang-x86_64-cmake
|
|
||||||
mingw-w64-clang-x86_64-lld
|
|
||||||
mingw-w64-clang-x86_64-ninja
|
|
||||||
mingw-w64-clang-x86_64-llvm
|
|
||||||
mingw-w64-clang-x86_64-ffmpeg
|
|
||||||
mingw-w64-clang-x86_64-opencv
|
|
||||||
mingw-w64-clang-x86_64-glew
|
|
||||||
mingw-w64-clang-x86_64-vulkan
|
|
||||||
mingw-w64-clang-x86_64-vulkan-headers
|
|
||||||
mingw-w64-clang-x86_64-vulkan-loader
|
|
||||||
mingw-w64-clang-x86_64-gtest
|
|
||||||
mingw-w64-clang-x86_64-qt6-base
|
|
||||||
mingw-w64-clang-x86_64-qt6-declarative
|
|
||||||
mingw-w64-clang-x86_64-qt6-multimedia
|
|
||||||
mingw-w64-clang-x86_64-qt6-svg
|
|
||||||
base-devel
|
|
||||||
curl
|
|
||||||
git
|
|
||||||
p7zip
|
|
||||||
|
|
||||||
- name: Restore build Ccache
|
|
||||||
uses: actions/cache/restore@main
|
|
||||||
id: restore-build-ccache
|
|
||||||
with:
|
|
||||||
path: ${{ env.CCACHE_DIR }}
|
|
||||||
key: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-${{ github.run_id }}
|
|
||||||
restore-keys: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-
|
|
||||||
|
|
||||||
- name: Build RPCS3
|
|
||||||
shell: msys2 {0}
|
|
||||||
run: |
|
|
||||||
export CCACHE_DIR=$(cygpath -u "$CCACHE_DIR")
|
|
||||||
echo "CCACHE_DIR=$CCACHE_DIR"
|
|
||||||
.ci/setup-windows-ci-vars.sh ${{ matrix.arch }} ${{ matrix.compiler }}
|
|
||||||
.ci/build-windows-clang.sh
|
|
||||||
|
|
||||||
- name: Save build Ccache
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
uses: actions/cache/save@main
|
|
||||||
with:
|
|
||||||
path: ${{ env.CCACHE_DIR }}
|
|
||||||
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }}
|
|
||||||
|
|
||||||
- name: Upload artifacts
|
|
||||||
uses: actions/upload-artifact@main
|
|
||||||
with:
|
|
||||||
name: RPCS3 for Windows (${{ runner.arch }}, ${{ matrix.compiler }})
|
|
||||||
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}
|
|
||||||
compression-level: 0
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
FreeBSD_Build:
|
|
||||||
# Only run push event on master branch of main repo, but run all PRs
|
|
||||||
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
|
|
||||||
name: RPCS3 FreeBSD
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 60
|
|
||||||
env:
|
|
||||||
CCACHE_DIR: ${{ github.workspace }}/ccache
|
|
||||||
QT_VER_MAIN: '6'
|
|
||||||
LLVM_COMPILER_VER: '19'
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@main
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Restore Build Ccache
|
|
||||||
uses: actions/cache/restore@main
|
|
||||||
id: restore-build-ccache
|
|
||||||
with:
|
|
||||||
path: ${{ env.CCACHE_DIR }}
|
|
||||||
key: FreeBSD-ccache-${{github.run_id}}
|
|
||||||
restore-keys: FreeBSD-ccache-
|
|
||||||
|
|
||||||
- name: FreeBSD build
|
|
||||||
id: root
|
|
||||||
uses: vmactions/freebsd-vm@v1
|
|
||||||
with:
|
|
||||||
envs: 'QT_VER_MAIN LLVM_COMPILER_VER CCACHE_DIR'
|
|
||||||
usesh: true
|
|
||||||
run: .ci/install-freebsd.sh && .ci/build-freebsd.sh
|
|
||||||
|
|
||||||
- name: Save Build Ccache
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
uses: actions/cache/save@main
|
|
||||||
with:
|
|
||||||
path: ${{ env.CCACHE_DIR }}
|
|
||||||
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }}
|
|
||||||
|
|
|
||||||
6
.gitmodules
vendored
|
|
@ -21,7 +21,7 @@
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "3rdparty/hidapi"]
|
[submodule "3rdparty/hidapi"]
|
||||||
path = 3rdparty/hidapi/hidapi
|
path = 3rdparty/hidapi/hidapi
|
||||||
url = ../../libusb/hidapi.git
|
url = ../../RPCS3/hidapi.git
|
||||||
branch = master
|
branch = master
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "3rdparty/pugixml"]
|
[submodule "3rdparty/pugixml"]
|
||||||
|
|
@ -108,7 +108,3 @@
|
||||||
path = 3rdparty/GPUOpen/VulkanMemoryAllocator
|
path = 3rdparty/GPUOpen/VulkanMemoryAllocator
|
||||||
url = ../../GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
|
url = ../../GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "3rdparty/feralinteractive/feralinteractive"]
|
|
||||||
path = 3rdparty/feralinteractive/feralinteractive
|
|
||||||
url = ../../FeralInteractive/gamemode.git
|
|
||||||
ignore = dirty
|
|
||||||
|
|
|
||||||
2
3rdparty/7zip/7zip
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 5e96a8279489832924056b1fa82f29d5837c9469
|
Subproject commit e5431fa6f5505e385c6f9367260717e9c47dc2ee
|
||||||
19
3rdparty/CMakeLists.txt
vendored
|
|
@ -51,14 +51,6 @@ else()
|
||||||
add_subdirectory(pugixml EXCLUDE_FROM_ALL)
|
add_subdirectory(pugixml EXCLUDE_FROM_ALL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_SYSTEM_VULKAN_MEMORY_ALLOCATOR)
|
|
||||||
find_package(VulkanMemoryAllocator REQUIRED GLOBAL)
|
|
||||||
add_library(3rdparty::vulkanmemoryallocator ALIAS GPUOpen::VulkanMemoryAllocator)
|
|
||||||
else()
|
|
||||||
add_library(3rdparty_vulkanmemoryallocator INTERFACE)
|
|
||||||
target_include_directories(3rdparty_vulkanmemoryallocator INTERFACE GPUOpen/VulkanMemoryAllocator/include)
|
|
||||||
add_library(3rdparty::vulkanmemoryallocator ALIAS 3rdparty_vulkanmemoryallocator)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# libusb
|
# libusb
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD")
|
if(CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD")
|
||||||
|
|
@ -100,6 +92,9 @@ add_subdirectory(hidapi)
|
||||||
|
|
||||||
# glslang
|
# glslang
|
||||||
add_subdirectory(glslang EXCLUDE_FROM_ALL)
|
add_subdirectory(glslang EXCLUDE_FROM_ALL)
|
||||||
|
add_library(3rdparty_glslang INTERFACE)
|
||||||
|
target_link_libraries(3rdparty_glslang INTERFACE SPIRV)
|
||||||
|
|
||||||
|
|
||||||
# yaml-cpp
|
# yaml-cpp
|
||||||
add_subdirectory(yaml-cpp)
|
add_subdirectory(yaml-cpp)
|
||||||
|
|
@ -278,7 +273,7 @@ if(USE_FAUDIO)
|
||||||
target_compile_definitions(FAudio-static INTERFACE -DHAVE_FAUDIO)
|
target_compile_definitions(FAudio-static INTERFACE -DHAVE_FAUDIO)
|
||||||
set(FAUDIO_TARGET FAudio-static)
|
set(FAUDIO_TARGET FAudio-static)
|
||||||
else()
|
else()
|
||||||
message(WARNING
|
message(FATAL_ERROR
|
||||||
"-- RPCS3: 3rdparty FAudio requires SDL 3.2.0 or newer. Since a valid SDL3"
|
"-- RPCS3: 3rdparty FAudio requires SDL 3.2.0 or newer. Since a valid SDL3"
|
||||||
">=3.2.0 version cannot be found, building with FAudio will be skipped.")
|
">=3.2.0 version cannot be found, building with FAudio will be skipped.")
|
||||||
set(USE_FAUDIO OFF CACHE BOOL "Disabled FAudio with SDL < 3.2.0" FORCE)
|
set(USE_FAUDIO OFF CACHE BOOL "Disabled FAudio with SDL < 3.2.0" FORCE)
|
||||||
|
|
@ -362,9 +357,6 @@ add_subdirectory(opencv EXCLUDE_FROM_ALL)
|
||||||
# FUSION
|
# FUSION
|
||||||
add_subdirectory(fusion EXCLUDE_FROM_ALL)
|
add_subdirectory(fusion EXCLUDE_FROM_ALL)
|
||||||
|
|
||||||
# FERAL INTERACTIVE
|
|
||||||
add_subdirectory(feralinteractive EXCLUDE_FROM_ALL)
|
|
||||||
|
|
||||||
# add nice ALIAS targets for ease of use
|
# add nice ALIAS targets for ease of use
|
||||||
if(USE_SYSTEM_LIBUSB)
|
if(USE_SYSTEM_LIBUSB)
|
||||||
add_library(3rdparty::libusb ALIAS usb-1.0-shared)
|
add_library(3rdparty::libusb ALIAS usb-1.0-shared)
|
||||||
|
|
@ -393,8 +385,7 @@ add_library(3rdparty::wolfssl ALIAS wolfssl)
|
||||||
add_library(3rdparty::libcurl ALIAS 3rdparty_libcurl)
|
add_library(3rdparty::libcurl ALIAS 3rdparty_libcurl)
|
||||||
add_library(3rdparty::soundtouch ALIAS soundtouch)
|
add_library(3rdparty::soundtouch ALIAS soundtouch)
|
||||||
add_library(3rdparty::sdl3 ALIAS ${SDL3_TARGET})
|
add_library(3rdparty::sdl3 ALIAS ${SDL3_TARGET})
|
||||||
add_library(3rdparty::miniupnpc ALIAS 3rdparty_miniupnpc)
|
add_library(3rdparty::miniupnpc ALIAS libminiupnpc-static)
|
||||||
add_library(3rdparty::rtmidi ALIAS rtmidi)
|
add_library(3rdparty::rtmidi ALIAS rtmidi)
|
||||||
add_library(3rdparty::opencv ALIAS ${OPENCV_TARGET})
|
add_library(3rdparty::opencv ALIAS ${OPENCV_TARGET})
|
||||||
add_library(3rdparty::fusion ALIAS Fusion)
|
add_library(3rdparty::fusion ALIAS Fusion)
|
||||||
add_library(3rdparty::feralinteractive ALIAS 3rdparty_feralinteractive)
|
|
||||||
|
|
|
||||||
2
3rdparty/FAudio
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 4ea8afea6ba857c24e40877f487d000d559b196d
|
Subproject commit 6077ea740a7114a54f76ed9b7abe08cffc0034b6
|
||||||
2
3rdparty/MoltenVK/CMakeLists.txt
vendored
|
|
@ -3,7 +3,7 @@ include(ExternalProject)
|
||||||
|
|
||||||
ExternalProject_Add(moltenvk
|
ExternalProject_Add(moltenvk
|
||||||
GIT_REPOSITORY https://github.com/KhronosGroup/MoltenVK.git
|
GIT_REPOSITORY https://github.com/KhronosGroup/MoltenVK.git
|
||||||
GIT_TAG 4588705
|
GIT_TAG 49b97f2
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK
|
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK
|
||||||
CONFIGURE_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK/fetchDependencies" --macos
|
CONFIGURE_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK/fetchDependencies" --macos
|
||||||
|
|
|
||||||
1
3rdparty/OpenAL/CMakeLists.txt
vendored
|
|
@ -11,7 +11,6 @@ if(USE_SYSTEM_OPENAL)
|
||||||
else()
|
else()
|
||||||
option(ALSOFT_UTILS "Build utility programs" OFF)
|
option(ALSOFT_UTILS "Build utility programs" OFF)
|
||||||
option(ALSOFT_EXAMPLES "Build example programs" OFF)
|
option(ALSOFT_EXAMPLES "Build example programs" OFF)
|
||||||
set(LIBTYPE "STATIC")
|
|
||||||
add_subdirectory(openal-soft EXCLUDE_FROM_ALL)
|
add_subdirectory(openal-soft EXCLUDE_FROM_ALL)
|
||||||
add_library(3rdparty_openal INTERFACE)
|
add_library(3rdparty_openal INTERFACE)
|
||||||
target_link_libraries(3rdparty_openal INTERFACE OpenAL::OpenAL)
|
target_link_libraries(3rdparty_openal INTERFACE OpenAL::OpenAL)
|
||||||
|
|
|
||||||
2
3rdparty/OpenAL/openal-soft
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 0e5e98e4ac8adae92e4f7653dd6eee17aa9c8791
|
Subproject commit dc7d7054a5b4f3bec1dc23a42fd616a0847af948
|
||||||
4
3rdparty/OpenAL/openal-soft.vcxproj
vendored
|
|
@ -49,11 +49,11 @@
|
||||||
<PropertyGroup Label="UserMacros">
|
<PropertyGroup Label="UserMacros">
|
||||||
<CmakeReleaseCLI>call vsdevcmd.bat -arch=amd64
|
<CmakeReleaseCLI>call vsdevcmd.bat -arch=amd64
|
||||||
cd "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)"
|
cd "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)"
|
||||||
cmake -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="./Release" -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_SYSTEM_VERSION=10.0 -DLIBTYPE=STATIC -DFORCE_STATIC_VCRT=true -DALSOFT_UTILS=false -DALSOFT_EXAMPLES=false -DALSOFT_INSTALL=false -DALSOFT_INSTALL_CONFIG=false -DALSOFT_INSTALL_HRTF_DATA=false -DALSOFT_INSTALL_AMBDEC_PRESETS=false -DALSOFT_INSTALL_EXAMPLES=false -DALSOFT_INSTALL_UTILS=false "$(SolutionDir)3rdparty\OpenAL\openal-soft"
|
cmake -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="./Release" -DCMAKE_SYSTEM_VERSION=10.0 -DLIBTYPE=STATIC -DFORCE_STATIC_VCRT=true -DALSOFT_UTILS=false -DALSOFT_EXAMPLES=false -DALSOFT_INSTALL=false -DALSOFT_INSTALL_CONFIG=false -DALSOFT_INSTALL_HRTF_DATA=false -DALSOFT_INSTALL_AMBDEC_PRESETS=false -DALSOFT_INSTALL_EXAMPLES=false -DALSOFT_INSTALL_UTILS=false "$(SolutionDir)3rdparty\OpenAL\openal-soft"
|
||||||
</CmakeReleaseCLI>
|
</CmakeReleaseCLI>
|
||||||
<CmakeDebugCLI>call vsdevcmd.bat -arch=amd64
|
<CmakeDebugCLI>call vsdevcmd.bat -arch=amd64
|
||||||
cd "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)"
|
cd "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)"
|
||||||
cmake -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="./Debug" -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebug -DCMAKE_SYSTEM_VERSION=10.0 -DLIBTYPE=STATIC -DALSOFT_UTILS=false -DALSOFT_EXAMPLES=false -DALSOFT_INSTALL=false -DALSOFT_INSTALL_CONFIG=false -DALSOFT_INSTALL_HRTF_DATA=false -DALSOFT_INSTALL_AMBDEC_PRESETS=false -DALSOFT_INSTALL_EXAMPLES=false -DALSOFT_INSTALL_UTILS=false "$(SolutionDir)3rdparty\OpenAL\openal-soft"
|
cmake -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="./Debug" -DCMAKE_SYSTEM_VERSION=10.0 -DLIBTYPE=STATIC -DALSOFT_UTILS=false -DALSOFT_EXAMPLES=false -DALSOFT_INSTALL=false -DALSOFT_INSTALL_CONFIG=false -DALSOFT_INSTALL_HRTF_DATA=false -DALSOFT_INSTALL_AMBDEC_PRESETS=false -DALSOFT_INSTALL_EXAMPLES=false -DALSOFT_INSTALL_UTILS=false "$(SolutionDir)3rdparty\OpenAL\openal-soft"
|
||||||
</CmakeDebugCLI>
|
</CmakeDebugCLI>
|
||||||
<CmakeCopyCLI>
|
<CmakeCopyCLI>
|
||||||
echo Copying..
|
echo Copying..
|
||||||
|
|
|
||||||
2
3rdparty/cubeb/cubeb
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit e495bee4cd630c9f99907a764e16edba37a4b564
|
Subproject commit 70b4e3db7822de4d534959885cda109d6edbee36
|
||||||
2
3rdparty/curl/curl
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 400fffa90f30c7a2dc762fa33009d24851bd2016
|
Subproject commit 4dacb79fcdd9364c1083e06f6a011d797a344f47
|
||||||
33
3rdparty/curl/libcurl.vcxproj
vendored
|
|
@ -70,7 +70,6 @@
|
||||||
<ClCompile Include="curl\lib\cf-h2-proxy.c" />
|
<ClCompile Include="curl\lib\cf-h2-proxy.c" />
|
||||||
<ClCompile Include="curl\lib\cf-haproxy.c" />
|
<ClCompile Include="curl\lib\cf-haproxy.c" />
|
||||||
<ClCompile Include="curl\lib\cf-https-connect.c" />
|
<ClCompile Include="curl\lib\cf-https-connect.c" />
|
||||||
<ClCompile Include="curl\lib\cf-ip-happy.c" />
|
|
||||||
<ClCompile Include="curl\lib\cf-socket.c" />
|
<ClCompile Include="curl\lib\cf-socket.c" />
|
||||||
<ClCompile Include="curl\lib\cfilters.c" />
|
<ClCompile Include="curl\lib\cfilters.c" />
|
||||||
<ClCompile Include="curl\lib\conncache.c" />
|
<ClCompile Include="curl\lib\conncache.c" />
|
||||||
|
|
@ -80,23 +79,19 @@
|
||||||
<ClCompile Include="curl\lib\cshutdn.c" />
|
<ClCompile Include="curl\lib\cshutdn.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\base64.c" />
|
<ClCompile Include="curl\lib\curlx\base64.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\dynbuf.c" />
|
<ClCompile Include="curl\lib\curlx\dynbuf.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\fopen.c" />
|
|
||||||
<ClCompile Include="curl\lib\curlx\inet_ntop.c" />
|
|
||||||
<ClCompile Include="curl\lib\curlx\inet_pton.c" />
|
<ClCompile Include="curl\lib\curlx\inet_pton.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\multibyte.c" />
|
<ClCompile Include="curl\lib\curlx\multibyte.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\nonblock.c" />
|
<ClCompile Include="curl\lib\curlx\nonblock.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\strerr.c" />
|
|
||||||
<ClCompile Include="curl\lib\curlx\strparse.c" />
|
<ClCompile Include="curl\lib\curlx\strparse.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\timediff.c" />
|
<ClCompile Include="curl\lib\curlx\timediff.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\timeval.c" />
|
<ClCompile Include="curl\lib\curlx\timeval.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\version_win32.c" />
|
<ClCompile Include="curl\lib\curlx\version_win32.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\wait.c" />
|
|
||||||
<ClCompile Include="curl\lib\curlx\warnless.c" />
|
<ClCompile Include="curl\lib\curlx\warnless.c" />
|
||||||
<ClCompile Include="curl\lib\curlx\winapi.c" />
|
<ClCompile Include="curl\lib\curlx\winapi.c" />
|
||||||
<ClCompile Include="curl\lib\curl_addrinfo.c" />
|
<ClCompile Include="curl\lib\curl_addrinfo.c" />
|
||||||
|
<ClCompile Include="curl\lib\curl_des.c" />
|
||||||
<ClCompile Include="curl\lib\curl_endian.c" />
|
<ClCompile Include="curl\lib\curl_endian.c" />
|
||||||
<ClCompile Include="curl\lib\curl_fnmatch.c" />
|
<ClCompile Include="curl\lib\curl_fnmatch.c" />
|
||||||
<ClCompile Include="curl\lib\curl_fopen.c" />
|
|
||||||
<ClCompile Include="curl\lib\curl_gethostname.c" />
|
<ClCompile Include="curl\lib\curl_gethostname.c" />
|
||||||
<ClCompile Include="curl\lib\curl_get_line.c" />
|
<ClCompile Include="curl\lib\curl_get_line.c" />
|
||||||
<ClCompile Include="curl\lib\curl_gssapi.c" />
|
<ClCompile Include="curl\lib\curl_gssapi.c" />
|
||||||
|
|
@ -122,6 +117,7 @@
|
||||||
<ClCompile Include="curl\lib\fake_addrinfo.c" />
|
<ClCompile Include="curl\lib\fake_addrinfo.c" />
|
||||||
<ClCompile Include="curl\lib\file.c" />
|
<ClCompile Include="curl\lib\file.c" />
|
||||||
<ClCompile Include="curl\lib\fileinfo.c" />
|
<ClCompile Include="curl\lib\fileinfo.c" />
|
||||||
|
<ClCompile Include="curl\lib\fopen.c" />
|
||||||
<ClCompile Include="curl\lib\formdata.c" />
|
<ClCompile Include="curl\lib\formdata.c" />
|
||||||
<ClCompile Include="curl\lib\ftp.c" />
|
<ClCompile Include="curl\lib\ftp.c" />
|
||||||
<ClCompile Include="curl\lib\ftplistparser.c" />
|
<ClCompile Include="curl\lib\ftplistparser.c" />
|
||||||
|
|
@ -148,6 +144,8 @@
|
||||||
<ClCompile Include="curl\lib\idn.c" />
|
<ClCompile Include="curl\lib\idn.c" />
|
||||||
<ClCompile Include="curl\lib\if2ip.c" />
|
<ClCompile Include="curl\lib\if2ip.c" />
|
||||||
<ClCompile Include="curl\lib\imap.c" />
|
<ClCompile Include="curl\lib\imap.c" />
|
||||||
|
<ClCompile Include="curl\lib\inet_ntop.c" />
|
||||||
|
<ClCompile Include="curl\lib\krb5.c" />
|
||||||
<ClCompile Include="curl\lib\ldap.c" />
|
<ClCompile Include="curl\lib\ldap.c" />
|
||||||
<ClCompile Include="curl\lib\llist.c" />
|
<ClCompile Include="curl\lib\llist.c" />
|
||||||
<ClCompile Include="curl\lib\macos.c" />
|
<ClCompile Include="curl\lib\macos.c" />
|
||||||
|
|
@ -159,7 +157,6 @@
|
||||||
<ClCompile Include="curl\lib\mqtt.c" />
|
<ClCompile Include="curl\lib\mqtt.c" />
|
||||||
<ClCompile Include="curl\lib\multi.c" />
|
<ClCompile Include="curl\lib\multi.c" />
|
||||||
<ClCompile Include="curl\lib\multi_ev.c" />
|
<ClCompile Include="curl\lib\multi_ev.c" />
|
||||||
<ClCompile Include="curl\lib\multi_ntfy.c" />
|
|
||||||
<ClCompile Include="curl\lib\netrc.c" />
|
<ClCompile Include="curl\lib\netrc.c" />
|
||||||
<ClCompile Include="curl\lib\noproxy.c" />
|
<ClCompile Include="curl\lib\noproxy.c" />
|
||||||
<ClCompile Include="curl\lib\openldap.c" />
|
<ClCompile Include="curl\lib\openldap.c" />
|
||||||
|
|
@ -202,9 +199,9 @@
|
||||||
<ClCompile Include="curl\lib\urlapi.c" />
|
<ClCompile Include="curl\lib\urlapi.c" />
|
||||||
<ClCompile Include="curl\lib\vauth\gsasl.c" />
|
<ClCompile Include="curl\lib\vauth\gsasl.c" />
|
||||||
<ClCompile Include="curl\lib\version.c" />
|
<ClCompile Include="curl\lib\version.c" />
|
||||||
|
<ClCompile Include="curl\lib\vquic\curl_msh3.c" />
|
||||||
<ClCompile Include="curl\lib\vquic\curl_ngtcp2.c" />
|
<ClCompile Include="curl\lib\vquic\curl_ngtcp2.c" />
|
||||||
<ClCompile Include="curl\lib\vquic\curl_quiche.c" />
|
<ClCompile Include="curl\lib\vquic\curl_quiche.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\apple.c" />
|
|
||||||
<ClCompile Include="curl\lib\vtls\cipher_suite.c" />
|
<ClCompile Include="curl\lib\vtls\cipher_suite.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\hostcheck.c" />
|
<ClCompile Include="curl\lib\vtls\hostcheck.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\rustls.c" />
|
<ClCompile Include="curl\lib\vtls\rustls.c" />
|
||||||
|
|
@ -227,6 +224,8 @@
|
||||||
<ClCompile Include="curl\lib\vssh\curl_path.c" />
|
<ClCompile Include="curl\lib\vssh\curl_path.c" />
|
||||||
<ClCompile Include="curl\lib\vssh\libssh.c" />
|
<ClCompile Include="curl\lib\vssh\libssh.c" />
|
||||||
<ClCompile Include="curl\lib\vssh\libssh2.c" />
|
<ClCompile Include="curl\lib\vssh\libssh2.c" />
|
||||||
|
<ClCompile Include="curl\lib\vssh\wolfssh.c" />
|
||||||
|
<ClCompile Include="curl\lib\vtls\bearssl.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\gtls.c" />
|
<ClCompile Include="curl\lib\vtls\gtls.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\keylog.c" />
|
<ClCompile Include="curl\lib\vtls\keylog.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\mbedtls.c" />
|
<ClCompile Include="curl\lib\vtls\mbedtls.c" />
|
||||||
|
|
@ -234,6 +233,7 @@
|
||||||
<ClCompile Include="curl\lib\vtls\openssl.c" />
|
<ClCompile Include="curl\lib\vtls\openssl.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\schannel.c" />
|
<ClCompile Include="curl\lib\vtls\schannel.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\schannel_verify.c" />
|
<ClCompile Include="curl\lib\vtls\schannel_verify.c" />
|
||||||
|
<ClCompile Include="curl\lib\vtls\sectransp.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\vtls.c" />
|
<ClCompile Include="curl\lib\vtls\vtls.c" />
|
||||||
<ClCompile Include="curl\lib\vtls\wolfssl.c" />
|
<ClCompile Include="curl\lib\vtls\wolfssl.c" />
|
||||||
<ClCompile Include="curl\lib\ws.c" />
|
<ClCompile Include="curl\lib\ws.c" />
|
||||||
|
|
@ -258,7 +258,6 @@
|
||||||
<ClInclude Include="curl\lib\cf-h2-proxy.h" />
|
<ClInclude Include="curl\lib\cf-h2-proxy.h" />
|
||||||
<ClInclude Include="curl\lib\cf-haproxy.h" />
|
<ClInclude Include="curl\lib\cf-haproxy.h" />
|
||||||
<ClInclude Include="curl\lib\cf-https-connect.h" />
|
<ClInclude Include="curl\lib\cf-https-connect.h" />
|
||||||
<ClInclude Include="curl\lib\cf-ip-happy.h" />
|
|
||||||
<ClInclude Include="curl\lib\cf-socket.h" />
|
<ClInclude Include="curl\lib\cf-socket.h" />
|
||||||
<ClInclude Include="curl\lib\cfilters.h" />
|
<ClInclude Include="curl\lib\cfilters.h" />
|
||||||
<ClInclude Include="curl\lib\config-mac.h" />
|
<ClInclude Include="curl\lib\config-mac.h" />
|
||||||
|
|
@ -272,37 +271,32 @@
|
||||||
<ClInclude Include="curl\lib\cookie.h" />
|
<ClInclude Include="curl\lib\cookie.h" />
|
||||||
<ClInclude Include="curl\lib\cshutdn.h" />
|
<ClInclude Include="curl\lib\cshutdn.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\base64.h" />
|
<ClInclude Include="curl\lib\curlx\base64.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\binmode.h" />
|
|
||||||
<ClInclude Include="curl\lib\curlx\curlx.h" />
|
<ClInclude Include="curl\lib\curlx\curlx.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\dynbuf.h" />
|
<ClInclude Include="curl\lib\curlx\dynbuf.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\fopen.h" />
|
|
||||||
<ClInclude Include="curl\lib\curlx\inet_ntop.h" />
|
|
||||||
<ClInclude Include="curl\lib\curlx\inet_pton.h" />
|
<ClInclude Include="curl\lib\curlx\inet_pton.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\multibyte.h" />
|
<ClInclude Include="curl\lib\curlx\multibyte.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\nonblock.h" />
|
<ClInclude Include="curl\lib\curlx\nonblock.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\strerr.h" />
|
|
||||||
<ClInclude Include="curl\lib\curlx\strparse.h" />
|
<ClInclude Include="curl\lib\curlx\strparse.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\timediff.h" />
|
<ClInclude Include="curl\lib\curlx\timediff.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\timeval.h" />
|
<ClInclude Include="curl\lib\curlx\timeval.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\version_win32.h" />
|
<ClInclude Include="curl\lib\curlx\version_win32.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\wait.h" />
|
|
||||||
<ClInclude Include="curl\lib\curlx\warnless.h" />
|
<ClInclude Include="curl\lib\curlx\warnless.h" />
|
||||||
<ClInclude Include="curl\lib\curlx\winapi.h" />
|
<ClInclude Include="curl\lib\curlx\winapi.h" />
|
||||||
<ClInclude Include="curl\lib\curl_addrinfo.h" />
|
<ClInclude Include="curl\lib\curl_addrinfo.h" />
|
||||||
<ClInclude Include="curl\lib\curl_ctype.h" />
|
<ClInclude Include="curl\lib\curl_ctype.h" />
|
||||||
|
<ClInclude Include="curl\lib\curl_des.h" />
|
||||||
<ClInclude Include="curl\lib\curl_endian.h" />
|
<ClInclude Include="curl\lib\curl_endian.h" />
|
||||||
<ClInclude Include="curl\lib\curl_fnmatch.h" />
|
<ClInclude Include="curl\lib\curl_fnmatch.h" />
|
||||||
<ClInclude Include="curl\lib\curl_fopen.h" />
|
|
||||||
<ClInclude Include="curl\lib\curl_gethostname.h" />
|
<ClInclude Include="curl\lib\curl_gethostname.h" />
|
||||||
<ClInclude Include="curl\lib\curl_get_line.h" />
|
<ClInclude Include="curl\lib\curl_get_line.h" />
|
||||||
<ClInclude Include="curl\lib\curl_gssapi.h" />
|
<ClInclude Include="curl\lib\curl_gssapi.h" />
|
||||||
<ClInclude Include="curl\lib\curl_hmac.h" />
|
<ClInclude Include="curl\lib\curl_hmac.h" />
|
||||||
|
<ClInclude Include="curl\lib\curl_krb5.h" />
|
||||||
<ClInclude Include="curl\lib\curl_ldap.h" />
|
<ClInclude Include="curl\lib\curl_ldap.h" />
|
||||||
<ClInclude Include="curl\lib\curl_md4.h" />
|
<ClInclude Include="curl\lib\curl_md4.h" />
|
||||||
<ClInclude Include="curl\lib\curl_md5.h" />
|
<ClInclude Include="curl\lib\curl_md5.h" />
|
||||||
<ClInclude Include="curl\lib\curl_memory.h" />
|
<ClInclude Include="curl\lib\curl_memory.h" />
|
||||||
<ClInclude Include="curl\lib\curl_memrchr.h" />
|
<ClInclude Include="curl\lib\curl_memrchr.h" />
|
||||||
<ClInclude Include="curl\lib\curl_mem_undef.h" />
|
|
||||||
<ClInclude Include="curl\lib\curl_ntlm_core.h" />
|
<ClInclude Include="curl\lib\curl_ntlm_core.h" />
|
||||||
<ClInclude Include="curl\lib\curl_printf.h" />
|
<ClInclude Include="curl\lib\curl_printf.h" />
|
||||||
<ClInclude Include="curl\lib\curl_range.h" />
|
<ClInclude Include="curl\lib\curl_range.h" />
|
||||||
|
|
@ -327,6 +321,7 @@
|
||||||
<ClInclude Include="curl\lib\fake_addrinfo.h" />
|
<ClInclude Include="curl\lib\fake_addrinfo.h" />
|
||||||
<ClInclude Include="curl\lib\file.h" />
|
<ClInclude Include="curl\lib\file.h" />
|
||||||
<ClInclude Include="curl\lib\fileinfo.h" />
|
<ClInclude Include="curl\lib\fileinfo.h" />
|
||||||
|
<ClInclude Include="curl\lib\fopen.h" />
|
||||||
<ClInclude Include="curl\lib\formdata.h" />
|
<ClInclude Include="curl\lib\formdata.h" />
|
||||||
<ClInclude Include="curl\lib\ftp.h" />
|
<ClInclude Include="curl\lib\ftp.h" />
|
||||||
<ClInclude Include="curl\lib\ftplistparser.h" />
|
<ClInclude Include="curl\lib\ftplistparser.h" />
|
||||||
|
|
@ -350,6 +345,7 @@
|
||||||
<ClInclude Include="curl\lib\idn.h" />
|
<ClInclude Include="curl\lib\idn.h" />
|
||||||
<ClInclude Include="curl\lib\if2ip.h" />
|
<ClInclude Include="curl\lib\if2ip.h" />
|
||||||
<ClInclude Include="curl\lib\imap.h" />
|
<ClInclude Include="curl\lib\imap.h" />
|
||||||
|
<ClInclude Include="curl\lib\inet_ntop.h" />
|
||||||
<ClInclude Include="curl\lib\llist.h" />
|
<ClInclude Include="curl\lib\llist.h" />
|
||||||
<ClInclude Include="curl\lib\macos.h" />
|
<ClInclude Include="curl\lib\macos.h" />
|
||||||
<ClInclude Include="curl\lib\memdebug.h" />
|
<ClInclude Include="curl\lib\memdebug.h" />
|
||||||
|
|
@ -358,7 +354,6 @@
|
||||||
<ClInclude Include="curl\lib\multihandle.h" />
|
<ClInclude Include="curl\lib\multihandle.h" />
|
||||||
<ClInclude Include="curl\lib\multiif.h" />
|
<ClInclude Include="curl\lib\multiif.h" />
|
||||||
<ClInclude Include="curl\lib\multi_ev.h" />
|
<ClInclude Include="curl\lib\multi_ev.h" />
|
||||||
<ClInclude Include="curl\lib\multi_ntfy.h" />
|
|
||||||
<ClInclude Include="curl\lib\netrc.h" />
|
<ClInclude Include="curl\lib\netrc.h" />
|
||||||
<ClInclude Include="curl\lib\noproxy.h" />
|
<ClInclude Include="curl\lib\noproxy.h" />
|
||||||
<ClInclude Include="curl\lib\parsedate.h" />
|
<ClInclude Include="curl\lib\parsedate.h" />
|
||||||
|
|
@ -402,10 +397,10 @@
|
||||||
<ClInclude Include="curl\lib\url.h" />
|
<ClInclude Include="curl\lib\url.h" />
|
||||||
<ClInclude Include="curl\lib\urlapi-int.h" />
|
<ClInclude Include="curl\lib\urlapi-int.h" />
|
||||||
<ClInclude Include="curl\lib\urldata.h" />
|
<ClInclude Include="curl\lib\urldata.h" />
|
||||||
|
<ClInclude Include="curl\lib\vquic\curl_msh3.h" />
|
||||||
<ClInclude Include="curl\lib\vquic\curl_ngtcp2.h" />
|
<ClInclude Include="curl\lib\vquic\curl_ngtcp2.h" />
|
||||||
<ClInclude Include="curl\lib\vquic\curl_quiche.h" />
|
<ClInclude Include="curl\lib\vquic\curl_quiche.h" />
|
||||||
<ClInclude Include="curl\lib\vquic\vquic_int.h" />
|
<ClInclude Include="curl\lib\vquic\vquic_int.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\apple.h" />
|
|
||||||
<ClInclude Include="curl\lib\vtls\cipher_suite.h" />
|
<ClInclude Include="curl\lib\vtls\cipher_suite.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\hostcheck.h" />
|
<ClInclude Include="curl\lib\vtls\hostcheck.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\rustls.h" />
|
<ClInclude Include="curl\lib\vtls\rustls.h" />
|
||||||
|
|
@ -420,12 +415,14 @@
|
||||||
<ClInclude Include="curl\lib\vquic\vquic.h" />
|
<ClInclude Include="curl\lib\vquic\vquic.h" />
|
||||||
<ClInclude Include="curl\lib\vssh\curl_path.h" />
|
<ClInclude Include="curl\lib\vssh\curl_path.h" />
|
||||||
<ClInclude Include="curl\lib\vssh\ssh.h" />
|
<ClInclude Include="curl\lib\vssh\ssh.h" />
|
||||||
|
<ClInclude Include="curl\lib\vtls\bearssl.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\gtls.h" />
|
<ClInclude Include="curl\lib\vtls\gtls.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\keylog.h" />
|
<ClInclude Include="curl\lib\vtls\keylog.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\mbedtls.h" />
|
<ClInclude Include="curl\lib\vtls\mbedtls.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\mbedtls_threadlock.h" />
|
<ClInclude Include="curl\lib\vtls\mbedtls_threadlock.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\openssl.h" />
|
<ClInclude Include="curl\lib\vtls\openssl.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\schannel.h" />
|
<ClInclude Include="curl\lib\vtls\schannel.h" />
|
||||||
|
<ClInclude Include="curl\lib\vtls\sectransp.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\vtls.h" />
|
<ClInclude Include="curl\lib\vtls\vtls.h" />
|
||||||
<ClInclude Include="curl\lib\vtls\wolfssl.h" />
|
<ClInclude Include="curl\lib\vtls\wolfssl.h" />
|
||||||
<ClInclude Include="curl\lib\ws.h" />
|
<ClInclude Include="curl\lib\ws.h" />
|
||||||
|
|
|
||||||
99
3rdparty/curl/libcurl.vcxproj.filters
vendored
|
|
@ -42,6 +42,9 @@
|
||||||
<ClCompile Include="curl\lib\curl_addrinfo.c">
|
<ClCompile Include="curl\lib\curl_addrinfo.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="curl\lib\curl_des.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="curl\lib\curl_endian.c">
|
<ClCompile Include="curl\lib\curl_endian.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -156,6 +159,12 @@
|
||||||
<ClCompile Include="curl\lib\imap.c">
|
<ClCompile Include="curl\lib\imap.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="curl\lib\inet_ntop.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="curl\lib\krb5.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="curl\lib\ldap.c">
|
<ClCompile Include="curl\lib\ldap.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -327,6 +336,12 @@
|
||||||
<ClCompile Include="curl\lib\vssh\libssh2.c">
|
<ClCompile Include="curl\lib\vssh\libssh2.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="curl\lib\vssh\wolfssh.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="curl\lib\vtls\bearssl.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="curl\lib\vtls\gtls.c">
|
<ClCompile Include="curl\lib\vtls\gtls.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -345,6 +360,9 @@
|
||||||
<ClCompile Include="curl\lib\vtls\schannel_verify.c">
|
<ClCompile Include="curl\lib\vtls\schannel_verify.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="curl\lib\vtls\sectransp.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="curl\lib\vtls\vtls.c">
|
<ClCompile Include="curl\lib\vtls\vtls.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -387,6 +405,9 @@
|
||||||
<ClCompile Include="curl\lib\headers.c">
|
<ClCompile Include="curl\lib\headers.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="curl\lib\fopen.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="curl\lib\noproxy.c">
|
<ClCompile Include="curl\lib\noproxy.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -405,6 +426,9 @@
|
||||||
<ClCompile Include="curl\lib\cf-socket.c">
|
<ClCompile Include="curl\lib\cf-socket.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="curl\lib\vquic\curl_msh3.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="curl\lib\vquic\curl_ngtcp2.c">
|
<ClCompile Include="curl\lib\vquic\curl_ngtcp2.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -525,30 +549,6 @@
|
||||||
<ClCompile Include="curl\lib\curlx\winapi.c">
|
<ClCompile Include="curl\lib\curlx\winapi.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="curl\lib\curlx\inet_ntop.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="curl\lib\curlx\wait.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="curl\lib\cf-ip-happy.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="curl\lib\curl_fopen.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="curl\lib\multi_ntfy.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="curl\lib\vtls\apple.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="curl\lib\curlx\fopen.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="curl\lib\curlx\strerr.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="curl\include\curl\curl.h">
|
<ClInclude Include="curl\include\curl\curl.h">
|
||||||
|
|
@ -626,6 +626,9 @@
|
||||||
<ClInclude Include="curl\lib\curl_ctype.h">
|
<ClInclude Include="curl\lib\curl_ctype.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="curl\lib\curl_des.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="curl\lib\curl_endian.h">
|
<ClInclude Include="curl\lib\curl_endian.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
@ -755,6 +758,9 @@
|
||||||
<ClInclude Include="curl\lib\imap.h">
|
<ClInclude Include="curl\lib\imap.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="curl\lib\inet_ntop.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="curl\lib\llist.h">
|
<ClInclude Include="curl\lib\llist.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
@ -893,6 +899,9 @@
|
||||||
<ClInclude Include="curl\lib\vssh\ssh.h">
|
<ClInclude Include="curl\lib\vssh\ssh.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="curl\lib\vtls\bearssl.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="curl\lib\vtls\gtls.h">
|
<ClInclude Include="curl\lib\vtls\gtls.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
@ -908,6 +917,9 @@
|
||||||
<ClInclude Include="curl\lib\vtls\schannel.h">
|
<ClInclude Include="curl\lib\vtls\schannel.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="curl\lib\vtls\sectransp.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="curl\lib\vtls\vtls.h">
|
<ClInclude Include="curl\lib\vtls\vtls.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
@ -926,6 +938,9 @@
|
||||||
<ClInclude Include="curl\lib\vtls\keylog.h">
|
<ClInclude Include="curl\lib\vtls\keylog.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="curl\lib\curl_krb5.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="curl\lib\easyoptions.h">
|
<ClInclude Include="curl\lib\easyoptions.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
@ -950,6 +965,9 @@
|
||||||
<ClInclude Include="curl\lib\easy_lock.h">
|
<ClInclude Include="curl\lib\easy_lock.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="curl\lib\fopen.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="curl\lib\functypes.h">
|
<ClInclude Include="curl\lib\functypes.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
@ -971,6 +989,9 @@
|
||||||
<ClInclude Include="curl\lib\cf-socket.h">
|
<ClInclude Include="curl\lib\cf-socket.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="curl\lib\vquic\curl_msh3.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="curl\lib\vquic\curl_ngtcp2.h">
|
<ClInclude Include="curl\lib\vquic\curl_ngtcp2.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
@ -1091,36 +1112,6 @@
|
||||||
<ClInclude Include="curl\lib\curlx\winapi.h">
|
<ClInclude Include="curl\lib\curlx\winapi.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="curl\lib\curlx\binmode.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\curlx\inet_ntop.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\curlx\wait.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\cf-ip-happy.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\curl_mem_undef.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\curl_fopen.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\multi_ntfy.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\vtls\apple.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\curlx\fopen.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="curl\lib\curlx\strerr.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="curl\lib\libcurl.rc">
|
<ResourceCompile Include="curl\lib\libcurl.rc">
|
||||||
|
|
|
||||||
9
3rdparty/feralinteractive/CMakeLists.txt
vendored
|
|
@ -1,9 +0,0 @@
|
||||||
# Feral Interactive
|
|
||||||
|
|
||||||
add_library(3rdparty_feralinteractive INTERFACE)
|
|
||||||
|
|
||||||
if (CMAKE_SYSTEM MATCHES "Linux")
|
|
||||||
target_include_directories(3rdparty_feralinteractive INTERFACE feralinteractive/lib)
|
|
||||||
target_compile_definitions(3rdparty_feralinteractive INTERFACE -DGAMEMODE_AVAILABLE)
|
|
||||||
target_link_libraries(3rdparty_feralinteractive INTERFACE feralinteractive)
|
|
||||||
endif()
|
|
||||||
1
3rdparty/feralinteractive/feralinteractive
vendored
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit c54d6d4243b0dd0afcb49f2c9836d432da171a2b
|
|
||||||
2
3rdparty/fusion/fusion
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 759ac5d698baefca53f1975a0bb1d2dcbdb9f836
|
Subproject commit 066d4a63b2c714b20b0a8073a01fda7c5c6763f6
|
||||||
30
3rdparty/glslang/CMakeLists.txt
vendored
|
|
@ -1,23 +1,11 @@
|
||||||
#glslang
|
#glslang
|
||||||
|
|
||||||
if(USE_SYSTEM_GLSLANG)
|
set(ENABLE_PCH OFF CACHE BOOL "Enables Precompiled header" FORCE)
|
||||||
message(STATUS "RPCS3: using shared glslang")
|
set(BUILD_EXTERNAL OFF CACHE BOOL "Build external dependencies in /External" FORCE)
|
||||||
find_package(glslang REQUIRED GLOBAL)
|
set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "Skip installation" FORCE)
|
||||||
add_library(3rdparty_glslang INTERFACE)
|
set(ENABLE_SPVREMAPPER OFF CACHE BOOL "Enables building of SPVRemapper" FORCE)
|
||||||
target_link_libraries(3rdparty_glslang INTERFACE glslang::SPIRV)
|
set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "Builds glslangValidator and spirv-remap" FORCE)
|
||||||
get_target_property(SPIRV_INCLUDE_DIRS glslang::SPIRV INTERFACE_INCLUDE_DIRECTORIES)
|
set(ENABLE_HLSL OFF CACHE BOOL "Enables HLSL input support" FORCE)
|
||||||
list(TRANSFORM SPIRV_INCLUDE_DIRS APPEND "/glslang")
|
set(ENABLE_OPT OFF CACHE BOOL "Enables spirv-opt capability if present" FORCE)
|
||||||
target_include_directories(3rdparty_glslang INTERFACE ${SPIRV_INCLUDE_DIRS})
|
set(ENABLE_CTEST OFF CACHE BOOL "Enables testing" FORCE)
|
||||||
else()
|
add_subdirectory(glslang)
|
||||||
set(ENABLE_PCH OFF CACHE BOOL "Enables Precompiled header" FORCE)
|
|
||||||
set(BUILD_EXTERNAL OFF CACHE BOOL "Build external dependencies in /External" FORCE)
|
|
||||||
set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "Skip installation" FORCE)
|
|
||||||
set(ENABLE_SPVREMAPPER OFF CACHE BOOL "Enables building of SPVRemapper" FORCE)
|
|
||||||
set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "Builds glslangValidator and spirv-remap" FORCE)
|
|
||||||
set(ENABLE_HLSL OFF CACHE BOOL "Enables HLSL input support" FORCE)
|
|
||||||
set(ENABLE_OPT OFF CACHE BOOL "Enables spirv-opt capability if present" FORCE)
|
|
||||||
set(ENABLE_CTEST OFF CACHE BOOL "Enables testing" FORCE)
|
|
||||||
add_subdirectory(glslang)
|
|
||||||
add_library(3rdparty_glslang INTERFACE)
|
|
||||||
target_link_libraries(3rdparty_glslang INTERFACE SPIRV)
|
|
||||||
endif()
|
|
||||||
|
|
|
||||||
46
3rdparty/hidapi/CMakeLists.txt
vendored
|
|
@ -1,30 +1,22 @@
|
||||||
# hidapi
|
# hidapi
|
||||||
if(USE_SYSTEM_HIDAPI)
|
set(BUILD_SHARED_LIBS FALSE CACHE BOOL "Don't build shared libs")
|
||||||
message(STATUS "RPCS3: using shared hidapi")
|
set(HIDAPI_INSTALL_TARGETS FALSE CACHE BOOL "Don't install anything")
|
||||||
pkg_check_modules(hidapi-hidraw REQUIRED IMPORTED_TARGET hidapi-hidraw)
|
|
||||||
add_library(3rdparty_hidapi INTERFACE)
|
|
||||||
target_link_libraries(3rdparty_hidapi INTERFACE PkgConfig::hidapi-hidraw)
|
|
||||||
target_include_directories(3rdparty_hidapi INTERFACE PkgConfig::hidapi-hidraw)
|
|
||||||
else()
|
|
||||||
set(BUILD_SHARED_LIBS FALSE CACHE BOOL "Don't build shared libs")
|
|
||||||
set(HIDAPI_INSTALL_TARGETS FALSE CACHE BOOL "Don't install anything")
|
|
||||||
|
|
||||||
if(CMAKE_SYSTEM MATCHES "Linux")
|
if(CMAKE_SYSTEM MATCHES "Linux")
|
||||||
set(HIDAPI_WITH_LIBUSB FALSE CACHE BOOL "Don't build with libusb for linux")
|
set(HIDAPI_WITH_LIBUSB FALSE CACHE BOOL "Don't build with libusb for linux")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(3rdparty_hidapi INTERFACE)
|
add_library(3rdparty_hidapi INTERFACE)
|
||||||
add_subdirectory(hidapi EXCLUDE_FROM_ALL)
|
add_subdirectory(hidapi EXCLUDE_FROM_ALL)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
target_link_libraries(3rdparty_hidapi INTERFACE hidapi_darwin "-framework CoreFoundation" "-framework IOKit")
|
target_link_libraries(3rdparty_hidapi INTERFACE hidapi_darwin "-framework CoreFoundation" "-framework IOKit")
|
||||||
elseif(CMAKE_SYSTEM MATCHES "Linux")
|
elseif(CMAKE_SYSTEM MATCHES "Linux")
|
||||||
target_link_libraries(3rdparty_hidapi INTERFACE hidapi-hidraw udev)
|
target_link_libraries(3rdparty_hidapi INTERFACE hidapi-hidraw udev)
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
target_link_libraries(3rdparty_hidapi INTERFACE hidapi::hidapi hidapi::include Shlwapi.lib)
|
target_link_libraries(3rdparty_hidapi INTERFACE hidapi::hidapi hidapi::include Shlwapi.lib)
|
||||||
elseif(ANDROID)
|
elseif(ANDROID)
|
||||||
target_link_libraries(3rdparty_hidapi INTERFACE hidapi::libusb)
|
target_link_libraries(3rdparty_hidapi INTERFACE hidapi::libusb)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(3rdparty_hidapi INTERFACE hidapi-libusb usb)
|
target_link_libraries(3rdparty_hidapi INTERFACE hidapi-libusb usb)
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
2
3rdparty/hidapi/hidapi
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit d6b2a974608dec3b76fb1e36c189f22b9cf3650c
|
Subproject commit f42423643ec9011c98cccc0bb790722bbbd3f30b
|
||||||
2
3rdparty/libpng/libpng
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 49363adcfaf098748d7a4c8c624ad8c45a8c3a86
|
Subproject commit ea127968204cc5d10f3fc9250c306b9e8cbd9b80
|
||||||
2
3rdparty/libsdl-org/SDL
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 7f3ae3d57459e59943a4ecfefc8f6277ec6bf540
|
Subproject commit 8d604353a53853fa56d1bdce0363535605ca868f
|
||||||
1
3rdparty/libsdl-org/SDL.vcxproj
vendored
|
|
@ -384,6 +384,7 @@
|
||||||
<ClCompile Include="SDL\src\render\opengl\SDL_shaders_gl.c" />
|
<ClCompile Include="SDL\src\render\opengl\SDL_shaders_gl.c" />
|
||||||
<ClCompile Include="SDL\src\render\opengles2\SDL_render_gles2.c" />
|
<ClCompile Include="SDL\src\render\opengles2\SDL_render_gles2.c" />
|
||||||
<ClCompile Include="SDL\src\render\opengles2\SDL_shaders_gles2.c" />
|
<ClCompile Include="SDL\src\render\opengles2\SDL_shaders_gles2.c" />
|
||||||
|
<ClCompile Include="SDL\src\render\SDL_d3dmath.c" />
|
||||||
<ClCompile Include="SDL\src\render\SDL_render.c" />
|
<ClCompile Include="SDL\src\render\SDL_render.c" />
|
||||||
<ClCompile Include="SDL\src\render\SDL_render_unsupported.c" />
|
<ClCompile Include="SDL\src\render\SDL_render_unsupported.c" />
|
||||||
<ClCompile Include="SDL\src\render\SDL_yuv_sw.c" />
|
<ClCompile Include="SDL\src\render\SDL_yuv_sw.c" />
|
||||||
|
|
|
||||||
6
3rdparty/libsdl-org/SDL.vcxproj.filters
vendored
|
|
@ -172,6 +172,9 @@
|
||||||
<Filter Include="render\direct3d12">
|
<Filter Include="render\direct3d12">
|
||||||
<UniqueIdentifier>{f48c2b17-1bee-4fec-a7c8-24cf619abe08}</UniqueIdentifier>
|
<UniqueIdentifier>{f48c2b17-1bee-4fec-a7c8-24cf619abe08}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="video\intrin">
|
||||||
|
<UniqueIdentifier>{653672cc-90ae-4eba-a256-6479f2c31804}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
<Filter Include="main">
|
<Filter Include="main">
|
||||||
<UniqueIdentifier>{00001967ea2801028a046a722a070000}</UniqueIdentifier>
|
<UniqueIdentifier>{00001967ea2801028a046a722a070000}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
|
@ -1457,6 +1460,9 @@
|
||||||
<ClCompile Include="SDL\src\sensor\windows\SDL_windowssensor.c">
|
<ClCompile Include="SDL\src\sensor\windows\SDL_windowssensor.c">
|
||||||
<Filter>sensor\windows</Filter>
|
<Filter>sensor\windows</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="SDL\src\render\SDL_d3dmath.c">
|
||||||
|
<Filter>render</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="SDL\src\render\SDL_render.c">
|
<ClCompile Include="SDL\src\render\SDL_render.c">
|
||||||
<Filter>render</Filter>
|
<Filter>render</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
|
||||||
2
3rdparty/libusb/libusb
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 15a7ebb4d426c5ce196684347d2b7cafad862626
|
Subproject commit a61afe5f75d969c4561a1d0ad753aa23cee6329a
|
||||||
6
3rdparty/llvm/CMakeLists.txt
vendored
|
|
@ -66,10 +66,12 @@ if(WITH_LLVM)
|
||||||
find_package(LLVM CONFIG)
|
find_package(LLVM CONFIG)
|
||||||
|
|
||||||
if (NOT LLVM_FOUND)
|
if (NOT LLVM_FOUND)
|
||||||
message(FATAL_ERROR "Can't find LLVM libraries from the CMAKE_PREFIX_PATH path or LLVM_DIR. Enable BUILD_LLVM option to build LLVM from included as a git submodule.")
|
message(FATAL_ERROR "Can't find LLVM libraries from the CMAKE_PREFIX_PATH path or LLVM_DIR. \
|
||||||
|
Enable BUILD_LLVM option to build LLVM from included as a git submodule.")
|
||||||
endif()
|
endif()
|
||||||
if (LLVM_VERSION VERSION_LESS 18)
|
if (LLVM_VERSION VERSION_LESS 18)
|
||||||
message(FATAL_ERROR "Found LLVM version ${LLVM_VERSION}. Required version 18 or above. Enable BUILD_LLVM option to build LLVM from included as a git submodule.")
|
message(FATAL_ERROR "Found LLVM version ${LLVM_VERSION}. Required version 18 or above. \
|
||||||
|
Enable BUILD_LLVM option to build LLVM from included as a git submodule.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
||||||
27
3rdparty/miniupnp/CMakeLists.txt
vendored
|
|
@ -1,21 +1,8 @@
|
||||||
if(USE_SYSTEM_MINIUPNPC)
|
option (UPNPC_BUILD_STATIC "Build static library" TRUE)
|
||||||
message(STATUS "RPCS3: using shared MiniUPnPc")
|
option (UPNPC_BUILD_SHARED "Build shared library" FALSE)
|
||||||
pkg_check_modules(MiniUPnPc REQUIRED IMPORTED_TARGET miniupnpc>=2.3.3)
|
option (UPNPC_BUILD_TESTS "Build test executables" FALSE)
|
||||||
add_library(3rdparty_miniupnpc INTERFACE)
|
option (UPNPC_BUILD_SAMPLE "Build sample executables" FALSE)
|
||||||
target_link_libraries(3rdparty_miniupnpc INTERFACE PkgConfig::MiniUPnPc)
|
option (NO_GETADDRINFO "Define NO_GETADDRINFO" FALSE)
|
||||||
target_include_directories(3rdparty_miniupnpc INTERFACE PkgConfig::MiniUPnPc)
|
option (UPNPC_NO_INSTALL "Disable installation" TRUE)
|
||||||
list(TRANSFORM MiniUPnPc_INCLUDE_DIRS APPEND "/miniupnpc")
|
|
||||||
target_include_directories(3rdparty_miniupnpc INTERFACE ${MiniUPnPc_INCLUDE_DIRS})
|
|
||||||
else()
|
|
||||||
option (UPNPC_BUILD_STATIC "Build static library" TRUE)
|
|
||||||
option (UPNPC_BUILD_SHARED "Build shared library" FALSE)
|
|
||||||
option (UPNPC_BUILD_TESTS "Build test executables" FALSE)
|
|
||||||
option (UPNPC_BUILD_SAMPLE "Build sample executables" FALSE)
|
|
||||||
option (NO_GETADDRINFO "Define NO_GETADDRINFO" FALSE)
|
|
||||||
option (UPNPC_NO_INSTALL "Disable installation" TRUE)
|
|
||||||
|
|
||||||
add_subdirectory(miniupnp/miniupnpc EXCLUDE_FROM_ALL)
|
add_subdirectory(miniupnp/miniupnpc EXCLUDE_FROM_ALL)
|
||||||
add_library(3rdparty_miniupnpc INTERFACE)
|
|
||||||
target_link_libraries(3rdparty_miniupnpc INTERFACE libminiupnpc-static)
|
|
||||||
target_include_directories(3rdparty_miniupnpc INTERFACE libminiupnpc-static)
|
|
||||||
endif()
|
|
||||||
|
|
|
||||||
2
3rdparty/opencv/opencv
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 67f53c26a701c2aeefd8033ec2f2079e04c438ca
|
Subproject commit f76628fb5b25746fcb75a7ce85be0d8c6439fc57
|
||||||
5
3rdparty/qt6.cmake
vendored
|
|
@ -6,15 +6,14 @@ find_package(Qt6 ${QT_MIN_VER} CONFIG COMPONENTS Widgets Concurrent Multimedia M
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_link_libraries(3rdparty_qt6 INTERFACE Qt6::Widgets Qt6::Concurrent Qt6::Multimedia Qt6::MultimediaWidgets Qt6::Svg Qt6::SvgWidgets)
|
target_link_libraries(3rdparty_qt6 INTERFACE Qt6::Widgets Qt6::Concurrent Qt6::Multimedia Qt6::MultimediaWidgets Qt6::Svg Qt6::SvgWidgets)
|
||||||
else()
|
else()
|
||||||
set(QT_NO_PRIVATE_MODULE_WARNING ON)
|
find_package(Qt6 ${QT_MIN_VER} COMPONENTS DBus Gui)
|
||||||
find_package(Qt6 ${QT_MIN_VER} COMPONENTS DBus Gui GuiPrivate)
|
|
||||||
if(Qt6DBus_FOUND)
|
if(Qt6DBus_FOUND)
|
||||||
target_link_libraries(3rdparty_qt6 INTERFACE Qt6::Widgets Qt6::DBus Qt6::Concurrent Qt6::Multimedia Qt6::MultimediaWidgets Qt6::Svg Qt6::SvgWidgets)
|
target_link_libraries(3rdparty_qt6 INTERFACE Qt6::Widgets Qt6::DBus Qt6::Concurrent Qt6::Multimedia Qt6::MultimediaWidgets Qt6::Svg Qt6::SvgWidgets)
|
||||||
target_compile_definitions(3rdparty_qt6 INTERFACE -DHAVE_QTDBUS)
|
target_compile_definitions(3rdparty_qt6 INTERFACE -DHAVE_QTDBUS)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(3rdparty_qt6 INTERFACE Qt6::Widgets Qt6::Concurrent Qt6::Multimedia Qt6::MultimediaWidgets Qt6::Svg Qt6::SvgWidgets)
|
target_link_libraries(3rdparty_qt6 INTERFACE Qt6::Widgets Qt6::Concurrent Qt6::Multimedia Qt6::MultimediaWidgets Qt6::Svg Qt6::SvgWidgets)
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(3rdparty_qt6 INTERFACE Qt6::GuiPrivate)
|
target_include_directories(3rdparty_qt6 INTERFACE ${Qt6Gui_PRIVATE_INCLUDE_DIRS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(Qt6Widgets_FOUND)
|
if(Qt6Widgets_FOUND)
|
||||||
|
|
|
||||||
16
3rdparty/rtmidi/CMakeLists.txt
vendored
|
|
@ -1,12 +1,4 @@
|
||||||
if(USE_SYSTEM_RTMIDI)
|
option(RTMIDI_API_JACK "Compile with JACK support." OFF)
|
||||||
message(STATUS "RPCS3: using shared RtMidi")
|
option(RTMIDI_BUILD_TESTING "Build test programs" OFF)
|
||||||
pkg_check_modules(RtMidi REQUIRED IMPORTED_TARGET rtmidi>=6.0.0)
|
set(RTMIDI_TARGETNAME_UNINSTALL "uninstall-rpcs3-rtmidi")
|
||||||
add_library(rtmidi INTERFACE)
|
add_subdirectory(rtmidi EXCLUDE_FROM_ALL)
|
||||||
target_link_libraries(rtmidi INTERFACE PkgConfig::RtMidi)
|
|
||||||
target_include_directories(rtmidi INTERFACE PkgConfig::RtMidi)
|
|
||||||
else()
|
|
||||||
option(RTMIDI_API_JACK "Compile with JACK support." OFF)
|
|
||||||
option(RTMIDI_BUILD_TESTING "Build test programs" OFF)
|
|
||||||
set(RTMIDI_TARGETNAME_UNINSTALL "uninstall-rpcs3-rtmidi")
|
|
||||||
add_subdirectory(rtmidi EXCLUDE_FROM_ALL)
|
|
||||||
endif()
|
|
||||||
|
|
|
||||||
16
3rdparty/version_check.sh
vendored
|
|
@ -39,14 +39,13 @@ check_tags()
|
||||||
|
|
||||||
echo "Checking $path"
|
echo "Checking $path"
|
||||||
|
|
||||||
git_call fetch --prune --all
|
# git_call fetch --prune --all
|
||||||
|
|
||||||
# Get the latest tag (by commit date, not tag name)
|
# Get the latest tag (by commit date, not tag name)
|
||||||
local tag_list=$(git_call rev-list --tags --max-count=1)
|
local tag_list=$(git_call rev-list --tags --max-count=1)
|
||||||
local latest_tag=$(git_call describe --tags "$tag_list")
|
local latest_tag=$(git_call describe --tags "$tag_list")
|
||||||
local highest_tag=$(git_call tag -l | sort -V | tail -n1)
|
|
||||||
|
|
||||||
if [ -n "$latest_tag" ] || [ -n "$highest_tag" ]; then
|
if [ -n "$latest_tag" ]; then
|
||||||
|
|
||||||
# Get the current tag
|
# Get the current tag
|
||||||
local current_tag=$(git_call describe --tags --abbrev=0)
|
local current_tag=$(git_call describe --tags --abbrev=0)
|
||||||
|
|
@ -54,29 +53,28 @@ check_tags()
|
||||||
if [ -n "$current_tag" ]; then
|
if [ -n "$current_tag" ]; then
|
||||||
|
|
||||||
if [ "$verbose" -eq 1 ]; then
|
if [ "$verbose" -eq 1 ]; then
|
||||||
echo "$path -> latest: $latest_tag, highest: $highest_tag, current: $current_tag"
|
echo "$path -> latest: $latest_tag, current: $current_tag"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local ts0=$(git_call log -1 --format=%ct $highest_tag)
|
|
||||||
local ts1=$(git_call log -1 --format=%ct $latest_tag)
|
local ts1=$(git_call log -1 --format=%ct $latest_tag)
|
||||||
local ts2=$(git_call log -1 --format=%ct $current_tag)
|
local ts2=$(git_call log -1 --format=%ct $current_tag)
|
||||||
|
|
||||||
if (( ts0 > ts2 )) || (( ts1 > ts2 )); then
|
if (( ts1 > ts2 )); then
|
||||||
if [ "$verbose" -eq 1 ]; then
|
if [ "$verbose" -eq 1 ]; then
|
||||||
echo -e "\t $path: latest is newer"
|
echo -e "\t $path: latest is newer"
|
||||||
elif [ "$verbose" -eq 0 ]; then
|
elif [ "$verbose" -eq 0 ]; then
|
||||||
echo "$path -> latest: $latest_tag, highest: $highest_tag, current: $current_tag"
|
echo "$path -> latest: $latest_tag, current: $current_tag"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Critical section guarded by flock
|
# Critical section guarded by flock
|
||||||
(
|
(
|
||||||
flock 200
|
flock 200
|
||||||
echo "$path -> latest: $latest_tag, highest: $highest_tag, current: $current_tag" >> "$resultfile"
|
echo "$path -> latest: $latest_tag, current: $current_tag" >> "$resultfile"
|
||||||
) 200>"$lockfile"
|
) 200>"$lockfile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif [ "$verbose" -eq 1 ]; then
|
elif [ "$verbose" -eq 1 ]; then
|
||||||
echo "$path -> latest: $latest_tag, highest: $highest_tag"
|
echo "$path -> latest: $latest_tag"
|
||||||
fi
|
fi
|
||||||
elif [ "$verbose" -eq 1 ]; then
|
elif [ "$verbose" -eq 1 ]; then
|
||||||
|
|
||||||
|
|
|
||||||
22
3rdparty/zstd/CMakeLists.txt
vendored
|
|
@ -1,16 +1,8 @@
|
||||||
if(USE_SYSTEM_ZSTD)
|
option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF)
|
||||||
message(STATUS "RPCS3: using shared zstd")
|
option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" OFF)
|
||||||
pkg_check_modules(zstd REQUIRED IMPORTED_TARGET libzstd)
|
option(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON)
|
||||||
add_library(3rdparty_zstd INTERFACE)
|
option(ZSTD_BUILD_TESTS "BUILD TESTS" OFF)
|
||||||
target_link_libraries(3rdparty_zstd INTERFACE PkgConfig::zstd)
|
|
||||||
target_include_directories(3rdparty_zstd INTERFACE PkgConfig::RtMidi)
|
|
||||||
else()
|
|
||||||
option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF)
|
|
||||||
option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" OFF)
|
|
||||||
option(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON)
|
|
||||||
option(ZSTD_BUILD_TESTS "BUILD TESTS" OFF)
|
|
||||||
|
|
||||||
add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL)
|
add_subdirectory(zstd/build/cmake EXLUDE_FROM_ALL)
|
||||||
add_library(3rdparty_zstd INTERFACE)
|
add_library(3rdparty_zstd INTERFACE)
|
||||||
target_link_libraries(3rdparty_zstd INTERFACE libzstd_static)
|
target_link_libraries(3rdparty_zstd INTERFACE libzstd_static)
|
||||||
endif()
|
|
||||||
|
|
|
||||||
15
BUILDING.md
|
|
@ -8,38 +8,37 @@ Other instructions may be found [here](https://wiki.rpcs3.net/index.php?title=Bu
|
||||||
### Windows 10 or later
|
### Windows 10 or later
|
||||||
|
|
||||||
The following tools are required to build RPCS3 on Windows 10 or later:
|
The following tools are required to build RPCS3 on Windows 10 or later:
|
||||||
- [Visual Studio 2022/2026](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community)
|
- [Visual Studio 2022](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community)
|
||||||
- **Optional** - [CMake 3.28.0+](https://www.cmake.org/download/) (add to PATH)
|
- **Optional** - [CMake 3.28.0+](https://www.cmake.org/download/) (add to PATH)
|
||||||
|
|
||||||
**NOTES:**
|
**NOTES:**
|
||||||
- **Visual Studio 2026** needs at least **CMake 4.2.0+**.
|
- **Visual Studio 2022** integrates **CMake 3.29+** and it also supports both the `sln` solution (`.sln`, `.vcxproj`) and `CMake` solution (`CMakeLists.txt`, `CMakePresets.json`).
|
||||||
- **Visual Studio 2022/2026** integrates **CMake 3.29+** and it also supports both the `sln` solution (`.sln`, `.vcxproj`) and `CMake` solution (`CMakeLists.txt`, `CMakePresets.json`).
|
|
||||||
See sections [Building with Visual Studio sln solution](#building-with-visual-studio-sln-solution) and [Building with Visual Studio CMake solution](#building-with-visual-studio-cmake-solution)
|
See sections [Building with Visual Studio sln solution](#building-with-visual-studio-sln-solution) and [Building with Visual Studio CMake solution](#building-with-visual-studio-cmake-solution)
|
||||||
on how to build the project with **Visual Studio**.
|
on how to build the project with **Visual Studio**.
|
||||||
- Install and use this standalone **CMake** tool just in case of your preference. See section [Building with standalone CMake tool](#building-with-standalone-cmake-tool) on how to build the project
|
- Install and use this standalone **CMake** tool just in case of your preference. See section [Building with standalone CMake tool](#building-with-standalone-cmake-tool) on how to build the project
|
||||||
with standalone **CMake** tool.
|
with standalone **CMake** tool.
|
||||||
|
|
||||||
- [Python 3.6+](https://www.python.org/downloads/) (add to PATH)
|
- [Python 3.6+](https://www.python.org/downloads/) (add to PATH)
|
||||||
- [Qt 6.10.1](https://www.qt.io/download-qt-installer) In case you can't download from the official installer, you can use [Another Qt installer](https://github.com/miurahr/aqtinstall) (In that case you will need to manually add the "qtmultimedia" module when installing Qt)
|
- [Qt 6.9.0](https://www.qt.io/download-qt-installer) In case you can't download from the official installer, you can use [Another Qt installer](https://github.com/miurahr/aqtinstall) (In that case you will need to manually add the "qtmultimedia" module when installing Qt)
|
||||||
- [Vulkan SDK 1.3.268.0](https://vulkan.lunarg.com/sdk/home) (see "Install the SDK" [here](https://vulkan.lunarg.com/doc/sdk/latest/windows/getting_started.html)) for now future SDKs don't work. You need precisely 1.3.268.0.
|
- [Vulkan SDK 1.3.268.0](https://vulkan.lunarg.com/sdk/home) (see "Install the SDK" [here](https://vulkan.lunarg.com/doc/sdk/latest/windows/getting_started.html)) for now future SDKs don't work. You need precisely 1.3.268.0.
|
||||||
|
|
||||||
The `sln` solution available only on **Visual Studio** is the preferred building solution. It easily allows to build the **RPCS3** application in `Release` and `Debug` mode.
|
The `sln` solution available only on **Visual Studio** is the preferred building solution. It easily allows to build the **RPCS3** application in `Release` and `Debug` mode.
|
||||||
|
|
||||||
In order to build **RPCS3** with the `sln` solution (with **Visual Studio**), **Qt** libs need to be detected. To detect the libs:
|
In order to build **RPCS3** with the `sln` solution (with **Visual Studio**), **Qt** libs need to be detected. To detect the libs:
|
||||||
- add and set the `QTDIR` environment variable, e.g. `<QtInstallFolder>\6.10.1\msvc2022_64\`
|
- add and set the `QTDIR` environment variable, e.g. `<QtInstallFolder>\6.9.0\msvc2022_64\`
|
||||||
- or use the [Visual Studio Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2022)
|
- or use the [Visual Studio Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2022)
|
||||||
|
|
||||||
**NOTE:** If you have issues with the **Visual Studio Qt Plugin**, you may want to uninstall it and install the [Legacy Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.LEGACYQtVisualStudioTools2022) instead.
|
**NOTE:** If you have issues with the **Visual Studio Qt Plugin**, you may want to uninstall it and install the [Legacy Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.LEGACYQtVisualStudioTools2022) instead.
|
||||||
|
|
||||||
In order to build **RPCS3** with the `CMake` solution (with both **Visual Studio** and standalone **CMake** tool):
|
In order to build **RPCS3** with the `CMake` solution (with both **Visual Studio** and standalone **CMake** tool):
|
||||||
- add and set the `Qt6_ROOT` environment variable to the **Qt** libs path, e.g. `<QtInstallFolder>\6.10.1\msvc2022_64\`
|
- add and set the `Qt6_ROOT` environment variable to the **Qt** libs path, e.g. `<QtInstallFolder>\6.9.0\msvc2022_64\`
|
||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
These are the essentials tools to build RPCS3 on Linux. Some of them can be installed through your favorite package manager:
|
These are the essentials tools to build RPCS3 on Linux. Some of them can be installed through your favorite package manager:
|
||||||
- Clang 17+ or GCC 13+
|
- Clang 17+ or GCC 13+
|
||||||
- [CMake 3.28.0+](https://www.cmake.org/download/)
|
- [CMake 3.28.0+](https://www.cmake.org/download/)
|
||||||
- [Qt 6.10.1](https://www.qt.io/download-qt-installer)
|
- [Qt 6.9.0](https://www.qt.io/download-qt-installer)
|
||||||
- [Vulkan SDK 1.3.268.0](https://vulkan.lunarg.com/sdk/home) (See "Install the SDK" [here](https://vulkan.lunarg.com/doc/sdk/latest/linux/getting_started.html)) for now future SDKs don't work. You need precisely 1.3.268.0.
|
- [Vulkan SDK 1.3.268.0](https://vulkan.lunarg.com/sdk/home) (See "Install the SDK" [here](https://vulkan.lunarg.com/doc/sdk/latest/linux/getting_started.html)) for now future SDKs don't work. You need precisely 1.3.268.0.
|
||||||
- [SDL3](https://github.com/libsdl-org/SDL/releases) (for the FAudio backend)
|
- [SDL3](https://github.com/libsdl-org/SDL/releases) (for the FAudio backend)
|
||||||
|
|
||||||
|
|
@ -122,7 +121,7 @@ Start **Visual Studio**, click on `Open a project or solution` and select the `r
|
||||||
##### Configuring the Qt Plugin (if used)
|
##### Configuring the Qt Plugin (if used)
|
||||||
|
|
||||||
1) go to `Extensions->Qt VS Tools->Qt Versions`
|
1) go to `Extensions->Qt VS Tools->Qt Versions`
|
||||||
2) add the path to your Qt installation with compiler e.g. `<QtInstallFolder>\6.10.1\msvc2022_64`, version will fill in automatically
|
2) add the path to your Qt installation with compiler e.g. `<QtInstallFolder>\6.9.0\msvc2022_64`, version will fill in automatically
|
||||||
3) go to `Extensions->Qt VS Tools->Options->Legacy Project Format`. (Only available in the **Legacy Qt Plugin**)
|
3) go to `Extensions->Qt VS Tools->Options->Legacy Project Format`. (Only available in the **Legacy Qt Plugin**)
|
||||||
4) set `Build: Run pre-build setup` to `true`. (Only available in the **Legacy Qt Plugin**)
|
4) set `Build: Run pre-build setup` to `true`. (Only available in the **Legacy Qt Plugin**)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,5 @@
|
||||||
cmake_minimum_required(VERSION 3.28)
|
cmake_minimum_required(VERSION 3.28)
|
||||||
|
|
||||||
find_program(CCACHE_PATH ccache HINTS ENV PATH)
|
|
||||||
if(CCACHE_PATH)
|
|
||||||
message(STATUS "Using ccache: ${CCACHE_PATH}")
|
|
||||||
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PATH}")
|
|
||||||
set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PATH}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
project(rpcs3 LANGUAGES C CXX)
|
project(rpcs3 LANGUAGES C CXX)
|
||||||
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
@ -22,12 +15,6 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE OR WIN32)
|
|
||||||
set(USE_SYSTEM_OPENAL_DEFAULT OFF)
|
|
||||||
else()
|
|
||||||
set(USE_SYSTEM_OPENAL_DEFAULT ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
option(USE_NATIVE_INSTRUCTIONS "USE_NATIVE_INSTRUCTIONS makes rpcs3 compile with -march=native, which is useful for local builds, but not good for packages." ON)
|
option(USE_NATIVE_INSTRUCTIONS "USE_NATIVE_INSTRUCTIONS makes rpcs3 compile with -march=native, which is useful for local builds, but not good for packages." ON)
|
||||||
option(WITH_LLVM "Enable usage of LLVM library" ON)
|
option(WITH_LLVM "Enable usage of LLVM library" ON)
|
||||||
option(BUILD_LLVM "Build LLVM from git submodule" OFF)
|
option(BUILD_LLVM "Build LLVM from git submodule" OFF)
|
||||||
|
|
@ -35,34 +22,20 @@ option(STATIC_LINK_LLVM "Link against LLVM statically. This will get set to ON i
|
||||||
option(USE_FAUDIO "FAudio audio backend" ON)
|
option(USE_FAUDIO "FAudio audio backend" ON)
|
||||||
option(USE_LIBEVDEV "libevdev-based joystick support" ON)
|
option(USE_LIBEVDEV "libevdev-based joystick support" ON)
|
||||||
option(USE_DISCORD_RPC "Discord rich presence integration" OFF)
|
option(USE_DISCORD_RPC "Discord rich presence integration" OFF)
|
||||||
|
option(USE_SYSTEM_ZLIB "Prefer system ZLIB instead of the builtin one" ON)
|
||||||
option(USE_VULKAN "Vulkan render backend" ON)
|
option(USE_VULKAN "Vulkan render backend" ON)
|
||||||
option(USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
|
option(USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
|
||||||
option(USE_SDL "Enables SDL input handler" OFF)
|
option(USE_SDL "Enables SDL input handler" OFF)
|
||||||
option(USE_SYSTEM_CUBEB "Prefer system cubeb instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_CURL "Prefer system Curl instead of the prebuild one" ON)
|
|
||||||
option(USE_SYSTEM_FAUDIO "Prefer system FAudio instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_FFMPEG "Prefer system ffmpeg instead of the prebuild one" OFF)
|
|
||||||
option(USE_SYSTEM_FLATBUFFERS "Prefer system flatbuffers instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_GLSLANG "Prefer system glslang instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_HIDAPI "Prefer system hidapi instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_LIBPNG "Prefer system libpng instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_LIBUSB "Prefer system libusb instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_MINIUPNPC "Prefer system MiniUPnPc instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_MVK "Prefer system MoltenVK instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_OPENAL "Prefer system OpenAL instead of the prebuild one" ${USE_SYSTEM_OPENAL_DEFAULT})
|
|
||||||
option(USE_SYSTEM_OPENCV "Prefer system OpenCV instead of the builtin one" ON)
|
|
||||||
option(USE_SYSTEM_PUGIXML "Prefer system pugixml instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_RTMIDI "Prefer system RtMidi instead of the builtin one" OFF)
|
|
||||||
option(USE_SYSTEM_SDL "Prefer system SDL instead of the builtin one" ON)
|
option(USE_SYSTEM_SDL "Prefer system SDL instead of the builtin one" ON)
|
||||||
option(USE_SYSTEM_VULKAN_MEMORY_ALLOCATOR "Prefer system Vulkan Memory Allocator instead of the builtin one" OFF)
|
option(USE_SYSTEM_FFMPEG "Prefer system ffmpeg instead of the prebuild one" OFF)
|
||||||
option(USE_SYSTEM_WOLFSSL "Prefer system wolfSSL instead of the builtin one" OFF)
|
option(USE_SYSTEM_OPENAL "Prefer system OpenAL instead of the prebuild one" ON)
|
||||||
option(USE_SYSTEM_ZLIB "Prefer system ZLIB instead of the builtin one" ON)
|
option(USE_SYSTEM_CURL "Prefer system Curl instead of the prebuild one" ON)
|
||||||
option(USE_SYSTEM_ZSTD "Prefer system zstd instead of the builtin one" OFF)
|
option(USE_SYSTEM_OPENCV "Prefer system OpenCV instead of the builtin one" ON)
|
||||||
|
option(USE_SYSTEM_CUBEB "Prefer system cubeb instead of the builtin one" OFF)
|
||||||
option(HAS_MEMORY_BREAKPOINTS "Add support for memory breakpoints to the interpreter" OFF)
|
option(HAS_MEMORY_BREAKPOINTS "Add support for memory breakpoints to the interpreter" OFF)
|
||||||
option(USE_LTO "Use LTO for building" ON)
|
option(USE_LTO "Use LTO for building" ON)
|
||||||
option(BUILD_RPCS3_TESTS "Build RPCS3 unit tests." OFF)
|
option(BUILD_RPCS3_TESTS "Build RPCS3 unit tests." OFF)
|
||||||
option(RUN_RPCS3_TESTS "Run RPCS3 unit tests. Requires BUILD_RPCS3_TESTS" OFF)
|
option(RUN_RPCS3_TESTS "Run RPCS3 unit tests. Requires BUILD_RPCS3_TESTS" OFF)
|
||||||
option(USE_GAMEMODE "Choose whether to enable GameMode features or not." ON)
|
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/buildfiles/cmake")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/buildfiles/cmake")
|
||||||
|
|
||||||
|
|
@ -133,7 +106,12 @@ if(MSVC)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
|
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
message(FATAL_ERROR "RPCS3 can only be compiled on 64-bit platforms.")
|
message( FATAL_ERROR "RPCS3 can only be compiled on 64-bit platforms." )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(CCACHE_FOUND ccache)
|
||||||
|
if(CCACHE_FOUND)
|
||||||
|
set(CMAKE_CXX_COMPILER_LAUNCHER ccache)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE AND CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
|
if(APPLE AND CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
|
||||||
|
|
@ -165,14 +143,6 @@ if(NOT WIN32)
|
||||||
add_compile_options(-pthread)
|
add_compile_options(-pthread)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
## Look for Gamemode if its installed on Linux
|
|
||||||
if(LINUX)
|
|
||||||
## User chooses whether to Enable GameMode features or not
|
|
||||||
if(USE_GAMEMODE)
|
|
||||||
add_compile_definitions(GAMEMODE_AVAILABLE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# TODO: do real installation, including copying directory structure
|
# TODO: do real installation, including copying directory structure
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}/bin")
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}/bin")
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}/bin")
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}/bin")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
RPCS3
|
RPCS3
|
||||||
=====
|
=====
|
||||||
|
|
||||||
|
[](https://cirrus-ci.com/github/RPCS3/rpcs3)
|
||||||
[](https://github.com/RPCS3/rpcs3/actions/workflows/rpcs3.yml)
|
[](https://github.com/RPCS3/rpcs3/actions/workflows/rpcs3.yml)
|
||||||
[](https://discord.gg/rpcs3)
|
[](https://discord.gg/rpcs3)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -166,55 +166,6 @@ bool try_to_uint64(u64* out, std::string_view value, u64 min, u64 max)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool try_to_uint128(u128* out, std::string_view value)
|
|
||||||
{
|
|
||||||
if (value.empty())
|
|
||||||
{
|
|
||||||
if (out) cfg_log.error("cfg::try_to_uint128(): called with an empty string");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
u64 result_low = 0, result_high = 0;
|
|
||||||
const char* start_high64 = value.data();
|
|
||||||
const char* end = value.data() + value.size();
|
|
||||||
|
|
||||||
if (start_high64[0] == '0' && value.size() >= 2 && (start_high64[1] == 'x' || start_high64[1] == 'X'))
|
|
||||||
{
|
|
||||||
// Hex support
|
|
||||||
start_high64 += 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* start_low64 = end - std::min<usz>(end - start_high64, 16);
|
|
||||||
|
|
||||||
// Hexadecimal-only
|
|
||||||
constexpr int base = 16;
|
|
||||||
|
|
||||||
auto ret = std::from_chars(start_low64, end, result_low, base);
|
|
||||||
|
|
||||||
if (ret.ec != std::errc() || ret.ptr != end)
|
|
||||||
{
|
|
||||||
if (out) cfg_log.error("cfg::try_to_uint128('%s'): invalid integer", value);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start_high64 == start_low64)
|
|
||||||
{
|
|
||||||
if (out) *out = result_low;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = std::from_chars(start_high64, start_low64, result_high, base);
|
|
||||||
|
|
||||||
if (ret.ec != std::errc() || ret.ptr != start_low64)
|
|
||||||
{
|
|
||||||
if (out) cfg_log.error("cfg::try_to_uint128('%s'): invalid integer", value);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (out) *out = result_low + (u128{result_high} << 64);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<std::string> cfg::make_float_range(f64 min, f64 max)
|
std::vector<std::string> cfg::make_float_range(f64 min, f64 max)
|
||||||
{
|
{
|
||||||
return {std::to_string(min), std::to_string(max)};
|
return {std::to_string(min), std::to_string(max)};
|
||||||
|
|
@ -327,19 +278,6 @@ bool cfg::try_to_enum_value(u64* out, decltype(&fmt_class_string<int>::format) f
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string cfg::uint128::to_string(u128 value) noexcept
|
|
||||||
{
|
|
||||||
std::string result = "0x";
|
|
||||||
result.resize(result.size() + 32);
|
|
||||||
|
|
||||||
for (u32 i = 0; i < 32; i++)
|
|
||||||
{
|
|
||||||
result[result.size() - 1 - i] = "0123456789ABCDEF"[static_cast<u64>(value >> (i * 4)) % 16];
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<std::string> cfg::try_to_enum_list(decltype(&fmt_class_string<int>::format) func)
|
std::vector<std::string> cfg::try_to_enum_list(decltype(&fmt_class_string<int>::format) func)
|
||||||
{
|
{
|
||||||
std::vector<std::string> result;
|
std::vector<std::string> result;
|
||||||
|
|
@ -615,12 +553,19 @@ void cfg::node::from_default()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cfg::node::restore_defaults()
|
void cfg::_bool::from_default()
|
||||||
{
|
{
|
||||||
for (auto& node : m_nodes)
|
m_value = def;
|
||||||
{
|
}
|
||||||
node->restore_defaults();
|
|
||||||
}
|
void cfg::string::from_default()
|
||||||
|
{
|
||||||
|
m_value = def;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cfg::set_entry::from_default()
|
||||||
|
{
|
||||||
|
m_set = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string cfg::map_entry::get_value(std::string_view key)
|
std::string cfg::map_entry::get_value(std::string_view key)
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,6 @@ namespace cfg
|
||||||
_enum, // cfg::_enum type
|
_enum, // cfg::_enum type
|
||||||
_int, // cfg::_int type
|
_int, // cfg::_int type
|
||||||
uint, // cfg::uint type
|
uint, // cfg::uint type
|
||||||
uint128, // cfg::uint128 type
|
|
||||||
string, // cfg::string type
|
string, // cfg::string type
|
||||||
set, // cfg::set_entry type
|
set, // cfg::set_entry type
|
||||||
map, // cfg::map_entry type
|
map, // cfg::map_entry type
|
||||||
|
|
@ -91,9 +90,6 @@ namespace cfg
|
||||||
// Reset defaults
|
// Reset defaults
|
||||||
virtual void from_default() = 0;
|
virtual void from_default() = 0;
|
||||||
|
|
||||||
// Restore default members
|
|
||||||
virtual void restore_defaults() = 0;
|
|
||||||
|
|
||||||
// Convert to string (optional)
|
// Convert to string (optional)
|
||||||
virtual std::string to_string() const
|
virtual std::string to_string() const
|
||||||
{
|
{
|
||||||
|
|
@ -155,15 +151,11 @@ namespace cfg
|
||||||
|
|
||||||
// Set default values
|
// Set default values
|
||||||
void from_default() override;
|
void from_default() override;
|
||||||
|
|
||||||
// Restore default members
|
|
||||||
void restore_defaults() override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class _bool final : public _base
|
class _bool final : public _base
|
||||||
{
|
{
|
||||||
atomic_t<bool> m_value;
|
atomic_t<bool> m_value;
|
||||||
bool original_def;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool def;
|
bool def;
|
||||||
|
|
@ -171,7 +163,6 @@ namespace cfg
|
||||||
_bool(node* owner, std::string name, bool def = false, bool dynamic = false)
|
_bool(node* owner, std::string name, bool def = false, bool dynamic = false)
|
||||||
: _base(type::_bool, owner, std::move(name), dynamic)
|
: _base(type::_bool, owner, std::move(name), dynamic)
|
||||||
, m_value(def)
|
, m_value(def)
|
||||||
, original_def(def)
|
|
||||||
, def(def)
|
, def(def)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -186,15 +177,7 @@ namespace cfg
|
||||||
return m_value;
|
return m_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void from_default() override
|
void from_default() override;
|
||||||
{
|
|
||||||
m_value = def;
|
|
||||||
}
|
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
def = original_def;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string to_string() const override
|
std::string to_string() const override
|
||||||
{
|
{
|
||||||
|
|
@ -237,16 +220,14 @@ namespace cfg
|
||||||
class _enum : public _base
|
class _enum : public _base
|
||||||
{
|
{
|
||||||
atomic_t<T> m_value;
|
atomic_t<T> m_value;
|
||||||
T original_def;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
T def;
|
const T def;
|
||||||
|
|
||||||
_enum(node* owner, const std::string& name, T def = {}, bool dynamic = false)
|
_enum(node* owner, const std::string& name, T value = {}, bool dynamic = false)
|
||||||
: _base(type::_enum, owner, name, dynamic)
|
: _base(type::_enum, owner, name, dynamic)
|
||||||
, m_value(def)
|
, m_value(value)
|
||||||
, original_def(def)
|
, def(value)
|
||||||
, def(def)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -275,11 +256,6 @@ namespace cfg
|
||||||
m_value = def;
|
m_value = def;
|
||||||
}
|
}
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
def = original_def;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string to_string() const override
|
std::string to_string() const override
|
||||||
{
|
{
|
||||||
std::string result;
|
std::string result;
|
||||||
|
|
@ -324,7 +300,6 @@ namespace cfg
|
||||||
using int_type = std::conditional_t<Min >= s32{smin} && Max <= s32{smax}, s32, s64>;
|
using int_type = std::conditional_t<Min >= s32{smin} && Max <= s32{smax}, s32, s64>;
|
||||||
|
|
||||||
atomic_t<int_type> m_value;
|
atomic_t<int_type> m_value;
|
||||||
int_type original_def;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int_type def;
|
int_type def;
|
||||||
|
|
@ -336,7 +311,6 @@ namespace cfg
|
||||||
_int(node* owner, const std::string& name, int_type def = std::min<int_type>(Max, std::max<int_type>(Min, 0)), bool dynamic = false)
|
_int(node* owner, const std::string& name, int_type def = std::min<int_type>(Max, std::max<int_type>(Min, 0)), bool dynamic = false)
|
||||||
: _base(type::_int, owner, name, dynamic)
|
: _base(type::_int, owner, name, dynamic)
|
||||||
, m_value(def)
|
, m_value(def)
|
||||||
, original_def(def)
|
|
||||||
, def(def)
|
, def(def)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -356,11 +330,6 @@ namespace cfg
|
||||||
m_value = def;
|
m_value = def;
|
||||||
}
|
}
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
def = original_def;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string to_string() const override
|
std::string to_string() const override
|
||||||
{
|
{
|
||||||
return std::to_string(m_value);
|
return std::to_string(m_value);
|
||||||
|
|
@ -403,7 +372,6 @@ namespace cfg
|
||||||
|
|
||||||
using float_type = f64;
|
using float_type = f64;
|
||||||
atomic_t<float_type> m_value;
|
atomic_t<float_type> m_value;
|
||||||
float_type original_def;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
float_type def;
|
float_type def;
|
||||||
|
|
@ -415,7 +383,6 @@ namespace cfg
|
||||||
_float(node* owner, const std::string& name, float_type def = std::min<float_type>(Max, std::max<float_type>(Min, 0)), bool dynamic = false)
|
_float(node* owner, const std::string& name, float_type def = std::min<float_type>(Max, std::max<float_type>(Min, 0)), bool dynamic = false)
|
||||||
: _base(type::_int, owner, name, dynamic)
|
: _base(type::_int, owner, name, dynamic)
|
||||||
, m_value(def)
|
, m_value(def)
|
||||||
, original_def(def)
|
|
||||||
, def(def)
|
, def(def)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -435,11 +402,6 @@ namespace cfg
|
||||||
m_value = def;
|
m_value = def;
|
||||||
}
|
}
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
def = original_def;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string to_string() const override
|
std::string to_string() const override
|
||||||
{
|
{
|
||||||
std::string result;
|
std::string result;
|
||||||
|
|
@ -502,7 +464,6 @@ namespace cfg
|
||||||
using int_type = std::conditional_t<Max <= u32{umax}, u32, u64>;
|
using int_type = std::conditional_t<Max <= u32{umax}, u32, u64>;
|
||||||
|
|
||||||
atomic_t<int_type> m_value;
|
atomic_t<int_type> m_value;
|
||||||
int_type original_def;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int_type def;
|
int_type def;
|
||||||
|
|
@ -514,7 +475,6 @@ namespace cfg
|
||||||
uint(node* owner, const std::string& name, int_type def = std::max<int_type>(Min, 0), bool dynamic = false)
|
uint(node* owner, const std::string& name, int_type def = std::max<int_type>(Min, 0), bool dynamic = false)
|
||||||
: _base(type::uint, owner, name, dynamic)
|
: _base(type::uint, owner, name, dynamic)
|
||||||
, m_value(def)
|
, m_value(def)
|
||||||
, original_def(def)
|
|
||||||
, def(def)
|
, def(def)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -534,11 +494,6 @@ namespace cfg
|
||||||
m_value = def;
|
m_value = def;
|
||||||
}
|
}
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
def = original_def;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string to_string() const override
|
std::string to_string() const override
|
||||||
{
|
{
|
||||||
return std::to_string(m_value);
|
return std::to_string(m_value);
|
||||||
|
|
@ -579,91 +534,10 @@ namespace cfg
|
||||||
// Alias for 64 bit int
|
// Alias for 64 bit int
|
||||||
using uint64 = uint<0, u64{umax}>;
|
using uint64 = uint<0, u64{umax}>;
|
||||||
|
|
||||||
// Unsigned 128-bit integer entry.
|
|
||||||
class uint128 final : public _base
|
|
||||||
{
|
|
||||||
using int_type = u128;
|
|
||||||
|
|
||||||
atomic_t<int_type> m_value{};
|
|
||||||
int_type original_def = 0;
|
|
||||||
|
|
||||||
public:
|
|
||||||
int_type def;
|
|
||||||
|
|
||||||
uint128(node* owner, const std::string& name, int_type def = 0, bool dynamic = false)
|
|
||||||
: _base(type::uint128, owner, name, dynamic)
|
|
||||||
, m_value(def)
|
|
||||||
, original_def(def)
|
|
||||||
, def(def)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
operator int_type() const
|
|
||||||
{
|
|
||||||
return m_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
operator ullong() const
|
|
||||||
{
|
|
||||||
return static_cast<ullong>(m_value.load());
|
|
||||||
}
|
|
||||||
|
|
||||||
int_type get() const
|
|
||||||
{
|
|
||||||
return m_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
void from_default() override
|
|
||||||
{
|
|
||||||
m_value = def;
|
|
||||||
}
|
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
def = original_def;
|
|
||||||
}
|
|
||||||
|
|
||||||
static std::string to_string(u128 value) noexcept;
|
|
||||||
|
|
||||||
std::string to_string() const override
|
|
||||||
{
|
|
||||||
return to_string(m_value.load());
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string def_to_string() const override
|
|
||||||
{
|
|
||||||
return to_string(def);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool from_string(std::string_view value, bool /*dynamic*/ = false) override
|
|
||||||
{
|
|
||||||
u128 result;
|
|
||||||
if (try_to_uint128(&result, value))
|
|
||||||
{
|
|
||||||
m_value = result;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void set(u128 value)
|
|
||||||
{
|
|
||||||
m_value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<std::string> to_list() const override
|
|
||||||
{
|
|
||||||
// Should not be used
|
|
||||||
return make_uint_range(0, 1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Simple string entry with mutex
|
// Simple string entry with mutex
|
||||||
class string : public _base
|
class string : public _base
|
||||||
{
|
{
|
||||||
atomic_ptr<std::string> m_value;
|
atomic_ptr<std::string> m_value;
|
||||||
std::string original_def;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::string def;
|
std::string def;
|
||||||
|
|
@ -671,7 +545,6 @@ namespace cfg
|
||||||
string(node* owner, std::string name, std::string def = {}, bool dynamic = false)
|
string(node* owner, std::string name, std::string def = {}, bool dynamic = false)
|
||||||
: _base(type::string, owner, std::move(name), dynamic)
|
: _base(type::string, owner, std::move(name), dynamic)
|
||||||
, m_value(def)
|
, m_value(def)
|
||||||
, original_def(def)
|
|
||||||
, def(std::move(def))
|
, def(std::move(def))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -681,15 +554,7 @@ namespace cfg
|
||||||
return *m_value.load().get();
|
return *m_value.load().get();
|
||||||
}
|
}
|
||||||
|
|
||||||
void from_default() override
|
void from_default() override;
|
||||||
{
|
|
||||||
m_value = def;
|
|
||||||
}
|
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
def = original_def;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string to_string() const override
|
std::string to_string() const override
|
||||||
{
|
{
|
||||||
|
|
@ -730,14 +595,7 @@ namespace cfg
|
||||||
m_set = std::move(set);
|
m_set = std::move(set);
|
||||||
}
|
}
|
||||||
|
|
||||||
void from_default() override
|
void from_default() override;
|
||||||
{
|
|
||||||
m_set = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<std::string> to_list() const override
|
std::vector<std::string> to_list() const override
|
||||||
{
|
{
|
||||||
|
|
@ -778,10 +636,6 @@ namespace cfg
|
||||||
void erase(std::string_view key);
|
void erase(std::string_view key);
|
||||||
|
|
||||||
void from_default() override;
|
void from_default() override;
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class node_map_entry final : public map_entry
|
class node_map_entry final : public map_entry
|
||||||
|
|
@ -811,10 +665,6 @@ namespace cfg
|
||||||
void set_map(map_of_type<logs::level>&& map);
|
void set_map(map_of_type<logs::level>&& map);
|
||||||
|
|
||||||
void from_default() override;
|
void from_default() override;
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct device_info
|
struct device_info
|
||||||
|
|
@ -852,9 +702,5 @@ namespace cfg
|
||||||
void set_map(map_of_type<device_info>&& map);
|
void set_map(map_of_type<device_info>&& map);
|
||||||
|
|
||||||
void from_default() override;
|
void from_default() override;
|
||||||
|
|
||||||
void restore_defaults() override
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -658,11 +658,7 @@ jit_compiler::jit_compiler(const std::unordered_map<std::string, u64>& _link, co
|
||||||
std::string result;
|
std::string result;
|
||||||
|
|
||||||
auto null_mod = std::make_unique<llvm::Module> ("null_", *m_context);
|
auto null_mod = std::make_unique<llvm::Module> ("null_", *m_context);
|
||||||
#if LLVM_VERSION_MAJOR >= 21 && (LLVM_VERSION_MINOR >= 1 || LLVM_VERSION_MAJOR >= 22)
|
|
||||||
null_mod->setTargetTriple(llvm::Triple(jit_compiler::triple1()));
|
|
||||||
#else
|
|
||||||
null_mod->setTargetTriple(jit_compiler::triple1());
|
null_mod->setTargetTriple(jit_compiler::triple1());
|
||||||
#endif
|
|
||||||
|
|
||||||
std::unique_ptr<llvm::RTDyldMemoryManager> mem;
|
std::unique_ptr<llvm::RTDyldMemoryManager> mem;
|
||||||
|
|
||||||
|
|
@ -676,11 +672,7 @@ jit_compiler::jit_compiler(const std::unordered_map<std::string, u64>& _link, co
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mem = std::make_unique<MemoryManager2>(std::move(symbols_cement));
|
mem = std::make_unique<MemoryManager2>(std::move(symbols_cement));
|
||||||
#if LLVM_VERSION_MAJOR >= 21 && (LLVM_VERSION_MINOR >= 1 || LLVM_VERSION_MAJOR >= 22)
|
|
||||||
null_mod->setTargetTriple(llvm::Triple(jit_compiler::triple2()));
|
|
||||||
#else
|
|
||||||
null_mod->setTargetTriple(jit_compiler::triple2());
|
null_mod->setTargetTriple(jit_compiler::triple2());
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -393,8 +393,8 @@ namespace fmt
|
||||||
raw_throw_exception(src_loc, reinterpret_cast<const char*>(fmt), type_info_v<Args...>, fmt_args_t<Args...>{fmt_unveil<Args>::get(args)...});
|
raw_throw_exception(src_loc, reinterpret_cast<const char*>(fmt), type_info_v<Args...>, fmt_args_t<Args...>{fmt_unveil<Args>::get(args)...});
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(_MSC_VER) || defined(__clang__)
|
#ifndef _MSC_VER
|
||||||
[[noreturn]] ~throw_exception() = default;
|
[[noreturn]] ~throw_exception();
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,6 @@ bool try_to_int64(s64* out, std::string_view value, s64 min, s64 max);
|
||||||
// Convert string to unsigned integer
|
// Convert string to unsigned integer
|
||||||
bool try_to_uint64(u64* out, std::string_view value, u64 min, u64 max);
|
bool try_to_uint64(u64* out, std::string_view value, u64 min, u64 max);
|
||||||
|
|
||||||
// Convert string to unsigned int128_t
|
|
||||||
bool try_to_uint128(u128* out, std::string_view value);
|
|
||||||
|
|
||||||
// Convert string to float
|
// Convert string to float
|
||||||
bool try_to_float(f64* out, std::string_view value, f64 min, f64 max);
|
bool try_to_float(f64* out, std::string_view value, f64 min, f64 max);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -106,11 +106,6 @@ thread_local u64 g_tls_wait_fail = 0;
|
||||||
thread_local bool g_tls_access_violation_recovered = false;
|
thread_local bool g_tls_access_violation_recovered = false;
|
||||||
extern thread_local std::string(*g_tls_log_prefix)();
|
extern thread_local std::string(*g_tls_log_prefix)();
|
||||||
|
|
||||||
namespace stx
|
|
||||||
{
|
|
||||||
atomic_t<u32> g_launch_retainer{0};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Report error and call std::abort(), defined in main.cpp
|
// Report error and call std::abort(), defined in main.cpp
|
||||||
[[noreturn]] void report_fatal_error(std::string_view text, bool is_html = false, bool include_help_text = true);
|
[[noreturn]] void report_fatal_error(std::string_view text, bool is_html = false, bool include_help_text = true);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ class thread_future
|
||||||
thread_future* prev{};
|
thread_future* prev{};
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
atomic_t<void(*)(const thread_base*, thread_future*)> exec{};
|
atomic_t<void(*)(thread_base*, thread_future*)> exec{};
|
||||||
|
|
||||||
atomic_t<u32> done{0};
|
atomic_t<u32> done{0};
|
||||||
|
|
||||||
|
|
@ -374,23 +374,13 @@ private:
|
||||||
static const u64 process_affinity_mask;
|
static const u64 process_affinity_mask;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(__has_cpp_attribute)
|
|
||||||
#if __has_cpp_attribute(no_unique_address)
|
|
||||||
#define NO_UNIQUE_ADDRESS [[no_unique_address]]
|
|
||||||
#else
|
|
||||||
#define NO_UNIQUE_ADDRESS
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#define NO_UNIQUE_ADDRESS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Used internally
|
// Used internally
|
||||||
template <bool Discard, typename Ctx, typename... Args>
|
template <bool Discard, typename Ctx, typename... Args>
|
||||||
class thread_future_t : public thread_future, result_storage<Ctx, std::conditional_t<Discard, int, void>, Args...>
|
class thread_future_t : public thread_future, result_storage<Ctx, std::conditional_t<Discard, int, void>, Args...>
|
||||||
{
|
{
|
||||||
NO_UNIQUE_ADDRESS decltype(std::make_tuple(std::forward<Args>(std::declval<Args>())...)) m_args;
|
[[no_unique_address]] decltype(std::make_tuple(std::forward<Args>(std::declval<Args>())...)) m_args;
|
||||||
|
|
||||||
NO_UNIQUE_ADDRESS Ctx m_func;
|
[[no_unique_address]] Ctx m_func;
|
||||||
|
|
||||||
using future = thread_future_t;
|
using future = thread_future_t;
|
||||||
|
|
||||||
|
|
@ -399,7 +389,7 @@ public:
|
||||||
: m_args(std::forward<Args>(args)...)
|
: m_args(std::forward<Args>(args)...)
|
||||||
, m_func(std::forward<Ctx>(func))
|
, m_func(std::forward<Ctx>(func))
|
||||||
{
|
{
|
||||||
thread_future::exec.raw() = +[](const thread_base* tb, thread_future* tf)
|
thread_future::exec.raw() = +[](thread_base* tb, thread_future* tf)
|
||||||
{
|
{
|
||||||
const auto _this = static_cast<future*>(tf);
|
const auto _this = static_cast<future*>(tf);
|
||||||
|
|
||||||
|
|
@ -465,8 +455,6 @@ public:
|
||||||
namespace stx
|
namespace stx
|
||||||
{
|
{
|
||||||
struct launch_retainer;
|
struct launch_retainer;
|
||||||
|
|
||||||
extern atomic_t<u32> g_launch_retainer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Derived from the callable object Context, possibly a lambda
|
// Derived from the callable object Context, possibly a lambda
|
||||||
|
|
@ -483,11 +471,6 @@ class named_thread final : public Context, result_storage<Context>, thread_base
|
||||||
|
|
||||||
u64 entry_point2()
|
u64 entry_point2()
|
||||||
{
|
{
|
||||||
while (u32 value = stx::g_launch_retainer)
|
|
||||||
{
|
|
||||||
stx::g_launch_retainer.wait(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
thread::initialize([]()
|
thread::initialize([]()
|
||||||
{
|
{
|
||||||
if constexpr (!result::empty)
|
if constexpr (!result::empty)
|
||||||
|
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// Generic deferred routine wrapper
|
|
||||||
// Use-case is similar to "defer" statement in other languages, just invokes a callback when the object goes out of scope
|
|
||||||
|
|
||||||
#include <functional>
|
|
||||||
|
|
||||||
namespace utils
|
|
||||||
{
|
|
||||||
template <typename F>
|
|
||||||
requires std::is_invocable_v<F>
|
|
||||||
class deferred_op
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
deferred_op(F&& callback)
|
|
||||||
: m_callback(callback)
|
|
||||||
{}
|
|
||||||
|
|
||||||
~deferred_op()
|
|
||||||
{
|
|
||||||
m_callback();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
F m_callback;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -94,6 +94,8 @@ if defined BUILD_SOURCEBRANCHNAME (
|
||||||
|
|
||||||
rem // This must be a CI build
|
rem // This must be a CI build
|
||||||
|
|
||||||
|
echo SYSTEM_PULLREQUEST_SOURCEBRANCH: %SYSTEM_PULLREQUEST_SOURCEBRANCH%
|
||||||
|
|
||||||
if defined BUILD_REPOSITORY_NAME (
|
if defined BUILD_REPOSITORY_NAME (
|
||||||
echo BUILD_REPOSITORY_NAME: %BUILD_REPOSITORY_NAME%
|
echo BUILD_REPOSITORY_NAME: %BUILD_REPOSITORY_NAME%
|
||||||
) else (
|
) else (
|
||||||
|
|
@ -108,7 +110,9 @@ if defined BUILD_SOURCEBRANCHNAME (
|
||||||
|
|
||||||
rem // These environment variables are defined by CI
|
rem // These environment variables are defined by CI
|
||||||
rem // BUILD_REPOSITORY_NAME will look like "RPCS3/rpcs3"
|
rem // BUILD_REPOSITORY_NAME will look like "RPCS3/rpcs3"
|
||||||
|
rem // SYSTEM_PULLREQUEST_SOURCEBRANCH will look like "master"
|
||||||
rem // BUILD_SOURCEBRANCHNAME will look like "master"
|
rem // BUILD_SOURCEBRANCHNAME will look like "master"
|
||||||
|
rem // See https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables
|
||||||
set GIT_FULL_BRANCH=%BUILD_REPOSITORY_NAME%/%BUILD_SOURCEBRANCHNAME%
|
set GIT_FULL_BRANCH=%BUILD_REPOSITORY_NAME%/%BUILD_SOURCEBRANCHNAME%
|
||||||
echo GIT_FULL_BRANCH: !GIT_FULL_BRANCH!
|
echo GIT_FULL_BRANCH: !GIT_FULL_BRANCH!
|
||||||
|
|
||||||
|
|
@ -125,12 +129,12 @@ if defined BUILD_SOURCEBRANCHNAME (
|
||||||
rem // This must be a pull request or a build from a fork.
|
rem // This must be a pull request or a build from a fork.
|
||||||
echo Assuming pull request build
|
echo Assuming pull request build
|
||||||
|
|
||||||
if "%BUILD_SOURCEBRANCHNAME%"=="master" (
|
if "%SYSTEM_PULLREQUEST_SOURCEBRANCH%"=="master" (
|
||||||
rem // If pull request comes from a master branch, GIT_BRANCH = username/branch in order to distinguish from upstream/master
|
rem // If pull request comes from a master branch, GIT_BRANCH = username/branch in order to distinguish from upstream/master
|
||||||
for /f "tokens=1* delims=/" %%a in ("%BUILD_REPOSITORY_NAME%") do set user=%%a
|
for /f "tokens=1* delims=/" %%a in ("%BUILD_REPOSITORY_NAME%") do set user=%%a
|
||||||
set "GIT_BRANCH=!user!/%BUILD_SOURCEBRANCHNAME%"
|
set "GIT_BRANCH=!user!/%SYSTEM_PULLREQUEST_SOURCEBRANCH%"
|
||||||
) else (
|
) else (
|
||||||
set GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%
|
set GIT_BRANCH=%SYSTEM_PULLREQUEST_SOURCEBRANCH%
|
||||||
)
|
)
|
||||||
|
|
||||||
rem // Make GIT_VERSION the last commit (shortened); Don't include commit count on non-release builds
|
rem // Make GIT_VERSION the last commit (shortened); Don't include commit count on non-release builds
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,9 @@ public:
|
||||||
transactional_storage& operator=(const transactional_storage&) = delete;
|
transactional_storage& operator=(const transactional_storage&) = delete;
|
||||||
|
|
||||||
transactional_storage(transactional_storage&& other)
|
transactional_storage(transactional_storage&& other)
|
||||||
: pool(std::move(other.pool))
|
|
||||||
{
|
{
|
||||||
|
pool = std::move(other.pool);
|
||||||
|
|
||||||
std::unique_lock lock_other{other.current_mutex};
|
std::unique_lock lock_other{other.current_mutex};
|
||||||
const std::shared_ptr<T> other_current = other.current;
|
const std::shared_ptr<T> other_current = other.current;
|
||||||
other.current = nullptr;
|
other.current = nullptr;
|
||||||
|
|
|
||||||
|
|
@ -4,28 +4,24 @@ by Ani @ https://github.com/AniLeo
|
||||||
r1 (2018.02.27)
|
r1 (2018.02.27)
|
||||||
r2 (2021.08.28)
|
r2 (2021.08.28)
|
||||||
r3 (2022.08.20)
|
r3 (2022.08.20)
|
||||||
r4 (2025.09.14)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Color Scheme
|
Color Scheme
|
||||||
|
|
||||||
- Pod Programs
|
- Pod Programs
|
||||||
#8c806a
|
8c806a
|
||||||
#bd9d86
|
bd9d86
|
||||||
#c1b398
|
c1b398
|
||||||
#eadfb1
|
eadfb1
|
||||||
#ebe4d2
|
ebe4d2
|
||||||
|
|
||||||
- Light
|
- Light
|
||||||
#b3ac98
|
b3ac98
|
||||||
#aea993
|
aea993
|
||||||
|
|
||||||
- Dark
|
- Dark
|
||||||
#4d4940
|
4d4940
|
||||||
|
|
||||||
- Disabled
|
|
||||||
#828790
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -59,6 +55,31 @@ QTextEdit, QPlainTextEdit {
|
||||||
font-size: 8.50pt;
|
font-size: 8.50pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
QListWidget, QTreeWidget: Style checkboxes and rows
|
||||||
|
|
||||||
|
RPCS3: LLE/HLE Selector, Debugger
|
||||||
|
*/
|
||||||
|
QListWidget::item {
|
||||||
|
margin-top: 0.05em;
|
||||||
|
margin-bottom: 0.05em;
|
||||||
|
}
|
||||||
|
QListWidget::indicator, QTreeWidget::indicator {
|
||||||
|
border: 0.05em solid #4d4940;
|
||||||
|
}
|
||||||
|
QListWidget::indicator::unchecked, QTreeWidget::indicator::unchecked {
|
||||||
|
background-color: #b3ac98;
|
||||||
|
}
|
||||||
|
QListWidget::indicator::checked, QTreeWidget::indicator::checked {
|
||||||
|
background-color: #4d4940;
|
||||||
|
}
|
||||||
|
QListWidget::indicator::disabled, QTreeWidget::indicator::disabled {
|
||||||
|
background-color: #828790;
|
||||||
|
}
|
||||||
|
QListWidget::item::selected, QTreeWidget::item::selected {
|
||||||
|
background-color: #4d4940;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
QTableView: Style selected row
|
QTableView: Style selected row
|
||||||
|
|
||||||
|
|
@ -120,38 +141,31 @@ QTabBar::tab::selected {
|
||||||
color: #aea993;
|
color: #aea993;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Checkboxes
|
/* Checkboxes */
|
||||||
Radio Buttons
|
QCheckBox::indicator {
|
||||||
|
|
||||||
QListWidget, QTreeWidget: Style indicators (checkboxes) and selected rows
|
|
||||||
|
|
||||||
RPCS3: LLE/HLE Selector, Debugger, Game Patches
|
|
||||||
*/
|
|
||||||
QCheckBox::indicator, QListWidget::indicator, QTreeWidget::indicator {
|
|
||||||
border-radius: 0.1em;
|
border-radius: 0.1em;
|
||||||
}
|
}
|
||||||
|
/* Radio Buttons */
|
||||||
QRadioButton::indicator {
|
QRadioButton::indicator {
|
||||||
border-radius: 0.4em;
|
border-radius: 0.4em;
|
||||||
}
|
}
|
||||||
QCheckBox::indicator, QRadioButton::indicator, QListWidget::indicator, QTreeWidget::indicator {
|
/* Checkboxes and Radio Buttons */
|
||||||
|
QCheckBox::indicator, QRadioButton::indicator {
|
||||||
border: 0.05em solid #4d4940;
|
border: 0.05em solid #4d4940;
|
||||||
margin-top: 0.05em;
|
margin-top: 0.05em;
|
||||||
margin-bottom: 0.05em;
|
margin-bottom: 0.05em;
|
||||||
width: 0.8em;
|
width: 0.8em;
|
||||||
height: 0.8em;
|
height: 0.8em;
|
||||||
}
|
}
|
||||||
QCheckBox::indicator:checked, QRadioButton::indicator:checked, QListWidget::indicator::checked, QTreeWidget::indicator::checked{
|
QCheckBox::indicator:checked, QRadioButton::indicator:checked {
|
||||||
background-color: #4d4940; /* Dark */
|
background-color: #4d4940; /* Dark */
|
||||||
}
|
}
|
||||||
QCheckBox::indicator:unchecked, QRadioButton::indicator:unchecked, QListWidget::indicator::unchecked, QTreeWidget::indicator::unchecked {
|
QCheckBox::indicator:unchecked, QRadioButton::indicator:unchecked {
|
||||||
background-color: #b3ac98; /* Light */
|
background-color: #b3ac98; /* Light */
|
||||||
}
|
}
|
||||||
QCheckBox::indicator::disabled, QRadioButton::indicator::disabled, QListWidget::indicator::disabled, QTreeWidget::indicator::disabled {
|
QCheckBox::indicator::disabled, QRadioButton::indicator::disabled {
|
||||||
background-color: #828790; /* Gray */
|
background-color: #828790; /* Gray */
|
||||||
}
|
}
|
||||||
QListWidget::item::selected, QTreeWidget::item::selected {
|
|
||||||
background-color: #4d4940;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Combo Boxes, Datetime dropdown */
|
/* Combo Boxes, Datetime dropdown */
|
||||||
QComboBox, QDateTimeEdit, QLineEdit {
|
QComboBox, QDateTimeEdit, QLineEdit {
|
||||||
|
|
@ -201,7 +215,6 @@ QPushButton::disabled {
|
||||||
/* QSpinBox (Settings -> Emulator -> width/height) */
|
/* QSpinBox (Settings -> Emulator -> width/height) */
|
||||||
/* QDoubleSpinBox (Pads -> Mouse Acceleration -> x/y) */
|
/* QDoubleSpinBox (Pads -> Mouse Acceleration -> x/y) */
|
||||||
QSpinBox, QDoubleSpinBox {
|
QSpinBox, QDoubleSpinBox {
|
||||||
height: 1.50em;
|
|
||||||
background-color: #b3ac98;
|
background-color: #b3ac98;
|
||||||
}
|
}
|
||||||
QSpinBox::disabled, QDoubleSpinBox::disabled {
|
QSpinBox::disabled, QDoubleSpinBox::disabled {
|
||||||
|
|
@ -234,7 +247,6 @@ QDockWidget {
|
||||||
QDockWidget::title {
|
QDockWidget::title {
|
||||||
background: #4d4940;
|
background: #4d4940;
|
||||||
padding-top: 0.2em;
|
padding-top: 0.2em;
|
||||||
padding-left: 0.2em;
|
|
||||||
}
|
}
|
||||||
QDockWidget::close-button, QDockWidget::float-button {
|
QDockWidget::close-button, QDockWidget::float-button {
|
||||||
background-color: #b3ac98;
|
background-color: #b3ac98;
|
||||||
|
|
@ -250,7 +262,7 @@ QTabWidget::tab-bar {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Top menu bar */
|
/* Top menu bar */
|
||||||
QMenuBar#menuBar {
|
QMenuBar {
|
||||||
height:1.50em;
|
height:1.50em;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
@ -302,27 +314,12 @@ QCalendarWidget QWidget{
|
||||||
color: #4d4940;
|
color: #4d4940;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Scrollbars */
|
|
||||||
QScrollBar::handle, QTableView QScrollBar::handle {
|
|
||||||
background: #4d4940;
|
|
||||||
}
|
|
||||||
QScrollBar::handle:disabled {
|
|
||||||
background: #828790;
|
|
||||||
}
|
|
||||||
QScrollBar::add-page, QScrollBar::sub-page {
|
|
||||||
background: #8c806a;
|
|
||||||
}
|
|
||||||
QScrollBar::up-arrow, QScrollBar::down-arrow, QScrollBar::up-button:vertical, QScrollBar::down-button, QScrollBar::sub-line, QScrollBar::add-line {
|
|
||||||
background: transparent;
|
|
||||||
color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*** RPCS3 Specifics ***/
|
/*** RPCS3 Specifics ***/
|
||||||
|
|
||||||
|
|
||||||
/* Main Window, Dialogs and some Dialogs that are actually widgets */
|
/* Main Window, Dialogs and some Dialogs that are actually widgets */
|
||||||
QWidget#trophy_manager, QWidget#cg_disasm, QWidget#log_viewer, QWidget#savestate_manager, QMainWindow#main_window {
|
QWidget#trophy_manager, QWidget#cg_disasm, QWidget#log_viewer, QMainWindow#main_window {
|
||||||
border-image: url("GuiConfigs/YoRHa-background.jpg");
|
border-image: url("GuiConfigs/YoRHa-background.jpg");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M10.793 4.04298C11.1835 3.65246 11.8165 3.65246 12.207 4.04298C12.5975 4.43351 12.5975 5.06654 12.207 5.45704L7.70708 9.95704C7.31658 10.3475 6.68355 10.3475 6.29302 9.95704L1.79302 5.45704C1.40249 5.06652 1.40249 4.43351 1.79302 4.04298C2.18354 3.65246 2.81656 3.65246 3.20708 4.04298L7.00005 7.83595L10.793 4.04298Z" fill="#7E7E7E"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 448 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M10.793 4.04298C11.1835 3.65246 11.8165 3.65246 12.207 4.04298C12.5975 4.43351 12.5975 5.06654 12.207 5.45704L7.70708 9.95704C7.31658 10.3475 6.68355 10.3475 6.29302 9.95704L1.79302 5.45704C1.40249 5.06652 1.40249 4.43351 1.79302 4.04298C2.18354 3.65246 2.81656 3.65246 3.20708 4.04298L7.00005 7.83595L10.793 4.04298Z" fill="white"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 446 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M9.95698 10.793C10.3475 11.1835 10.3475 11.8165 9.95698 12.207C9.56645 12.5975 8.93343 12.5975 8.54293 12.207L4.04293 7.70706C3.65243 7.31656 3.65248 6.68353 4.04293 6.293L8.54293 1.793C8.93345 1.40248 9.56646 1.40248 9.95698 1.793C10.3475 2.18352 10.3475 2.81654 9.95698 3.20706L6.16402 7.00003L9.95698 10.793Z" fill="#7E7E7E"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 442 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M9.95698 10.793C10.3475 11.1835 10.3475 11.8165 9.95698 12.207C9.56645 12.5975 8.93343 12.5975 8.54293 12.207L4.04293 7.70706C3.65243 7.31656 3.65248 6.68353 4.04293 6.293L8.54293 1.793C8.93345 1.40248 9.56646 1.40248 9.95698 1.793C10.3475 2.18352 10.3475 2.81654 9.95698 3.20706L6.16402 7.00003L9.95698 10.793Z" fill="white"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 440 B |
|
|
@ -1,10 +0,0 @@
|
||||||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g clip-path="url(#clip0_47_46)">
|
|
||||||
<path d="M8.70711 0.792985C8.31659 0.402461 7.68357 0.402461 7.29305 0.792985C6.9026 1.18351 6.90255 1.81655 7.29305 2.20705L11.586 6.50002H1.00008C0.447775 6.50006 7.53403e-05 6.94776 7.53403e-05 7.50002C7.53403e-05 8.05224 0.447875 8.49998 1.00008 8.50002H11.586L7.29305 12.7929C6.9026 13.1835 6.90255 13.8165 7.29305 14.207C7.68355 14.5975 8.31658 14.5975 8.70711 14.207L14.7071 8.20705C15.0976 7.81652 15.0976 7.18351 14.7071 6.79299L8.70711 0.792985Z" fill="white"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_47_46">
|
|
||||||
<rect width="15" height="15" fill="white" transform="matrix(-1 0 0 1 15 0)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 747 B |
|
|
@ -1,10 +0,0 @@
|
||||||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g clip-path="url(#clip0_47_43)">
|
|
||||||
<path d="M6.29289 0.792985C6.68341 0.402461 7.31643 0.402461 7.70695 0.792985C8.0974 1.18351 8.09745 1.81655 7.70695 2.20705L3.41398 6.50002H13.9999C14.5522 6.50006 14.9999 6.94776 14.9999 7.50002C14.9999 8.05224 14.5521 8.49998 13.9999 8.50002H3.41398L7.70695 12.7929C8.0974 13.1835 8.09745 13.8165 7.70695 14.207C7.31645 14.5975 6.68342 14.5975 6.29289 14.207L0.292893 8.20705C-0.0976311 7.81652 -0.0976311 7.18351 0.292893 6.79299L6.29289 0.792985Z" fill="white"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_47_43">
|
|
||||||
<rect width="15" height="15" fill="white"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 709 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M4.04302 10.793C3.65249 11.1835 3.65249 11.8165 4.04302 12.207C4.43355 12.5975 5.06657 12.5975 5.45707 12.207L9.95707 7.70706C10.3476 7.31656 10.3475 6.68353 9.95707 6.293L5.45707 1.793C5.06655 1.40248 4.43354 1.40248 4.04302 1.793C3.65249 2.18352 3.65249 2.81654 4.04302 3.20706L7.83598 7.00003L4.04302 10.793Z" fill="#7E7E7E"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 442 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M4.04302 10.793C3.65249 11.1835 3.65249 11.8165 4.04302 12.207C4.43355 12.5975 5.06657 12.5975 5.45707 12.207L9.95707 7.70706C10.3476 7.31656 10.3475 6.68353 9.95707 6.293L5.45707 1.793C5.06655 1.40248 4.43354 1.40248 4.04302 1.793C3.65249 2.18352 3.65249 2.81654 4.04302 3.20706L7.83598 7.00003L4.04302 10.793Z" fill="white"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 440 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M10.793 9.95702C11.1835 10.3475 11.8165 10.3475 12.207 9.95702C12.5975 9.56649 12.5975 8.93346 12.207 8.54296L7.70708 4.04296C7.31658 3.65246 6.68355 3.65251 6.29302 4.04296L1.79302 8.54296C1.40249 8.93348 1.40249 9.56649 1.79302 9.95702C2.18354 10.3475 2.81656 10.3475 3.20708 9.95702L7.00005 6.16405L10.793 9.95702Z" fill="#7E7E7E"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 448 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M10.793 9.95702C11.1835 10.3475 11.8165 10.3475 12.207 9.95702C12.5975 9.56649 12.5975 8.93346 12.207 8.54296L7.70708 4.04296C7.31658 3.65246 6.68355 3.65251 6.29302 4.04296L1.79302 8.54296C1.40249 8.93348 1.40249 9.56649 1.79302 9.95702C2.18354 10.3475 2.81656 10.3475 3.20708 9.95702L7.00005 6.16405L10.793 9.95702Z" fill="white"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 446 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M11.7929 2.29289C12.1834 1.90237 12.8164 1.90237 13.207 2.29289C13.5974 2.68342 13.5975 3.31645 13.207 3.70695L5.70695 11.207C5.31645 11.5975 4.68342 11.5974 4.29289 11.207L0.792893 7.70695C0.402369 7.31643 0.402369 6.68341 0.792893 6.29289C1.18342 5.90237 1.81643 5.90237 2.20695 6.29289L4.99992 9.08586L11.7929 2.29289Z" fill="#7E7E7E"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 452 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M11.7929 2.29289C12.1834 1.90237 12.8164 1.90237 13.207 2.29289C13.5974 2.68342 13.5975 3.31645 13.207 3.70695L5.70695 11.207C5.31645 11.5975 4.68342 11.5974 4.29289 11.207L0.792893 7.70695C0.402369 7.31643 0.402369 6.68341 0.792893 6.29289C1.18342 5.90237 1.81643 5.90237 2.20695 6.29289L4.99992 9.08586L11.7929 2.29289Z" fill="white"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 450 B |
|
|
@ -1,11 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="25" height="25" rx="6" fill="#343434"/>
|
|
||||||
<g clip-path="url(#clip0_43_2)">
|
|
||||||
<path d="M17.2929 7.79289C17.6834 7.40237 18.3164 7.40237 18.7069 7.79289C19.0974 8.18342 19.0974 8.81645 18.7069 9.20695L11.207 16.707C10.8165 17.0975 10.1834 17.0974 9.79289 16.707L6.29289 13.207C5.90237 12.8164 5.90237 12.1834 6.29289 11.7929C6.68342 11.4024 7.31643 11.4024 7.70695 11.7929L10.4999 14.5859L17.2929 7.79289Z" fill="#7E7E7E"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_43_2">
|
|
||||||
<rect width="13" height="10" fill="white" transform="translate(6 7.5)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 666 B |
|
|
@ -1,11 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="25" height="25" rx="6" fill="#48B2E9"/>
|
|
||||||
<g clip-path="url(#clip0_4_14)">
|
|
||||||
<path d="M17.2929 7.79289C17.6834 7.40237 18.3164 7.40237 18.7069 7.79289C19.0974 8.18342 19.0974 8.81645 18.7069 9.20695L11.207 16.707C10.8165 17.0975 10.1834 17.0974 9.79289 16.707L6.29289 13.207C5.90237 12.8164 5.90237 12.1834 6.29289 11.7929C6.68342 11.4024 7.31643 11.4024 7.70695 11.7929L10.4999 14.5859L17.2929 7.79289Z" fill="black"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_4_14">
|
|
||||||
<rect width="13" height="10" fill="white" transform="translate(6 7.5)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 664 B |
|
|
@ -1,11 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="25" height="25" rx="6" fill="#45A4D5"/>
|
|
||||||
<g clip-path="url(#clip0_4_80)">
|
|
||||||
<path d="M17.2929 7.79289C17.6834 7.40237 18.3164 7.40237 18.7069 7.79289C19.0974 8.18342 19.0974 8.81645 18.7069 9.20695L11.207 16.707C10.8165 17.0975 10.1834 17.0974 9.79289 16.707L6.29289 13.207C5.90237 12.8164 5.90237 12.1834 6.29289 11.7929C6.68342 11.4024 7.31643 11.4024 7.70695 11.7929L10.4999 14.5859L17.2929 7.79289Z" fill="#22526A"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_4_80">
|
|
||||||
<rect width="13" height="10" fill="white" transform="translate(6 7.5)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 666 B |
|
|
@ -1,11 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="25" height="25" rx="6" fill="#4CC2FF"/>
|
|
||||||
<g clip-path="url(#clip0_4_17)">
|
|
||||||
<path d="M17.2929 7.79289C17.6834 7.40237 18.3164 7.40237 18.7069 7.79289C19.0974 8.18342 19.0974 8.81645 18.7069 9.20695L11.207 16.707C10.8165 17.0975 10.1834 17.0974 9.79289 16.707L6.29289 13.207C5.90237 12.8164 5.90237 12.1834 6.29289 11.7929C6.68342 11.4024 7.31643 11.4024 7.70695 11.7929L10.4999 14.5859L17.2929 7.79289Z" fill="black"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_4_17">
|
|
||||||
<rect width="13" height="10" fill="white" transform="translate(6 7.5)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 664 B |
|
|
@ -1,4 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x="1" y="1" width="23" height="23" rx="5" fill="#2B2B2B"/>
|
|
||||||
<rect x="1" y="1" width="23" height="23" rx="5" stroke="#4D4D4D" stroke-width="2"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 252 B |
|
|
@ -1,11 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="25" height="25" rx="6" fill="#343434"/>
|
|
||||||
<g clip-path="url(#clip0_43_5)">
|
|
||||||
<path d="M18 11.5C18.5523 11.5 19 11.9477 19 12.5C19 13.0523 18.5523 13.5 18 13.5H7C6.44771 13.5 6 13.0523 6 12.5C6 11.9477 6.44771 11.5 7 11.5H18Z" fill="#7E7E7E"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_43_5">
|
|
||||||
<rect width="13" height="2" fill="white" transform="translate(6 11.5)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 487 B |
|
|
@ -1,11 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="25" height="25" rx="6" fill="#48B2E9"/>
|
|
||||||
<g clip-path="url(#clip0_4_32)">
|
|
||||||
<path d="M18 11.5C18.5523 11.5 19 11.9477 19 12.5C19 13.0523 18.5523 13.5 18 13.5H7C6.44771 13.5 6 13.0523 6 12.5C6 11.9477 6.44771 11.5 7 11.5H18Z" fill="black"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_4_32">
|
|
||||||
<rect width="13" height="2" fill="white" transform="translate(6 11.5)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 485 B |
|
|
@ -1,11 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="25" height="25" rx="6" fill="#45A4D5"/>
|
|
||||||
<g clip-path="url(#clip0_4_83)">
|
|
||||||
<path d="M18 11.5C18.5523 11.5 19 11.9477 19 12.5C19 13.0523 18.5523 13.5 18 13.5H7C6.44771 13.5 6 13.0523 6 12.5C6 11.9477 6.44771 11.5 7 11.5H18Z" fill="#22526A"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_4_83">
|
|
||||||
<rect width="13" height="2" fill="white" transform="translate(6 11.5)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 487 B |
|
|
@ -1,11 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="25" height="25" rx="6" fill="#4CC2FF"/>
|
|
||||||
<g clip-path="url(#clip0_4_35)">
|
|
||||||
<path d="M18 11.5C18.5523 11.5 19 11.9477 19 12.5C19 13.0523 18.5523 13.5 18 13.5H7C6.44771 13.5 6 13.0523 6 12.5C6 11.9477 6.44771 11.5 7 11.5H18Z" fill="black"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_4_35">
|
|
||||||
<rect width="13" height="2" fill="white" transform="translate(6 11.5)"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 485 B |
|
|
@ -1,4 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x="1" y="1" width="23" height="23" rx="5" fill="#343434"/>
|
|
||||||
<rect x="1" y="1" width="23" height="23" rx="5" stroke="#9E9E9E" stroke-width="2"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 252 B |
|
|
@ -1,4 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x="1" y="1" width="23" height="23" rx="5" fill="#3A3A3A"/>
|
|
||||||
<rect x="1" y="1" width="23" height="23" rx="5" stroke="#525252" stroke-width="2"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 252 B |
|
|
@ -1,4 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x="1" y="1" width="23" height="23" rx="5" fill="#272727"/>
|
|
||||||
<rect x="1" y="1" width="23" height="23" rx="5" stroke="#9E9E9E" stroke-width="2"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 252 B |
|
|
@ -1,2 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 103 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M5.40772 9.05172C5.19743 9.26295 5.19743 9.60535 5.40772 9.81658C5.61801 10.0278 5.95888 10.0278 6.16915 9.81658L8.5923 7.38247C8.80259 7.17124 8.80254 6.82882 8.5923 6.61758L6.16915 4.18344C5.95887 3.9722 5.618 3.9722 5.40772 4.18344C5.19743 4.39468 5.19743 4.73709 5.40772 4.94833L7.45014 7.00003L5.40772 9.05172Z" fill="#7E7E7E"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 446 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M5.40772 9.05172C5.19743 9.26295 5.19743 9.60535 5.40772 9.81658C5.61801 10.0278 5.95888 10.0278 6.16915 9.81658L8.5923 7.38247C8.80259 7.17124 8.80254 6.82882 8.5923 6.61757L6.16915 4.18343C5.95887 3.97219 5.618 3.97219 5.40772 4.18343C5.19743 4.39467 5.19743 4.73709 5.40772 4.94833L7.45014 7.00002L5.40772 9.05172Z" fill="white"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 446 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M4.94826 5.40772C4.73703 5.19743 4.39463 5.19743 4.1834 5.40772C3.97217 5.61801 3.97217 5.95888 4.1834 6.16916L6.61751 8.59231C6.82874 8.8026 7.17116 8.80254 7.3824 8.59231L9.81655 6.16916C10.0278 5.95887 10.0278 5.61801 9.81655 5.40772C9.6053 5.19743 9.26289 5.19743 9.05165 5.40772L6.99996 7.45015L4.94826 5.40772Z" fill="#7E7E7E"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 447 B |
|
|
@ -1,3 +0,0 @@
|
||||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M4.94826 5.40772C4.73703 5.19743 4.39463 5.19743 4.1834 5.40772C3.97217 5.61801 3.97217 5.95888 4.1834 6.16915L6.61751 8.5923C6.82874 8.80259 7.17116 8.80254 7.3824 8.5923L9.81655 6.16915C10.0278 5.95887 10.0278 5.618 9.81655 5.40772C9.6053 5.19743 9.26289 5.19743 9.05165 5.40772L6.99996 7.45014L4.94826 5.40772Z" fill="white"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 442 B |
|
|
@ -1,4 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x="3" y="3" width="19" height="19" rx="9.5" fill="#7E7E7E"/>
|
|
||||||
<rect x="3" y="3" width="19" height="19" rx="9.5" stroke="#343434" stroke-width="6"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 256 B |
|
|
@ -1,4 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x="2" y="2" width="21" height="21" rx="10.5" fill="black"/>
|
|
||||||
<rect x="2" y="2" width="21" height="21" rx="10.5" stroke="#48B2E9" stroke-width="4"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 256 B |
|
|
@ -1,5 +0,0 @@
|
||||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect x="3.5" y="3.5" width="18" height="18" rx="9" fill="black"/>
|
|
||||||
<rect x="3.5" y="3.5" width="18" height="18" rx="9" stroke="#45A4D5" stroke-width="7"/>
|
|
||||||
<circle cx="12.5" cy="12.5" r="9" fill="black" stroke="#45A4D5" stroke-width="7"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 341 B |