Compare commits

...

725 Commits

Author SHA1 Message Date
Megamouse f85add8776 install 2025-07-15 09:33:38 +02:00
Megamouse 73bea0cfc6 deploy with windeployqt after all 2025-07-13 17:42:38 +02:00
Megamouse e09ceb4f18 cache 2025-07-13 17:42:38 +02:00
Megamouse 47661ac2ef Deploy 2025-07-13 17:42:38 +02:00
Megamouse e1461067eb Deploy 2025-07-13 17:42:38 +02:00
Megamouse 67a4b020fc CI: build windows clang-cl 2025-07-13 17:42:38 +02:00
Megamouse c69d7bc758 Qt/patches: optimize patch_manager_dialog::handle_item_changed 2025-07-13 14:19:58 +02:00
Megamouse 3926889c97 Qt/patches: Fix configurable value dropdown visibility 2025-07-13 14:19:58 +02:00
kd-11 34074a9c70 vk: Fix windows build 2025-07-13 05:49:34 +03:00
kd-11 81380a0d60 gl: Fix compiler warning 2025-07-13 05:49:34 +03:00
kd-11 65878c69be vk: Default initiailize program inputs with trap constants 2025-07-13 05:49:34 +03:00
kd-11 7c4fb183d0 vk: Properly initialize VS inputs 2025-07-13 05:49:34 +03:00
overwriter 699e1f0516 fix: cannot compile with Qt Creator while using "/DYNAMICBASE:YES" 2025-07-12 07:28:23 +03:00
Megamouse 269d45bfc0 only check out gamemode on linux 2025-07-06 19:42:09 +02:00
Megamouse f371f8be3e Move gamemode exit to final kill callback analog to display_sleep 2025-07-06 19:42:09 +02:00
Megamouse a965607f14 VS: Add gamemode_control filters 2025-07-06 19:42:09 +02:00
Megamouse 59567daea7 Update 7z to 25.00 2025-07-06 19:42:09 +02:00
ADAS2024 ef566186be [Linux] Implement Feral Interactive's Gamemode for Potential Performance Increases (#17325)
Currently, this is a draft PR to implement Feral Interactive's Gamemode
into RPCS3, which can improve game performance on certain Linux systems.

At the moment, I am running into various compiler warnings when trying
to include "gamemode_client.h" due to the file not using strict typings
and old C-style casts. I know I can disable these flags during RPCS3's
compilation but I wanted to check with the maintainers before going
forward and if this feature should be implemented.

It should be noted that RPCS3 only fails to compile and run if I include
Feral's header file, but everything else compiles if I comment out the
include.

Targets Issue #11299
2025-07-06 11:50:03 +02:00
Megamouse 46150322a3 cellVdec: log uknown arguments instead of throwing an error 2025-07-03 08:13:12 +02:00
Megamouse 2bb2c748bd clang-cl: fix a bunch of warnings 2025-07-02 22:19:31 +02:00
Megamouse a5c4951914 Update libpng to 1.6.50 2025-07-02 19:42:44 +02:00
Megamouse dfd80d2165 Update libusb to 1.0.29 2025-07-02 19:42:44 +02:00
Megamouse 4dbaaafbf1 Update FAudio to 25.07 2025-07-02 19:42:44 +02:00
Megamouse 25c2c601c9 Update curl to 8.14.1 2025-07-02 19:42:44 +02:00
Megamouse 9403d87d84 Update SDL to 3.2.16 2025-07-02 19:42:44 +02:00
Megamouse f50d374393 Enable fetch (oops) and also check highest tag in version_check 2025-07-02 19:42:44 +02:00
Kuan-Wei Chiu eeeb7fb4ab Fix invalid comparator in event_strcmp_events()
The function event_strcmp_events was previously returning int values
(-1, 0, 1) to indicate ordering. While this may resemble strcmp-like
semantics, it is invalid when used as a comparator with std::sort.

According to the C++ standard, the comparator used in standard
algorithms must be a function object returning a value contextually
convertible to bool, where comp(a, b) returns true if and only if a is
considered less than b.

Returning -1, 0, or 1 violates these rules. In particular, std::sort()
only expects the comparator to return a boolean value, and it uses that
value to infer ordering. Returning an int may lead to incorrect sorting
behavior and undefined behavior, including segmentation faults.

Replace the int-style comparator with a strict boolean comparison to
comply with the standard and ensure sorting correctness.
2025-07-02 09:12:35 +03:00
Megamouse 20c9dcd2d6 Remove qstr, sstr and qsv aliases. This does not compile on clang-cl 2025-06-30 08:18:50 +02:00
Megamouse 38ff48595d Fix missing include on clang-cl 2025-06-30 08:18:50 +02:00
Megamouse c7c206ecdc Fix u32 compile error on clang-cl 2025-06-30 08:18:50 +02:00
Megamouse bfd2adab5e Fix noexcept warnings in XAudio 2025-06-30 08:18:50 +02:00
Elad 786ac95dc0 RawSPU: Add missing MMIO register reads 2025-06-29 21:31:52 +03:00
Elad 1660dc24b3 cellSaveData: Order equal elements using the opposing trait 2025-06-27 17:56:26 +03:00
kd-11 aa50b0fbb9 vk: Fix video-out calibration pass inputs 2025-06-25 23:06:04 +03:00
kd-11 3df93dcc19 vk: Fix shader interpreter inputs when textures are not used 2025-06-25 23:06:04 +03:00
kd-11 1f0328c5d5 vk: Fix up binding layouts for some broken shaders 2025-06-25 23:06:04 +03:00
kd-11 3f635033cc vk: Cleanup compiler warnings 2025-06-25 23:06:04 +03:00
kd-11 8130babad3 vk: Fix crash when running MSAA resolve shaders 2025-06-25 23:06:04 +03:00
kd-11 37c4406b23 Remove unused file 2025-06-25 23:06:04 +03:00
kd-11 5d6b8b20c4 vk: Fix binding of arrays 2025-06-25 23:06:04 +03:00
kd-11 396c4bbdd7 vk: Drop obsolete logic around descriptor switching 2025-06-25 23:06:04 +03:00
kd-11 16a0ae6a7b vk: Update shader interpreter to use dynamic binding layout 2025-06-25 23:06:04 +03:00
kd-11 dd28d100d6 vk: Fix crash when running attachment clear pass 2025-06-25 23:06:04 +03:00
kd-11 91e22aa4e4 vk: Fix FS stencil mirror binding location overwrites causing holes in descriptor layout 2025-06-25 23:06:04 +03:00
kd-11 cdc78f81f7 vk: Code improvements 2025-06-25 23:06:04 +03:00
kd-11 91491c7cf3 vk: Drop copy optimization
- The pointer-based nature of write entries, changes invalidate previous data
- Instead of managing scratch, just push to the descriptors built-in management which is quite optimal
2025-06-25 23:06:04 +03:00
kd-11 b3492b73ad vk: Improve pipeline layout validation and fix slot allocation bugs 2025-06-25 23:06:04 +03:00
kd-11 15791cf94e vk: Fix descriptor set update and caching model to support skipped updates 2025-06-25 23:06:04 +03:00
kd-11 5417d4854d vk: Fix edge cases in descriptor update logic 2025-06-25 23:06:04 +03:00
kd-11 bb1c0a5eee rsx/util: Support basic array merge 2025-06-25 23:06:04 +03:00
kd-11 3a65359d59 vk: Fix clang build and resource leak on exit 2025-06-25 23:06:04 +03:00
kd-11 ffa835efac vk: Use shared layout generator for all pipelines
- Common code applying flags uniformly fixes bugs with misconfigured options
2025-06-25 23:06:04 +03:00
kd-11 f241825c73 vk: Update binding model for compute jobs 2025-06-25 23:06:04 +03:00
kd-11 2c8c788d81 vk: Use standard C++ 2025-06-25 23:06:04 +03:00
kd-11 2ae9753d79 vk: Lazy register/derigeter of hot data 2025-06-25 23:06:04 +03:00
kd-11 93e6aa6310 vk: Fix FSR upscaling 2025-06-25 23:06:04 +03:00
kd-11 ae74aa336f vk: Use write commands instead of copy commands to avoid dependencies 2025-06-25 23:06:04 +03:00
kd-11 64866098e7 vk: Respect shader compile flags when linking 2025-06-25 23:06:04 +03:00
kd-11 20b54f3086 vk: Correctly initialize descriptor copy data 2025-06-25 23:06:04 +03:00
kd-11 aac4fbe941 vk: Fix graphical bugs and crashes 2025-06-25 23:06:04 +03:00
kd-11 356b2f5910 vk: Rewrite program binding management to use "separate shader objects" concept. 2025-06-25 23:06:04 +03:00
kd-11 4d493bbb80 vk: Fix build 2025-06-25 23:06:04 +03:00
kd-11 49729086ac vk: Move descriptor management to the pipeline layer
- Frees up callers from managing descriptors themselves (ewww)
- Makes descriptor reuse possible
- Opens up the door to techniques like descriptor_buffer by abstracting away management to an implementation detail
2025-06-25 23:06:04 +03:00
digant73 329655a1bf fix DEBUG mode compilation 2025-06-24 05:16:17 +03:00
qurious-pixel b0067e8934 Windows Clang - libvulkan
Fix windows clang libvulkan static lib name
2025-06-22 03:38:16 +03:00
Kuan-Wei Chiu 22d9343f2c Fix invalid comparator in savedata_op sorting
According to the C++ standard, comparison functions used in sorting
algorithms such as std::sort must establish a strict weak ordering.
Specifically, the comparator must be irreflexive: for all values x,
comp(x, x) must be false.

The original comparator used >= for descending order, which violates
this requirement in the case of equal values (i.e., when a == b, both
comp(a, b) and comp(b, a) would return true). This can result in
undefined behavior in sorting algorithms, including potential
segmentation faults due to invalid iterator manipulation.

This change replaces >= with > to ensure irreflexivity and compliance
with the standard's requirement for a strict weak ordering.
2025-06-21 20:00:12 +03:00
qurious-pixel 9c93ec0bc3 exclude libusb submodule 2025-06-20 09:08:03 +02:00
qurious-pixel c6c72d3721 install opencv FreeBSD 2025-06-20 09:08:03 +02:00
qurious-pixel 424f9306c4 Use system LibUSB for FreeBSD 2025-06-20 09:08:03 +02:00
qurious-pixel 5d552ca236 Add Timeout to FreeBSD build 2025-06-20 09:08:03 +02:00
Megamouse 28896acb83 CI: Build static OpenAl 2025-06-19 12:09:59 +02:00
Megamouse 6f37be1afd CI/Win/clang: try to fix vulkan support 2025-06-19 09:07:01 +02:00
Megamouse 4fd581b812 Add github actions for linux arm gcc 2025-06-18 16:31:05 +02:00
Marcin Serwin bad6e99258 Disable -Wold-style-cast diagnostic before including sse2neon
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
2025-06-18 15:52:52 +02:00
Megamouse 27359d3d32 CMake: add more options 2025-06-16 09:01:00 +02:00
Megamouse f8f34787b3 CI: Do not checkout zlib 2025-06-16 09:01:00 +02:00
Megamouse d61c2496b6 hid/input: fix enumerated device comparison 2025-06-16 08:12:13 +02:00
Megamouse 5569c5c803 Win/cmake: Copy test directory to bin 2025-06-15 17:12:50 +02:00
Megamouse d0812ee5a8 CI: build windows clang 2025-06-15 17:12:50 +02:00
Megamouse 9634e58f0a CI: fix branch name and PR number 2025-06-14 23:44:06 +02:00
RipleyTom 9610d45ebf Entitlements are never found (#17306)
Minor change, we don't support entitlements atm.
2025-06-14 09:38:38 +03:00
Elad 85c813d84c RawSPU: Fix race of SPU_MBox_Status_offs (#17303) 2025-06-13 18:56:35 +03:00
Megamouse ab55500f01 Add github actions for windows llvm 2025-06-13 03:31:08 +02:00
Megamouse af0432a44b Update opencv to 4.11.0 2025-06-13 01:35:28 +02:00
qurious-pixel 2b7161208e [CI] FreeBSD build (#17293)
Build FreeBSD on Github Actions
2025-06-12 09:33:40 +03:00
Megamouse 5514d7c3d8 input: only copy relevant members to external buttons and sticks
fixes a crash in std::set, which is not thread safe
2025-06-09 11:09:26 +02:00
Elad 823e17288c SPU: Skip PUTLLUC writes of the same data 2025-06-08 19:09:22 +03:00
Megamouse 866daf2059 input/macOs: Call hid_close on the main thread 2025-06-07 13:03:41 +02:00
Megamouse ae38cef7b1 input/macOs: Call hid_open_path on the main thread 2025-06-07 13:03:41 +02:00
Megamouse e36f55ea41 input/macOs: call hid_enumerate on the main thread 2025-06-07 13:03:41 +02:00
Megamouse 819d3dc7a6 input/macOs: Run hidapi pad handlers on a single thread 2025-06-07 13:03:41 +02:00
oltolm ac99b2036d llvm: fix deprecation warnings 2025-06-07 12:46:48 +03:00
Megamouse 46cce45b13 Fix missing inserted = true in check_for_duplicates_fast 2025-06-06 01:07:33 +02:00
Megamouse d685348644 Update Qt to 6.9.1
- Updates Qt to 6.9.1
2025-06-05 21:57:43 +02:00
Megamouse d15b7a9955 ci/macOs: run unit tests 2025-06-03 21:59:59 +02:00
kd-11 99db73a34f Update VMA vulkan version to 1.2 2025-06-02 17:06:23 +03:00
kd-11 85e4eff571 vk: Raise min API version to 1.2 2025-06-02 17:06:23 +03:00
Megamouse d8bc2d5c75 input: move copilot code to pad_thread 2025-06-02 09:12:32 +02:00
Megamouse 4704c03209 Fix some static analysis warnings, including c-style cast 2025-06-01 22:07:03 +02:00
Megamouse 70faef3fdb Logs: use thread_local 2025-06-01 20:17:51 +03:00
qurious-pixel 663ff55af9 restore ffmpeg dependencies on linux 2025-06-01 18:45:00 +02:00
Zion Nimchuk 229c1c38a3 Setup build caches to only save on master builds, to ensure PR caches don't take presidence 2025-06-01 13:18:16 +01:00
Ani 68d2573344 rpcs3_version: Bump to 0.0.37 2025-05-31 22:05:34 +01:00
Zion Nimchuk c437fe9ff0 Fixing the two upload commit hashes got switched around 2025-05-31 20:36:04 +01:00
schm1dtmac c93ee3dc1a thanks vscode 2025-05-31 19:08:04 +01:00
schm1dtmac 0f45c08188 Suggested review changes 2025-05-31 19:08:04 +01:00
schm1dtmac 55aaffb7b3 Readd Homebrew Cache (used to be on Cirrus), silence more warnings 2025-05-31 19:08:04 +01:00
schm1dtmac aeafbfa2e1 Silence warnings 2025-05-31 19:08:04 +01:00
schm1dtmac cd7c9a8da4 Move Mac builds to GH Actions 2025-05-31 19:08:04 +01:00
Megamouse 382e62c7d8 input: implement basic copiloting 2025-05-29 20:56:13 +02:00
Megamouse ae35430c96 multithreaded version_check 2025-05-29 20:56:13 +02:00
Megamouse c0bfc34a75 Fix codestyle 2025-05-29 20:56:13 +02:00
Marcin Serwin bda335a505 cmake: add option to use system cubeb
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
2025-05-29 18:30:25 +02:00
oltolm 38289f3bc1 fix Windows build with GCC/Clang 2025-05-29 14:15:54 +02:00
oltolm 3d0a68c9e8 stdafx.h: fix clang warnings 2025-05-29 14:15:54 +02:00
Megamouse a9df046f21 Update curl to 8.14.0 2025-05-29 02:07:52 +02:00
kd-11 2d9a24d1d6 rsx/util/test: Cover edge cases in address_range test suite 2025-05-27 15:06:32 +03:00
kd-11 45718d7679 rsx: Use address_range64 to simplify MM intersection tests 2025-05-27 15:06:32 +03:00
kd-11 2ea7ff6b14 rsx/util: Split address_range into a sized address_range template 2025-05-27 15:06:32 +03:00
kd-11 4f7c82ba8a utils: Rename address_range to address_range32 to allow implementation of address_range16 and address_range64 2025-05-27 15:06:32 +03:00
kd-11 79bcb7790c rsx/util: Add unit tests for address ranges 2025-05-27 15:06:32 +03:00
kd-11 1ff6bdd777 rsx: Flush MM queue before applying nv3089 block transfers 2025-05-26 00:42:24 +03:00
Megamouse 3e674a896f Minor struct memory layout optimization 2025-05-24 18:24:58 +02:00
Megamouse 3aba805bc9 rsx: Fix use after move warning 2025-05-24 18:24:58 +02:00
Megamouse 09ab5477e8 rsx: use more const ref 2025-05-24 18:24:58 +02:00
Megamouse da273761d1 Fix some static analysis warnings 2025-05-24 18:24:58 +02:00
FlexBy420 4f2324cae7 Remove roadmap link from README
Roadmap was removed from the website as it wasn't updated in years.
2025-05-24 16:47:47 +02:00
RipleyTom 57207bbe96 Sort bin attributes based on ID 2025-05-23 13:30:39 +02:00
Megamouse b8a5986504 Update hidapi to 0.15.0 2025-05-23 09:20:09 +02:00
kd-11 b54c2124cf rsx: Refactor CgBinaryProgram to avoid namespace collision with X11 2025-05-21 16:51:11 +03:00
kd-11 9a150b677e rsx-debugger: Extra safety checks for FP decompiler 2025-05-21 16:51:11 +03:00
kd-11 01ec2671b3 rsx-debugger: Show disassembly of the currently active VP and FP 2025-05-21 16:51:11 +03:00
kd-11 dd0004f80d rsx: Use safe memory in RSX assembly decompiler 2025-05-21 16:51:11 +03:00
kd-11 e59c6c3c18 vk: Force VMA to comply with Vulkan 1.0 2025-05-21 16:51:11 +03:00
Megamouse c27d7db0a7 SDL: do not track emu state when initializing 2025-05-21 07:01:11 +02:00
Megamouse 7e7943f962 Always initialize SDL from main thread 2025-05-21 07:01:11 +02:00
Katharine Chui cb5fd17635 Logitech G27 log control transfers as todo 2025-05-19 21:14:36 +02:00
Katharine Chui c5e40dde74 Logitech G27 update bit 86 shifter_pressed behavior 2025-05-19 21:14:36 +02:00
elad335 5deb0fcbc6 PPU debugger: Update CIA unconditionally if "PPU Debug" enabled 2025-05-17 20:14:27 +03:00
Megamouse 62055bed3f Silence clang warning spam 2025-05-15 23:50:32 +02:00
Megamouse 182acfcf3e Fix log level of sdl pad handler log message
I accidentally changed this to error in a prior commit.
2025-05-15 23:50:32 +02:00
Katharine Chui 52aa475581 Logitech G27 update shifter input (#17216)
Based on information provided by Florin9doi
https://github.com/RPCS3/rpcs3/pull/17199#issuecomment-2883934412
2025-05-15 22:58:10 +02:00
Megamouse 64a3e50d6c Fix some warnings 2025-05-15 16:23:47 +02:00
Megamouse 0750574a03 Update VulkanMemoryAllocator to 3.3.0 2025-05-15 16:23:47 +02:00
Megamouse 3dca4dd4bb Update SDL to 3.2.14 2025-05-14 21:07:18 +02:00
Megamouse 410710b02c LG27: Update defaults 2025-05-14 19:52:06 +02:00
Megamouse 48be05e8f1 G27: Make warning label color more dynamic 2025-05-14 19:52:06 +02:00
Megamouse 36e680c603 G27: Improve layout a bit 2025-05-14 19:52:06 +02:00
Megamouse 5da1b44371 Fix emu name in label 2025-05-14 19:52:06 +02:00
Megamouse 9b3ee1ed17 Gui: simplify LogitechG27 settings dialog 2025-05-14 19:52:06 +02:00
elad335 3f2075070a Fix UB
Reference exists after destructor is called.
2025-05-14 09:44:07 +03:00
elad335 208c4e2af2 SPU: Improved GETLLAR spin detection conditions 2025-05-14 09:44:07 +03:00
Katharine Chui a9b911750f Logitech G27 Expand SDL device identification, add mapping note (#17206)
Fanatec windows drivers doesn't mux a single device into a single
software device. Instead they have two identical devices in
terms of vendor and product id. Add a mostly stable way to tell
between the two.

Currently working wheels should not be affected, Fanatec users
please map the wheel again.

Do not save config on reset
2025-05-14 01:31:52 +02:00
Megamouse 8d9ba4329d LogitechG27: use named_thread instead of std::thread 2025-05-14 01:18:32 +03:00
Megamouse bc18b3592c SDL/input: Log GUID 2025-05-13 21:41:23 +02:00
elad335 fa744121fc Fix CallFromMainThread execution condition 2025-05-13 17:37:13 +03:00
kd-11 f4dc18c872 rsx: Don't trigger surface swap-in/swap-out handlers when replacing self 2025-05-13 15:17:36 +03:00
RipleyTom d02dea5df2 Make Disable IPv6 text translatable 2025-05-13 13:43:03 +02:00
RipleyTom b1b02e0425 Bind RPCN client socket only if bind_ip is set 2025-05-12 22:15:56 +02:00
RipleyTom 6854e9b974 Fix building with SDL submodule 2025-05-12 21:40:02 +02:00
RipleyTom 3894c903bc Make IP Binding more global 2025-05-10 08:44:05 +03:00
elad335 d21358e91f System: Fix Kill calling duplication 2025-05-09 11:39:53 +03:00
Megamouse 21cdbd90e9 trophies/overlays: treat unlocked hidden trophies just like normal unlocked trophies 2025-05-08 21:20:16 +02:00
elad335 12f4e4fd8c SPU: Evaluated Thread-blocked LR messaging 2025-05-08 20:46:40 +03:00
elad335 3ea3ed6672 Emu: Track game termination progress better 2025-05-08 17:06:47 +03:00
Katharine Chui 4840e3575b remove SDL_INIT_JOYSTICK since SDL_INIT_GAMEPAD implies SDL_INIT_JOYSTICK 2025-05-08 13:41:41 +02:00
Katharine Chui f0672bdbc9 initialize sdl haptic, log haptic device open errors 2025-05-08 13:41:41 +02:00
Megamouse 2963d10325 cellSysutilCheckCallback: increase read_counter as soon as a callback is about to be called
The game might call sys_process_exit in one of the callbacks.
This might take a couple of seconds and does not increase the counter.
So we have to increase it before in order to give Kill some more time.
2025-05-08 12:58:38 +02:00
Megamouse 501643c10a Use const for present_samples buf argument 2025-05-08 12:58:38 +02:00
Megamouse 73a6141f3f overlays: Allow auto exit in home menu's exit game function
In case the game does not terminate itself properly.
2025-05-08 12:58:38 +02:00
Megamouse 738d1ef682 Emu: Make game termination less confusing 2025-05-08 12:58:38 +02:00
Megamouse 30a4b26306 Add log message when QApplication is being quit 2025-05-08 12:58:38 +02:00
Megamouse fdc1a51cba Log RPCS3 exit code 2025-05-08 12:58:38 +02:00
Megamouse 9c7d8da298 Add log message if game ignores exit game request 2025-05-08 12:58:38 +02:00
Megamouse 0146b845d9 MSVC: Fix weird std::move on const variable warning... 2025-05-08 12:58:38 +02:00
Megamouse fc3a905c90 Use string_view for log params 2025-05-08 12:58:38 +02:00
Megamouse aa79afd7ae StrUtil: Add more unit tests 2025-05-08 12:58:38 +02:00
elad335 f17400092d Fixup SPU Interpreters 2025-05-08 11:54:16 +03:00
Katharine Chui e1d3cf57c8 Logitech G27 fixes and cleanups (#17170)
- revamp effect direction to avoid some windows driver issues
- ref: https://github.com/libsdl-org/SDL/issues/7941
- fix possible SDL_SetJoystickLED calls on closed joystick handle
- various comment cleanups
- make now static sdl effect direction a template
- fix formatting, shorten logitech_g27_force_to_level, revamp sawtooth effect abuse logging
- log and handle ramp effects with reversed min/max forces
- remove abandoned functions
2025-05-07 19:20:35 +02:00
Elad 2a50ac1891 PPU Loader: Consume Executable Memory 2025-05-06 21:21:38 +03:00
Megamouse 0724fa3aa9 VS: compile glslang with the solution 2025-05-06 00:43:41 +02:00
Zion Nimchuk ba46c62500 Remove old OGLCompiler.lib dep 2025-05-06 00:43:41 +02:00
Zion Nimchuk 1276867860 Cleanup what we build in glslang vcxproj 2025-05-06 00:43:41 +02:00
Zion Nimchuk 5249f6cba7 Just build the latest glslang instead of dowloading the precompiled libs 2025-05-06 00:43:41 +02:00
Megamouse 353e0a8400 VS: Add glslang include directory 2025-05-06 00:43:41 +02:00
Zion Nimchuk ec4e65bdd9 Update glslang to 15.3.0 2025-05-06 00:43:41 +02:00
kd-11 e5d3944726 vk: Limit NV crash workaround to older generations 2025-05-06 00:00:04 +02:00
kd-11 e67beb27dd vk: Fix cyclic dependency problem during physical device init 2025-05-06 00:00:04 +02:00
kd-11 5cfa9fd83e vk: Disable texel buffer update-after-bind on NVIDIA driver 2025-05-06 00:00:04 +02:00
Megamouse 84a4cc01e1 SDL/Input: add DS3 pressure intensity 2025-05-05 23:20:40 +02:00
Megamouse 32ad9988a3 SDL/Input: add new misc buttons 2025-05-05 23:20:40 +02:00
Megamouse fcdf542c47 Update SDL to 3.2.12 2025-05-05 22:42:28 +02:00
Vestral 3cebfaa648 Atomic utils fixup after ASLR changes (#17168) 2025-05-05 21:48:07 +03:00
Séamus 74fa59590a Update MoltenVK to v1.3.0 2025-05-05 09:04:17 +02:00
kd-11 4958d7a88f rsx: Do not interpolate when performing image reconstruction
- Interpolation introduces cross-channel bit-leakage and noise
2025-05-05 01:15:33 +03:00
Katharine Chui 487c58558e Logitech G27 touchups
- TODO note and adjust type for housing SDL_CreateHapticEffect return
- fix implementation of command 0x09 Set LED
- fix LED joystick changes handling
2025-05-03 19:43:07 +02:00
Elad cf1e53f9c8 Fix crash in memory viewer launcher (#17152) 2025-05-03 18:34:42 +03:00
Megamouse 75b728be7e Logitech G27 cleanup 2025-05-03 13:21:34 +02:00
trigger 6428088e46 Qt: "Show in Memory Viewer" context action (#17131) 2025-05-03 08:35:45 +03:00
Katharine Chui c0a1e8d5a5 virtual Logitech G27 for Gran Turismo 6 (#17135) 2025-05-02 21:27:40 +02:00
Megamouse 7a9733dcca CMake: try to fix gcc 2025-05-02 17:18:11 +02:00
Megamouse 9146076e28 Update FAudio to 25.05 2025-05-02 17:18:11 +02:00
kd-11 b25276deec tests: Fix failing test and improve msvc setup 2025-05-02 01:16:21 +03:00
kd-11 947c6ec3e1 test: Add UTs for rsx::simple_array<T> 2025-05-02 01:16:21 +03:00
Megamouse ea94f44f66 Disable WholeProgramOptimization for unit test 2025-05-01 15:28:52 +02:00
Megamouse e48797db1a CI: Only run unit tests for pull requests 2025-05-01 15:28:52 +02:00
Megamouse 0439ca67d9 CI: Add windows unit tests 2025-05-01 12:51:39 +02:00
Megamouse 399c871d79 VS: improve unit test project setup 2025-05-01 12:51:39 +02:00
Megamouse 6abe18a4f8 Add unit test for fmt::merge 2025-05-01 00:56:37 +02:00
Megamouse 77f45954d0 Update libpng to 1.6.48 2025-05-01 00:56:37 +02:00
Megamouse 982dac9446 Remove unused fmt::match function 2025-05-01 00:56:37 +02:00
Megamouse 486e93f418 Fix fmt::replace_all with empty from and add unit tests 2025-05-01 00:56:37 +02:00
Megamouse 259768e896 Add submodule version check script 2025-05-01 00:56:37 +02:00
Megamouse c792db2c60 CMake: Disable unit tests in gcc 2025-04-30 19:40:10 +02:00
Megamouse b6a3754ee5 CMake: Use existing main for unit tests 2025-04-30 19:40:10 +02:00
Megamouse e4cc55dc19 Move spellcheck before build
This saves time when there's a syntax error in deploy_linux.sh
2025-04-30 19:40:10 +02:00
Megamouse eb4c6df609 CI: Add unit tests 2025-04-30 19:40:10 +02:00
Megamouse 05b5f9aa97 VS: Remove unnecessary LinkIncremental to fix some warning 2025-04-30 10:08:16 +02:00
Megamouse a9d2150b0f VS: Remove unnecessary moc_predefs file to fix a warning 2025-04-30 10:08:16 +02:00
Megamouse b17078fe1a Fix some warnings 2025-04-30 10:08:16 +02:00
Megamouse 9a5c4aba58 VS: Enable ASLR in unit test 2025-04-30 10:08:16 +02:00
Megamouse 9897a80216 CMake: fix gcc build 2025-04-30 10:08:16 +02:00
Megamouse 19cc93437e CMake: move all rpcs3 cpp files to rpcs3qt 2025-04-30 10:08:16 +02:00
Megamouse 39247fcbc1 CMake: Run unit test during build if requested 2025-04-30 10:08:16 +02:00
Megamouse 3b61613d1b CMake: Create unit test 2025-04-30 10:08:16 +02:00
Megamouse 81b1e5636d CMake: Create static rpcs3_lib 2025-04-30 10:08:16 +02:00
Vestral e066735fe9 Utils fixes for ASLR 2025-04-30 02:56:23 +02:00
Vestral 63b7134dce Separate segment and function addresses in PPU LLVM 2025-04-30 02:56:23 +02:00
Vestral e110334c2c Disable SPU asmjit on ARM. Only supported on x86 2025-04-30 02:56:23 +02:00
Vestral 77eef4d783 Don't make assumptions about address format 2025-04-30 02:56:23 +02:00
Vestral e2df71d87c Enable ASLR 2025-04-30 02:56:23 +02:00
Megamouse 68e7f4e820 fmt: add some unit tests and fix fmt::trim 2025-04-30 00:07:24 +02:00
Megamouse 376ac85029 Add unit test project to VS 2025-04-29 21:09:12 +02:00
Megamouse b1b9310a50 Update docker to 1.6 2025-04-29 19:21:32 +02:00
Megamouse 024949f17e Move main to main.cpp 2025-04-29 18:42:20 +02:00
Megamouse 74d995aae0 Rename main.cpp to rpcs3.cpp 2025-04-29 18:42:20 +02:00
Megamouse 5b60f0cc11 CI: Use variables for docker artifacts dir 2025-04-29 18:21:29 +02:00
Megamouse a72f4f0606 Avoid checking out unused submodules 2025-04-29 18:21:29 +02:00
Megamouse 752df0dae7 VS: fix relative 3rdparty paths 2025-04-29 18:21:29 +02:00
Megamouse 2d4ff404bd VS: remove some outdated keywords 2025-04-29 18:21:29 +02:00
Megamouse 62fa074f9f github actions: disable pushes unless it's the RPCS3 master branch 2025-04-29 15:27:25 +02:00
trigger c8f5659090 Qt: Hex validator for address/instruction inputs (#17113) 2025-04-29 14:42:16 +02:00
elad335 79b63556bb vm_native.cpp: Fix possible weakness of map_self() 2025-04-29 14:54:40 +03:00
elad335 1f81d42416 Fix sys_mmapper_unmap_shared_memory 2025-04-29 14:54:40 +03:00
kd-11 75bfc336fc vk: Prevent header internals from leaking 2025-04-29 03:52:49 +03:00
kd-11 1af67f39ca vk: Stop using internal defines to structure platform-specific code 2025-04-29 03:52:49 +03:00
elad335 2aca213ba1 sys_mmapper: Lazily allocate shared memory descriptors 2025-04-28 18:55:23 +03:00
elad335 730249a887 Embedded SPU Image Search Fixes 2025-04-28 17:44:33 +03:00
trigger 0e1cad4ca9 PPU: HasBreakpoint fast path when empty 2025-04-28 09:28:51 +03:00
kd-11 2afd7707fe vk: Fix more silly mistakes 2025-04-27 17:09:50 +03:00
kd-11 01cf71e49a vk: Fix indexed multidraw 2025-04-27 17:09:50 +03:00
kd-11 2f677ecebd rsx: Silence compiler warnings 2025-04-27 15:07:26 +03:00
kd-11 d958f8291a rsx: simplify simple_array<T>::erase_if 2025-04-27 15:07:26 +03:00
Megamouse f435225940 Update wolfssl to 5.8.0 2025-04-26 23:15:04 +02:00
Megamouse e321af4a29 Update miniupnp to 2.3.9 2025-04-26 23:15:04 +02:00
RipleyTom 929a92f6c5 Avoid passing -fuse-ld to non-linking step 2025-04-26 22:48:14 +02:00
Megamouse 39d3754b18 cellVideoOutConvertCursorColor: fix and implement 2025-04-26 21:30:58 +02:00
digant73 d7ef5a85dc fix missing check on swapped item 2025-04-26 21:13:58 +03:00
digant73 519a3b5b79 fix erase_if method 2025-04-26 21:13:58 +03:00
RipleyTom 89dea9bd92 Fix IPv6 support detection 2025-04-25 21:40:36 +02:00
elad335 ab269f6155 Warning fixes 2025-04-25 19:52:38 +03:00
elad335 dcc263ca5d SPU Image Finder Fixes 2025-04-25 19:52:38 +03:00
Megamouse c2a5ac96cd Fix some warnings 2025-04-25 11:10:07 +02:00
Megamouse 85a4c5eb93 Remove some obsolete pragmas 2025-04-25 11:10:07 +02:00
kd-11 cd2098fad7 vk: Fix copypasta causing incorrect buffer to be released by GC 2025-04-25 04:01:47 +03:00
kd-11 7c538873b6 vk: Properly initialize EXT_multidraw functionality 2025-04-25 04:01:47 +03:00
kd-11 ebcf403f4a vk: Fix a rare GPU timeline UAF when replacing buffer views
- Might fix DEVICE_LOST errors observed on NV cards
2025-04-25 04:01:47 +03:00
kd-11 417cefa059 rsx: Fix static ringbuffer allocator logic 2025-04-25 04:01:47 +03:00
Megamouse 1960b5a605 hotfix: fix parentheses when saving some files 2025-04-23 16:27:17 +02:00
kd-11 c401c0f9db vk: Get rid of multidraw indirection buffer 2025-04-23 16:01:17 +03:00
kd-11 a152bb1123 vk: Fix bug preparing multidraw command details 2025-04-23 16:01:17 +03:00
kd-11 7c27b7b727 rsx: Do not consume draw call barrier iterator when executing deps 2025-04-23 16:01:17 +03:00
kd-11 f3f1a2bb5d rsx: Cache draw subranges storage 2025-04-23 16:01:17 +03:00
Megamouse b2feff7d38 Qt: implement music player dialog for music handler tests 2025-04-23 08:14:59 +02:00
Megamouse 22c184bf75 cellMusic: improve logging 2025-04-23 08:14:59 +02:00
elad335 5ca5b54bf6 Fix sceNpTrophyRegisterContext 2025-04-22 16:29:21 +03:00
kd-11 a928e8a3db types: Fix comment 2025-04-20 17:50:01 +02:00
kd-11 2e624789ff vk: Properly initialize multi draw extension 2025-04-20 17:50:01 +02:00
kd-11 ef95fa9f5f rsx: de-uglify buffer upload restructure 2025-04-20 17:50:01 +02:00
NefariousTechSupport cecf92e5b8 Copy debug self elf properly (#17070)
In 7de2869a53 this was changed to be a bit more safe, however it was reading from offset 0 instead of where the real elf started, meaning every debug self would just fail to load immediately.
2025-04-20 10:12:19 +03:00
elad335 8437a5f5ac PPU Debugger/Memory: STDCX/STWCX breakpoints, make vm::_ref const 2025-04-19 16:14:00 +03:00
kd-11 564c903fbd rsx: Fix arm64 build 2025-04-19 01:04:00 +03:00
kd-11 268de3cd24 rsx/vk: Retire the concept of heap being in "critical" state
- We waste a lot of time trying to manage that. We just swap out the buffer anyway as long as the client has enough RAM.
- This was more of an issue in early days when corrupt allocation requests were common trying to take gigabytes in one draw.
2025-04-19 01:04:00 +03:00
kd-11 d20f48f876 vk: Fix extension wrangling 2025-04-19 01:04:00 +03:00
kd-11 88e2a3761c vk: Rework multi-heap health checks for performance 2025-04-19 01:04:00 +03:00
kd-11 e136c2eadf vk: Rework heap checks to be explicit 2025-04-19 01:04:00 +03:00
kd-11 b2b50f5e82 vk: Optimize heap check iterator
- Significant boost in some scenarios
2025-04-19 01:04:00 +03:00
kd-11 26a7e9653f rsx: Optimize static heap allocations 2025-04-19 01:04:00 +03:00
kd-11 76948b6364 vk: Use robin_hood for renderpass caches 2025-04-19 01:04:00 +03:00
kd-11 0f57624a61 vk: Rework extension wrangling 2025-04-19 01:04:00 +03:00
kd-11 8aaf2f8577 vk: Implement EXT_multi_draw support 2025-04-19 01:04:00 +03:00
kd-11 8ce8410a5b vk: Use garbage collector to handle buffer views
- Legacy stuff left over from almost a decade ago
2025-04-19 01:04:00 +03:00
kd-11 a0ce9e52fa vk: Refactor the heap manager 2025-04-19 01:04:00 +03:00
kd-11 53288309a5 vk: Add automatic heap management 2025-04-19 01:04:00 +03:00
Nick Renieris 275f7e15c0 PPU: Fix memory write breakpoints for 13 instructions
Specifically: `STVX`, `STVXL`, `STDBRX`, `STWBRX`, `STFSX`, `STFSUX`, `STFDX`, `STFDUX`, `STHBRX`, `STFS`, `STFSU`, `STFD`, `STFDU`.

Closes https://github.com/RPCS3/rpcs3/issues/17062.
2025-04-18 20:52:37 +02:00
elad335 7de2869a53 Implement sys_spu_image_open_by_fd 2025-04-18 13:53:50 +03:00
elad335 ab7a1a6ec4 sys_spu: Fix sys_spu_image_open 2025-04-18 13:53:50 +03:00
Antonino Di Guardo b8d1d7cdf1 Fix game list update for auto-detection VFS games folder (#17051) 2025-04-17 12:14:54 +02:00
Megamouse 8b2b74c34b Qt: Add checkboxes to vfs list to make selection more user friendly 2025-04-17 07:23:36 +02:00
Ani a004ebfffb git: Remove unused code 2025-04-16 13:36:56 +03:00
Megamouse b51d6e9d92 Qt: use image_change_callback function to ensure the member is valid 2025-04-16 03:19:15 +02:00
Megamouse b96e41285c Qt: use unique_ptr in qt_video_source 2025-04-16 03:19:15 +02:00
Megamouse 9295e6f5c8 Qt: Fix gamelist icon after stopping a movie
Do not set an icon if it's null. This happens because we save memory
by clearing the pixmap of non-movie items.
Also don't stop the movie here, as it should be stopped already anyway.
2025-04-16 03:19:15 +02:00
Megamouse e80809f629 Qt: fix game list image reset after a movie was stopped 2025-04-15 18:47:54 +02:00
elad335 5ac4db752d sceNpTrophy: Send signals asynchronously 2025-04-14 15:08:01 +03:00
Megamouse 746b438500 Qt/input: accumulate button presses between gui refresh
Fixes dropped input between gui refreshes
2025-04-14 09:31:52 +02:00
Fredrik Hubinette 0964c0356b Add Menu Key (used by 8bitdo Pro 2 controller 2025-04-14 07:36:17 +02:00
kd-11 7500d16524 rsx: Avoid reallocating scratch buffers every draw call when processing instancing data 2025-04-14 03:16:37 +03:00
kd-11 b3bdff741c rsx: Fix simple_array<T>::erase_if 2025-04-14 03:16:37 +03:00
Megamouse fcb6bc70f8 evdev: log positive axis config 2025-04-13 11:40:01 +02:00
Megamouse 9c5b3a2300 Update to Qt 6.9.0 2025-04-11 23:11:38 +02:00
kd-11 2d7ffaf07f vk: Fix typo in NVIDIA-specific stencil unresolve path 2025-04-11 14:05:28 +03:00
Megamouse 9b7d5cd1a9 Qt: fix visibility check of table widget items 2025-04-10 02:23:16 +02:00
RipleyTom bcb5041df2 use fixed uruntime version 2025-04-10 00:22:04 +02:00
Escary 235707278f reduce appimage size 2025-04-09 21:17:16 +02:00
Ani db85595124 rsx: Replace robin_hood with ankerl::unordered_dense 2025-04-09 20:55:35 +02:00
Ani 15758171f0 glext: Update from 2022.05.30 to 2025.02.03 2025-04-09 20:19:42 +02:00
kd-11 d08610882a rsx: Remove superfluous log
- Back-to-back range with no barrier will already be logged in draw_call::append
2025-04-09 16:17:51 +03:00
kd-11 21434c471b rsx: Track command barrier types during recording for faster instancing compatibility checks 2025-04-09 16:17:51 +03:00
elad335 87d8bebd0d PPU LLVM: Fixup MTFSF 2025-04-08 11:29:06 +03:00
Ani e4d84e2c1c Qt: Fix multi package install dialog on Linux 2025-04-08 09:28:10 +02:00
Ani 16036e0419 ppu: Remove redundant checks on MTFSF
Closes #11176
2025-04-08 07:04:37 +02:00
Ani 58714d8c68 docker: Update ffmpeg to 7.1.1 2025-04-08 06:43:28 +02:00
Megamouse ddf684c4d2 Update curl to 8.13.0 2025-04-07 21:37:59 +02:00
Megamouse daa76be77e Update soundtouch to 2.4.0 2025-04-07 21:37:59 +02:00
Megamouse 600e460416 Fix compilation with newer Qt 2025-04-07 21:37:59 +02:00
Megamouse e095904e1b cellMic: Use full device name registration and comparison 2025-04-07 20:38:59 +02:00
Megamouse 599d5c17a0 cellMic: Try to open device with different sample rates 2025-04-07 20:38:59 +02:00
elad335 6f98b8c5ae Silence sys_spu_thread_write_spu_mb 2025-04-07 17:54:27 +03:00
elad335 eb2eb9ccf5 Improve lwmutex_lock error logging 2025-04-07 17:54:27 +03:00
elad335 19d01835d3 sys_spu: Fix HW schedular limits 2025-04-07 17:54:27 +03:00
kd-11 f38a61bdb3 Try msvc workaround 2025-04-07 00:46:09 +03:00
kd-11 ed280cdbfe vk: Use dynamic constant buffer offset via push constant 2025-04-07 00:46:09 +03:00
kd-11 66909168ac vk: Silence compiler warning 2025-04-07 00:46:09 +03:00
kd-11 38a1c8becb vk: Use dynamic constants offset for transform constants 2025-04-07 00:46:09 +03:00
kd-11 1816a1eb34 vk: Switch transform constants from UBO to SSBO 2025-04-07 00:46:09 +03:00
kd-11 dad9a2b916 vk: Add support for dynamic buffer offsets 2025-04-07 00:46:09 +03:00
Ani b3bbd939e3 appimage: Do not bundle libQt6OpenGL 2025-04-06 19:37:36 +02:00
Ani cc84ebf8c2 appimage: Do not bundle Qt6VirtualKeyboard 2025-04-06 19:37:36 +02:00
Ani 2438e975e7 appimage: Do not bundle unused Qt6 libraries 2025-04-06 19:37:36 +02:00
elad335 04d833d3e6 Fix #17000 2025-04-06 08:58:24 +03:00
elad335 2f872b3755 vm.cpp: Remove redundant cache hint 2025-04-06 08:58:24 +03:00
elad335 bd1f5ff194 PPU LLVM: Fix VMAXFP, VMINFP 2025-04-06 08:58:24 +03:00
Ani 613212f9e1 .github: Remove outdated pull request template 2025-04-04 23:10:21 +02:00
Ani 4aff4a9c82 README: Update VC_redist from 2019 to 2022 2025-04-04 23:10:21 +02:00
Ani 264af550d5 .github: Update log path in issue templates 2025-04-04 23:10:21 +02:00
Ani 822546bf7d Discord: Use vanity URL 2025-04-04 23:10:21 +02:00
nastys 2ac2439c33 Fix macOS SDK path 2025-04-04 05:38:48 +02:00
Megamouse 37dbd77628 Update FAudio to 25.04 2025-04-03 07:59:49 +02:00
Megamouse 733ceada5e Update SDL to 3.2.10 2025-04-03 07:59:49 +02:00
Megamouse 847f92956f Qt: remove discontinued QWinTaskbar code
Also remove some strange relics from the includes
2025-04-02 10:48:09 +02:00
Megamouse 73f2aaf9d8 Windows: fix updating with unicode user name 2025-04-01 14:31:21 +02:00
Zion Nimchuk c86a250795 Fix mac build with cmake 4.0 2025-04-01 09:02:27 +03:00
Zion Nimchuk c6170aa4c7 Update Windows ccache version 2025-04-01 09:02:27 +03:00
Zion Nimchuk 89ae495c36 Update docker cmake to 3.28 and update minimum to 3.28, as well as remove uneeded minimum 2025-04-01 09:02:27 +03:00
Megamouse 5526c33d69 Review fixes + warning fixes 2025-03-31 18:27:54 +02:00
Megamouse e816636676 overlays: play ICON1.PAM in save data list if possible 2025-03-31 18:27:54 +02:00
Megamouse 40e8bc530c overlays: propagate item selection to children 2025-03-31 18:27:54 +02:00
Megamouse 9684467dc0 overlays: implement video overlay class 2025-03-31 18:27:54 +02:00
Megamouse 8e83fd7d50 Qt/overlays: expose qt_video_source_wrapper as emu callback 2025-03-31 18:27:54 +02:00
Megamouse fac1cc57d7 Overlays: set layouts dirty if children are dirty
This fixes updates of widget items in lists.
Only set text dirty if it changed.
Properly mark spacers as compiled.
2025-03-31 18:27:54 +02:00
Megamouse 6511e0f3e6 cellSaveData: properly initialize SaveDataEntry 2025-03-31 12:21:40 +02:00
Megamouse 9c1c932e68 Update OpenAL to 1.24.3 2025-03-31 12:01:55 +02:00
Megamouse 82c85c1a9c Qt: disable shortcuts completely if disable kb hotkeys is enabled 2025-03-31 11:41:11 +02:00
Megamouse 7cec2d0e18 Qt: set audio hotkey defaults to additionally need Ctrl pressed 2025-03-31 11:41:11 +02:00
Ani 2f8ed1a6bd rpcs3_version: Bump to 0.0.36 2025-03-30 21:45:32 +02:00
Megamouse 781da9dc59 input: disable pad vibration after no new data was sent for 3 seconds
This is supposedly how the lib does it.
2025-03-30 20:42:15 +02:00
Vestral 1e6a4dc5c8 Fix discord after #16885 2025-03-30 19:58:28 +02:00
Megamouse 282fbcc3e5 Qt: fix wrong save data movie playing when selecting a different entry 2025-03-30 12:35:16 +02:00
Megamouse cd9c156937 7z: log error code when opening the file 2025-03-30 12:35:16 +02:00
DH cd840ef70a LLVM JIT: do not produce broken binaries on crash 2025-03-30 08:18:09 +03:00
Zion Nimchuk 55190c2125 Update Qt to 6.8.3 and update clang compiler 2025-03-29 23:21:54 +01:00
Megamouse 01cdc83aeb Qt: play ICON1.PAM in save data manager details 2025-03-29 15:09:25 +01:00
Megamouse b9e0a36816 Qt: Add qt video source class for more generic video playback 2025-03-29 15:09:25 +01:00
Megamouse fccb761ef2 Qt: play ICON1.PAM in save data manager 2025-03-29 12:18:18 +01:00
Megamouse 0ffb4e62e6 Qt: pass game list events to base class 2025-03-29 12:18:18 +01:00
Megamouse bd1102d3b7 Qt: simplify icon_ready_callback in game list 2025-03-29 12:18:18 +01:00
Megamouse 91427646f5 VulkanMemoryAllocator: Match current master commit 2025-03-28 20:41:41 +01:00
Megamouse 596e6cc2c3 Add VulkanMemoryAllocator v2.3.0 submodule 2025-03-28 20:41:41 +01:00
elad335 9c99e75939 SPU Debug: WrDec and LSA view
Report the last written value to WrDec.
2025-03-28 19:56:54 +03:00
elad335 047f71b434 PPU/cellSpurs: MGS4: Fix cellSpursAddUrgentCommand race condition
cellSpursAddUrgentCommand searches in 4 slots for an empty slot to put the command at.
At first, it seems to do so unordered.

Meanwhile, on SPU side, it expects an order between all the commands because it pops them it in FIFO manner.
Not keeping track of how many commands are queued in total.

After second observation of cellSpursAddUrgentCommand, something odd comes takes places here.
Usually, reservation loops are individual and are expected to be closed without any changes of the previous loop affected by the proceeding one.
But in this case, after a single failure, the entire operayion is reset, a loop of 4 reservation operations suddenly is reset completely.

This makes one wonder if it the HW expects sometjing else here, perhaps it caches the reservation internally here?
After some adjustments to LDARX and STDCX to cache the reservation between succeeding loops, Metal Gear Solid 4 no longer freezes!
2025-03-28 19:56:54 +03:00
elad335 91b1ec6d5c SPU LLVM: Dump some funcs 2025-03-28 19:56:54 +03:00
Ani a7df3cfb40 config: Set default Driver Wake-Up Delay to 0 2025-03-28 18:46:41 +03:00
Megamouse 949a80dc0a Loader: deny boot if the firmware is too old 2025-03-28 18:18:09 +03:00
Ian Carpenter 095c884331 unpkg: Restore support for PSP/Vita packages 2025-03-28 14:43:38 +03:00
Ani 32a8bcf525 config: Increase max vblank rate to 6000 2025-03-28 10:47:23 +03:00
Megamouse a469bfd4da overlays: hide friends list in home menu if rpcn is not configured 2025-03-27 18:08:30 +01:00
Megamouse 6921684cd9 Update Qt to 6.8.3 2025-03-27 09:25:02 +01:00
Megamouse 76c069e8bf VS/MSVC: Move LTCG and GL to CI only
This was taking too long on my local builds after simple code changes.
2025-03-27 04:35:27 +01:00
Megamouse b571978f24 Windows/Qt: do not deploy dx and ffmpeg libs 2025-03-27 02:33:32 +01:00
Megamouse b8236e183c cellMic: log ALCenum error string 2025-03-27 00:51:15 +01:00
Megamouse 2a7e957c61 Qt: fix custom icons when "Prefer game data icons" is set 2025-03-26 18:33:51 +01:00
Megamouse 467c4ba2cf Qt: add option to prefer game data icons in the game list 2025-03-26 12:07:59 +01:00
RipleyTom 324af04426 Set PSN to disconnected when net status is disconnected 2025-03-25 21:46:38 +01:00
Megamouse 1b5d9a34df overlays/rpcn: Create list even if rpcn connection failed 2025-03-25 18:40:25 +01:00
Malcolm Jestadt c52920755a SPU LLVM: Don't use vperm2b256to128 outside of CPUTranslator.h
- The vperm2b function uses vperm2b256to128 when it's ideal
2025-03-25 10:42:02 +02:00
Megamouse faef63e8a7 patches: fix c_utf8 validation 2025-03-24 21:44:23 +01:00
kd-11 ff135384ef Fix for GCC builds 2025-03-24 17:00:07 +03:00
kd-11 a51602018e rsx: Code cleanup and fix fragment texture dirty trigger 2025-03-24 17:00:07 +03:00
kd-11 1616942943 rsx: Always execute pre-draw pipeline analysis regardless of flags 2025-03-24 17:00:07 +03:00
kd-11 ba7b7b65a1 rsx: Bypass sampling cache logic when dealing with host generated textures 2025-03-24 17:00:07 +03:00
RipleyTom 40ff182c31 Fix p2p binding to vport 0 2025-03-23 06:08:09 +01:00
Whatcookie d9071abd8b Utils: Remove AVX10-256 detection (#16904)
- Intel recently removed 256b AVX10 from the AVX10 spec.
2025-03-22 13:28:45 +02:00
Megamouse b4f453f687 overlays: don't check for hdd dirs if we play a disc game 2025-03-21 20:47:45 +01:00
Megamouse 4c742f7742 Fix typo 2025-03-21 20:47:45 +01:00
Megamouse fda51920b7 overlays: prefer overlay_picture over content_icon 2025-03-21 20:47:45 +01:00
Megamouse 4905fda371 Qt: Don't fetch ICON0.PNG from game data for disc games
ICON0.PNG is not supposed to be updateable, so we can ignore the hdd0 dir for disc games in that case
2025-03-21 20:47:45 +01:00
Megamouse 1ae1288a88 overlays: Look for the overlay in the same dir as the background 2025-03-21 20:47:45 +01:00
Megamouse 6fb0e991ea overlays: Don't use ICON0.PNG from hdd0 if the game is a disc game
ICON0.PNG is not supposed to be updateable, so we can ignore the hdd0 dir for disc games in that case
2025-03-21 20:47:45 +01:00
Megamouse 650176fac7 overlays: Simplify game content search 2025-03-21 20:47:45 +01:00
Megamouse 95aad6ceb5 overlays: adjust size and position of overlay image 2025-03-21 20:47:45 +01:00
Megamouse 7cd5d812d2 overlays: add background overlay image 2025-03-21 20:47:45 +01:00
Megamouse b2ff24453c overlays: fix background image logic
Also make the path getter more generic
2025-03-21 20:47:45 +01:00
Megamouse 12eacfa67b overlays: use std::string instead of raw path argument
It will be converted to string anyway
2025-03-21 20:47:45 +01:00
Megamouse cd25e91321 VS/MSVC: Enable LTCG and GL on release builds 2025-03-21 16:35:53 +01:00
Megamouse 518bfeca3f Update libusb to 1.0.28 2025-03-20 23:52:10 +01:00
Megamouse 76495f07b8 Qt: Remove supporters from translations 2025-03-20 08:52:08 +01:00
Megamouse ccecd1a627 Qt: only show shortcut confirmation once 2025-03-20 08:52:08 +01:00
Megamouse 8f3eff293d Remove unnecessary localization 2025-03-20 08:52:08 +01:00
Megamouse 806c9230cd Fix typo 2025-03-20 08:52:08 +01:00
Megamouse 24b6b6cad5 Qt: fix handler not found in pad settings after changing language 2025-03-20 08:52:08 +01:00
Megamouse 971fd40353 Remove some useless translations 2025-03-20 08:52:08 +01:00
Megamouse 2aba8c639e Fix typo 2025-03-20 08:52:08 +01:00
Megamouse 1a51ce1e66 SPU: Add Disable SPU GETLLAR Spin Optimization checkbox 2025-03-18 09:30:28 +02:00
Hugo Locurcio 1398e7702b Improve BUILDING.md documentation
- Add llvm-devel dependency to Fedora (required to compile).
- Recommend using the Ninja generator on Linux to speed up compilation
  (and mention it in the package installation lists).
- Use shorter CMake commands and use the standard `build` folder as a target.
- Use `--recursive` in Git clone to automatically fetch submodules.
- Fix path of output binary file on Linux.
2025-03-18 02:54:49 +01:00
Vestral a45f604cd8 Fix discord-rpc build when ASLR is enabled 2025-03-18 02:32:05 +01:00
Megamouse ec29650029 Fix warning 2025-03-17 23:11:31 +01:00
Megamouse 4b31e34ea4 Qt: use white checkmarks in Darker Style 2025-03-17 23:11:31 +01:00
Megamouse ae83c28bc8 Qt: Simplify hover movie code 2025-03-17 14:41:08 +01:00
Megamouse 58327ca23c Qt/optimization: Don't look for PAM files if the game has a hover gif 2025-03-17 14:41:08 +01:00
Megamouse 5b540aed73 Qt: Do not use gamedata icon if game has custom icon 2025-03-17 14:41:08 +01:00
Megamouse 6e080044a0 Qt: fix code style of some variables 2025-03-17 14:41:08 +01:00
Megamouse 42ba0b6271 Qt: Use localized game icons and titles 2025-03-17 00:47:43 +01:00
kd-11 a1fa8dd701 config: Revert default shader compiler to async with draw-skip 2025-03-16 16:48:20 +01:00
kd-11 aea1efd5f2 rsx: Fix instancing constants lookup layout when running interpreter 2025-03-16 16:33:39 +03:00
kd-11 5ae05e26c4 vk: Implement instancing when running in interpreter mode 2025-03-16 16:33:39 +03:00
kd-11 023221bd3b gl: Reimplement driver capabilities detection in a more sane way 2025-03-16 16:33:39 +03:00
kd-11 14575f3efd rsx: Always initialize CC register in FP interpreter 2025-03-16 16:33:39 +03:00
kd-11 9f3eb33d80 gl: Double instancing buffer size to improve frametimes 2025-03-16 16:33:39 +03:00
kd-11 225d0b9482 gl: Support transform instancing in the shader interpreter 2025-03-16 16:33:39 +03:00
kd-11 65c0d3d425 gl: Add support for hardware instancing 2025-03-16 16:33:39 +03:00
kd-11 3d3fc2f3cd rsx: Fix cache invalidation when instancing state changes 2025-03-16 16:33:39 +03:00
Malcolm Jestadt f9a72e8d75 SPU LLVM: Preserve sign on inf to NaN conversion in spu_re_acc with vfixupimmps 2025-03-15 10:46:08 +02:00
Attila Fidan 7b212e0e57 sys_usbd: Fix null pointer deref on destruction 2025-03-13 01:36:09 +01:00
Jan Beich a108ce8015 CI: upgrade FreeBSD to 13.5
FreeBSD doesn't support /latest and /quarterly package repos on EOL
versions. 13.4 reaches EOL on 2025-06-30, so avoid CI breakage.
2025-03-12 23:35:59 +01:00
Megamouse ff21a05c96 Always run Actions, we need them for merges 2025-03-12 20:26:06 +01:00
Megamouse 25eb869d5f Readme: Improve build tags 2025-03-12 20:26:06 +01:00
Megamouse ff40128df6 Qt: Detach markup from dialog translations 2025-03-12 18:49:24 +01:00
kd-11 b2ed787c3a rsx: Invalidate program cache hint if the current vertex or fragment program is re-evaluated 2025-03-12 15:36:29 +03:00
Megamouse ec5b2bc8d2 Fix missing enum in switch case 2025-03-12 01:08:49 +01:00
Megamouse 3a71da35a9 Fix redundant forward declaration warning 2025-03-12 01:08:49 +01:00
Megamouse 4c788abad1 Use named_thread in gui_pad_thread 2025-03-12 01:08:49 +01:00
Megamouse 3737cc37f6 Qt: Hide interpreter_only unless it is selected or the debug mode is active 2025-03-11 06:58:23 +01:00
Megamouse d0c2cb7ae1 main: Fix some warning 2025-03-11 06:58:23 +01:00
DH db945f6aed android: do not invalidate swapchain on VK_SUBOPTIMAL_KHR
Workaround
2025-03-10 21:09:27 +01:00
Megamouse b3f5ed55a1 Set vulkan to default renderer whenever we have vulkan support 2025-03-10 21:09:27 +01:00
Megamouse fa5a16e9fc hid_init: use hid_error in log message 2025-03-10 21:09:27 +01:00
DH 0c233c6578 [android] hid: enumerate by vendor/product ids 2025-03-10 21:09:27 +01:00
DH 8100779512 hid: add support of android devices 2025-03-10 21:09:27 +01:00
DH d766baef12 fs::file: implement release_handle
cleanup
2025-03-10 21:09:27 +01:00
DH 95d0cb18e4 Coding style issues fixes
Thanks @Megamouse
2025-03-10 21:09:27 +01:00
DH 976b0a8f1d cpu stats: do not try parse /proc/stat on android 2025-03-10 21:09:27 +01:00
DH 919cb8e05c android: atomic: do not test SYS_futex_waitv syscall 2025-03-10 21:09:27 +01:00
DH cac068dad9 rsx: implement android swapchain 2025-03-10 21:09:27 +01:00
DH 7520c09087 rsx: reduce shaders_cache::unpacked_type size for android 2025-03-10 21:09:27 +01:00
DH edf096fc13 vm: do not check overcommit_memory on android 2025-03-10 21:09:27 +01:00
DH 2ebf257f84 vm: removed c_page_size, it cannot be used by globals 2025-03-10 21:09:27 +01:00
DH 57e7cee84e android: cfg: vulkan renderer is default 2025-03-10 21:09:27 +01:00
DH adaf24310d add missed include to PUP.h 2025-03-10 21:09:27 +01:00
DH 94f52d6dc0 android: jit: teach fallback_cpu_detection provide meaningful results for aarch64 2025-03-10 21:09:27 +01:00
DH 3080b55d02 cfg: remove string::get() 2025-03-10 21:09:27 +01:00
DH bbb682a440 unpkg: allow package_reader creation with provided fs::file 2025-03-10 21:09:27 +01:00
DH f3d988d8ab fs::file: add from_native_handle constructor
fs::get_*_dir tweaks for android
2025-03-10 21:09:27 +01:00
DH 2c122a4401 llvm: disable extra targets for android
explicitly specify native target, llvm determines wrongly if cross compiler used
2025-03-10 21:09:27 +01:00
DH 26ce38a4ac 3rdparty/fusion: Always do build in release mode
this library has python numpy dependency in debug build
2025-03-10 21:09:27 +01:00
DH 5084fb82b8 Android stuff 2 2025-03-10 21:09:27 +01:00
DH 798c194025 android stuff 2025-03-10 21:09:27 +01:00
kd-11 11e214f332 rsx: Handle out-of-bounds read/writes from FIFO register IO 2025-03-10 16:07:26 +03:00
AniLeo ddd3ac3663 Settings: Move 'Max Shader Compile Threads' next to the equivalent LLVM setting 2025-03-10 08:16:19 +01:00
AniLeo bacce9bb37 Settings: Move 'Vulkan Queue Scheduler' to Debug 2025-03-10 08:16:19 +01:00
AniLeo aa819c8b97 Settings: Move 'Disable On-Disk Shader Cache' to Debug 2025-03-10 08:16:19 +01:00
AniLeo af768d5c22 Settings: Move 'Disable Asynchronous Memory Manager' to Debug 2025-03-10 08:16:19 +01:00
AniLeo 2bf5ae3272 Settings: Move 'SPU Profiler' to Debug 2025-03-10 08:16:19 +01:00
AniLeo a074b14631 Settings: Move 'PPU Vector NaN Fixup' to Debug 2025-03-10 08:16:19 +01:00
AniLeo ac7d53cc37 Settings: Specify FSR 1 2025-03-10 08:16:19 +01:00
AniLeo 6d46d45983 Settings: Default 'Shader Mode' to Async with Interpreter 2025-03-10 08:16:19 +01:00
AniLeo eea2f19d82 Settings: Move 'SPU Block Size' to the middle column 2025-03-10 08:16:19 +01:00
kd-11 2dfbab457a rsx: Reupload surface if the surface cache denies knowledge of it 2025-03-09 22:01:49 +03:00
Zion Nimchuk 5e5f82d1a2 Set CI msbuild verbosity to minimal to reduce spam 2025-03-09 11:02:57 +02:00
Elad 5e4637e15c SPU LLVM: Subtract Timebase from decrementer 2025-03-09 07:42:59 +02:00
FlexBy420 a3d2e93b14 move script to .ci/generate-qt-ts.sh 2025-03-08 23:47:04 +01:00
FlexBy420 100454398c Make suggested changes and remove unnecessary package 2025-03-08 23:47:04 +01:00
FlexBy420 cce43beeae Apply suggestions from code review
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2025-03-08 23:47:04 +01:00
FlexBy420 ebcb61b34b fix the branch name in qt-ts.yml 2025-03-08 23:47:04 +01:00
FlexBy420 47b880fa8d Move ts generator job to seperate workflow file 2025-03-08 23:47:04 +01:00
FlexBy420 cd76f05a86 Create qt-ts.yml 2025-03-08 23:47:04 +01:00
FlexBy420 9173fc9815 fix branch name in .ts job 2025-03-08 23:47:04 +01:00
FlexBy420 7df5cb84b5 add a job for generating translation template file (.ts) 2025-03-08 23:47:04 +01:00
kd-11 e6b3c2061e rsx: Fix boundary seek logic for FIFO addresses 2025-03-09 01:36:26 +03:00
schm1dtmac 563a3d3587 Target macOS 14 instead of 13 (fixes camera) 2025-03-09 01:02:49 +03:00
kd-11 3be1e0b6ff rsx: Clean up and simplify texture register manipulation tests 2025-03-08 22:10:55 +03:00
kd-11 93899bf5a9 rsx/FIFO: Reimplement grabbing command args as a contiguous pointer
- Allows grabbing indefinite size of buffer as long as the data is contiguously mapped.
2025-03-08 22:10:55 +03:00
kd-11 ec120d1cbb rsx: Add stubs for FP rehash checks on barrier acquire 2025-03-08 22:10:55 +03:00
kd-11 df7a2ab467 rsx: Unify fragment texture config changes dirty bit tracking
- Reverts unnecessary changes to dirty tracking.
- The GPU keeps a separate set of details, so all dirty bits are treated equal.
2025-03-08 22:10:55 +03:00
kd-11 a39a743abe rsx/prog: Fix compiler warning 2025-03-08 22:10:55 +03:00
kd-11 eca86ad449 rsx: Add program cache lookup ellision rate to overlay 2025-03-08 22:10:55 +03:00
kd-11 a1c8f3a528 rsx/prog: Use a proper cache hint key instead of disjointed counters 2025-03-08 22:10:55 +03:00
Elad 26495a8455 SPU: Fixup 2025-03-08 14:21:57 +02:00
Elad 32df7315be RSX: Do not invalidate FP analysis on same register writes 2025-03-08 14:21:57 +02:00
Elad 7995181235 RSX: Return FP shader as is if no changes were made 2025-03-08 14:21:57 +02:00
Elad 75dc2a12e2 RSX: Return VP shader as is if no changes were made 2025-03-08 14:21:57 +02:00
Elad ae39c5b8cb RSX: Optimize vertex program ucode invalidation 2025-03-08 14:21:57 +02:00
Megamouse eb43fbbb2a Update SDL to 3.2.8 2025-03-08 10:03:00 +01:00
Elad e4ed5c47a3 Fixup 2025-03-08 10:48:21 +02:00
Elad e4b9a21acc SPU Analyzer: Fix for value propagation 2025-03-08 10:36:26 +02:00
Whatcookie bfb9dfea7e RSX: ProgramStateCache loops optimizations 2025-03-07 09:54:12 +02:00
Elad 8ed2089070 RSX: Fix UB in FIFO_control::get_current_arg_ptr() 2025-03-07 09:41:52 +02:00
JoãoPaulo 583ec5d819 Update FW 4.92 Latest Version (#16811)
Update FW 4.92 Latest Version
Updates the latest FW version according to: https://www.playstation.com/en-us/support/hardware/ps3/system-software/
List of changes:
This system software update improves system performance.
2025-03-05 15:00:07 +02:00
kd-11 59280a133c vk: Do not force strict query scopes by default 2025-03-05 14:40:35 +03:00
Megamouse ba12de867e static analysis: fix memory leak in decompress 2025-03-05 00:12:30 +01:00
Megamouse ca3d02fc61 static analysis: ensure is always false 2025-03-05 00:12:30 +01:00
Megamouse a49c4c7682 static analysis: duplicate assignment 2025-03-05 00:12:30 +01:00
Megamouse 4f52c67566 static analysis: suspicious code 2025-03-05 00:12:30 +01:00
Megamouse 7a6a96254c static analysis: remove unused overrides 2025-03-05 00:12:30 +01:00
Megamouse 6abb863a54 static analysis: std::move 2025-03-05 00:12:30 +01:00
Megamouse e8463403f5 static analysis: uninitialized variables 2025-03-05 00:12:30 +01:00
Megamouse 815a4e7dc1 static analysis: less references 2025-03-05 00:12:30 +01:00
Megamouse df2f68da44 static analysis: more const ref 2025-03-05 00:12:30 +01:00
Megamouse a8fc3f5f74 static analysis: more const 2025-03-05 00:12:30 +01:00
Megamouse d3c5cc7b13 ci: Use more variables for LLVM and QT 2025-03-04 23:44:45 +01:00
Megamouse 760e43ad2c VS: move LLVM AdditionalDependencies to rpcs3_default.props 2025-03-04 23:44:45 +01:00
Megamouse 229734e45f VS: add some missing filters 2025-03-04 23:44:45 +01:00
RipleyTom 66952fe301 Add memory breakpoints
RPCS3 needs to be compiled with -DHAS_MEMORY_BREAKPOINTS=ON for it to be available
2025-03-04 15:41:36 +01:00
Megamouse cb659474d9 overlays: fix friends/trophy list input on paused emulation 2025-03-03 18:21:35 +01:00
Megamouse d429776418 Qt/patches: Only consider bootable games 2025-03-03 17:49:31 +01:00
Megamouse d034f6a77f Qt/patches: move game list loop to patch manager
This deduplicates some code
2025-03-03 17:49:31 +01:00
Malcolm Jestadt 1920aee415 RSX: Fix issue where linux builds could hit illegal instruction on machines without AVX-512
- Place avx-512 function attributes in their own functions
2025-03-03 15:58:55 +03:00
Elad 783079266e Emulator: Implement config CLI args, add barrier for host CLI args 2025-03-03 06:54:00 +02:00
Megamouse bd41774960 overlays/osk: implement horizontal scroll 2025-03-02 23:44:08 +01:00
Megamouse 4aa25285a3 overlays: use thread local static vector in get_glyph_data 2025-03-02 23:44:08 +01:00
Megamouse 7fd1f5b5d3 Fix some warning 2025-03-02 23:44:08 +01:00
Megamouse 72ee5ed10d overlays: add ability to hide hidden trophies 2025-03-02 23:02:22 +01:00
Megamouse 048a44cbe5 overlays: add getter for selected entry 2025-03-02 23:02:22 +01:00
Megamouse 6f5f7ece06 overlays: fix and optimize layout exit loops 2025-03-02 23:02:22 +01:00
Zion Nimchuk b3d28e2309 Switch Windows and Linux x64 builds and deployments to GitHub Actions 2025-03-02 22:35:04 +01:00
trigger 1dc3ebf891 SPU Analyzer: A fixup for crash, TODO: proper fix 2025-03-02 10:24:42 +02:00
Malcolm Jestadt 6bd1ab576c RSX: Use AVX-512-ICL code in get_vertecx_program_ucode_hash and in vertex_program_compare
- Code is about 4 times as fast on my zen4 machine
- Should be twice as fast on zen5 machines with full width AVX-512
2025-03-02 09:07:07 +02:00
trigger 8e6272bfee Qt: Fix boot failed dialog 2025-03-01 20:00:21 +01:00
kd-11 0aca5e222f vk: Fix MacOS build 2025-03-01 18:02:32 +03:00
kd-11 b8411a90cd vk/swapchain: Fix WSI swapchain configuration overrides 2025-03-01 18:02:32 +03:00
kd-11 4e9365f76b vk/swapchain: Consolidate native swapchain implementation for platforms where it is not implemented
- NATIVE swapchain only matters in headless scenarios or where we otherwise cannot access WSI properly.
- It is now optional, with a stub provided when WSI is not available.
2025-03-01 18:02:32 +03:00
kd-11 602fe15641 vk/swapchain: Move platform-specific code to appropriate headers 2025-03-01 18:02:32 +03:00
kd-11 8b2e792d31 vk: Refactor swapchain into separate platform headers 2025-03-01 18:02:32 +03:00
kd-11 aca1cdf0b6 vk: Refactor instance management header 2025-03-01 18:02:32 +03:00
trigger af23df842d PPU: Report encrypted modules with KLIC in main file, opportunistic compilation at exit-spawn (#16743) 2025-03-01 11:45:03 +02:00
Ani b266e3d4bf rpcs3_version: Bump to 0.0.35 2025-03-01 00:11:02 +00:00
Zion Nimchuk 4e08242074 Remove ProgramDatabase from libpng and zlib 2025-02-28 18:37:50 +01:00
Zion Nimchuk 0690315d9e Use ccache on Windows CI build 2025-02-28 18:37:50 +01:00
Elad 207ee59acd PPU Analyzer: Firmware/import caller analysis and KLIC finding pass 2025-02-27 12:32:21 +02:00
Zion Nimchuk e97bfecb7f Deploy aarch64 builds via via GitHub Actions instead of Cirrus 2025-02-26 21:59:20 +01:00
Megamouse fe1fd86216 move texture_cache_types implementation to cpp 2025-02-26 19:42:31 +01:00
Megamouse 4f3f155bbf Update zstd to 1.5.7 2025-02-26 14:08:56 +01:00
Megamouse f284849fce Update curl to 8.12.1 2025-02-26 14:08:56 +01:00
Megamouse 527da94dfa Update libpng to 1.6.47 2025-02-26 14:08:56 +01:00
Megamouse 7970c2a6af Update SDL to 2.32.0 2025-02-26 14:08:56 +01:00
Megamouse c61199dd27 Fix signed vs unsigned comparison warning 2025-02-26 14:08:56 +01:00
oltolm 29ad4ecc78 concepts: fix review notes 2025-02-26 11:04:02 +02:00
oltolm ebde5310b9 use concepts instead of std::enable_if 2025-02-26 11:04:02 +02:00
Megamouse 5e6aef5dfd cellMic: fix division by zero 2025-02-26 07:53:33 +01:00
Megamouse cb539579b5 Qt: log microphone list 2025-02-26 07:53:33 +01:00
Megamouse d0d136ede5 github actions: rename jobs 2025-02-25 20:33:03 +01:00
Megamouse 4df1f9fb18 Move permissions to own file 2025-02-25 19:45:43 +01:00
Megamouse 3c576da42f Move debugger functions to emu_utils.cpp 2025-02-25 19:45:43 +01:00
Megamouse 709e3d2822 Move sys_time fmt to date_time.cpp 2025-02-25 19:45:43 +01:00
Megamouse 9082908606 Move is_input_allowed to GSFrameBase 2025-02-25 19:45:43 +01:00
Megamouse 8d801dadc4 Move display sleep functions to emu callbacks 2025-02-25 19:45:43 +01:00
Megamouse 87db82cacd Move check_microphone_permissions to emu callbacks 2025-02-25 19:45:43 +01:00
Megamouse d33d3a9f57 Move cheat_type fmt to cheat_info.cpp 2025-02-25 19:45:43 +01:00
Zion Nimchuk 4794558c08 Fix Azure and Github Actions CI caching 2025-02-24 10:51:09 +01:00
Darkhost1999 a44bd97cda Update QT to 6.8.2
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.8.2/release-note.md
2025-02-24 09:23:07 +01:00
Zion Nimchuk 807c5e2240 Add opencv to linux CI and specify which modules we want to use 2025-02-24 08:33:24 +02:00
oltolm b08273b127 Use Microsoft::WRL::ComPtr (#16744) 2025-02-23 15:39:39 +02:00
Elad 796a237128 PKG: Refactor and proper support for IDU 2025-02-22 15:01:47 +02:00
Malcolm Jestadt bd49c6bedb SPU LLVM: Small FCGT optimization 2025-02-22 07:35:14 +02:00
Elad 86a832da29 unpkg: Add support for IDU packages 2025-02-21 17:25:23 +02:00
Ivan Podogov e72cb6801a Add DXT1-5 decompression on ARM 2025-02-20 14:57:57 +03:00
trigger 1e01511ca0 cellMic: Implement SIGSTATE_MICENG 2025-02-20 11:57:41 +02:00
¥IGA 26e0f56bf9 CI: Use windows-2025 Runner 2025-02-20 09:50:36 +02:00
RipleyTom 157e73b67e Add missing NotFound error handling in LeaveRoom reply 2025-02-20 07:58:03 +02:00
RipleyTom 6074480ffb Reset presence when terminating NP 2025-02-19 11:14:55 +02:00
illusion0001 ec3d9a2cae Fix ARM matrix and review comments
Co-authored-by: Megamouse <studienricky89@googlemail.com>
Co-authored-by: Zion <zionnimchuk@gmail.com>
2025-02-17 21:11:39 +00:00
Aleksey Komarov c7c45bf2b8 Add arm64 build, update Qt version and docker image for github actions 2025-02-17 21:11:39 +00:00
illusion0001 49f6c5cdca GitHub Actions CI Port 2025-02-17 21:11:39 +00:00
Elad 52edef0867 Remove xxHash submodule 2025-02-17 18:00:01 +02:00
RipleyTom 0e5014788b Fix SignalingHelper notification 2025-02-17 07:42:33 +02:00
Malcolm Jestadt 7b9aaacc4b RSX: ProgramStateCache logic cleanup and microoptimizations
- Eliminate some redundant checks in fragment and vertex comparison functions
- Add is_any_src_constant optimization, eliminates 1 instruction per loop
2025-02-16 12:28:10 +02:00
Malcolm Jestadt d891b83e4b RSX: Use checksum with rotated inputs for shader hashing instead of FNV
- Raises FPS from ~180 to ~200 in Ninja Gaiden
2025-02-16 12:28:10 +02:00
oltolm 7e10aa57c4 CMakeLists.txt: add option to disable LTO 2025-02-15 20:33:25 +00:00
oltolm e3f57074aa cmake: fix build after 3rdparty updates 2025-02-15 20:33:25 +00:00
RipleyTom a29ecaf1d3 Fix sendto for p2ps packets 2025-02-14 22:28:11 +00:00
Megamouse cefcaaf287 Qt: enable updater for linux arm 2025-02-13 18:49:14 +01:00
Jan Beich 800c0f7a56 CI: drop fragile bundled libc++ on FreeBSD
- RPCS3 still uses C++20 which no longer needs recent Clang/libc++
- FreeBSD releases more frequently, bringing newer Clang/libc++
- bundled libc++ wastes too much limited CI time
2025-02-13 13:37:36 +00:00
Jan Beich 2593077361 CI: only use headers from bundled libc++ on FreeBSD
Linking different versions of libc++ can cause ABI issues but new C++
features are usually limited to headers.

ld: error: undefined symbol: operator new(unsigned long, std::align_val_t)
>>> referenced by string.cpp
>>>               string.cpp.o:(void* std::__1::__libcpp_operator_new[abi:ne190107]<unsigned long, std::align_val_t>(unsigned long, std::align_val_t)) in archive /tmp/cirrus-ci-build/libcxx_prefix/lib/libc++.a
>>> referenced by memory_string_searcher.cpp
>>>               memory_string_searcher.cpp.o:(memory_viewer_panel::OnSearch(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned int)) in archive rpcs3/rpcs3qt/librpcs3_ui.a
>>> referenced by game_list_frame.cpp
>>>               game_list_frame.cpp.o:(stx::auto_typemap<game_list_frame, 0u, 16u>::auto_typemap()) in archive rpcs3/rpcs3qt/librpcs3_ui.a
>>> referenced 23 more times
2025-02-13 13:37:36 +00:00
Jan Beich e4595f63c4 CI: unbreak bundled libc++ on FreeBSD after 363a225554
CMake Error at src/CMakeLists.txt:262 (add_custom_command):
  Error evaluating generator expression:

    $<TARGET_PROPERTY:libcxx-abi-shared,IMPORTED_LIBNAME>

  Target "libcxx-abi-shared" not found.

CMake Error at libcxx_build/include/cmake_install.cmake:4117 (file):
  file INSTALL cannot find "/tmp/cirrus-ci-build/libcxx_build/include/c++/v1/libcxx.imp": No
  such file or directory.
2025-02-13 13:37:36 +00:00
Jan Beich b7b5774df1 CI: unbreak bundled libc++ on FreeBSD after 67703b49d8
CMake Error at modules/CMakeLists.txt:221 (file):
  file RELATIVE_PATH must be passed a full path to the directory:
  libcxx_prefix/lib
2025-02-13 13:37:36 +00:00
Jan Beich f60fb5a70e CI: upgrade FreeBSD to 13.4
FreeBSD doesn't support /latest and /quarterly package repos on EOL
versions. 13.3 reached EOL on 2024-12-31, so avoid CI breakage.

Failed to start an instance: INVALID_ARGUMENT: Not Found 404 Not Found
The resource 'projects/freebsd-org-cloud-dev/global/images/family/freebsd-13-3' was not found
2025-02-13 13:37:36 +00:00
Jan Beich 19077ee1ed cpu_stats: restore a header for BSDs after cd87a64621
rpcs3/util/cpu_stats.cpp:390:4: error: use of undeclared identifier 'getpid'
  390 |                         getpid(),
      |                         ^
2025-02-13 13:37:36 +00:00
Vestrel 26df3a8452 Add Cubeb log callback (#16510)
Co-authored-by: Elad <18193363+elad335@users.noreply.github.com>
2025-02-13 13:47:12 +02:00
Takuya Wakazono b63140b423 Fix build without vulkan
Since commit 4594c91 made SPIRV required dependency, it needs to be
linked in CMakeLists.txt regardless of USE_VULKAN.
2025-02-13 11:48:36 +01:00
RipleyTom eeff7b0f0a Fix Aarch Linux CI 2025-02-13 11:14:35 +02:00
RipleyTom f15ed36da1 Fix Change Password dialog not saving the new password on success 2025-02-13 07:04:08 +01:00
RipleyTom 1efca833a4 Fix missing NoError error checking in a few sceNpGUI functions 2025-02-13 07:04:08 +01:00
RipleyTom 159370446f RPCN v1.4 2025-02-12 15:00:50 +01:00
Malcolm Jestadt a9b0f76698 cmake: Enable LTO for rpcs3_emu target
- Provides a small speedup and saves some space in the binary.
2025-02-12 09:46:53 +02:00
kd-11 7fcd747819 rsx: Fix internal res tracking 2025-02-12 01:58:52 +03:00
RipleyTom cd87a64621 Headers cleanup 2025-02-11 20:38:35 +01:00
Elad 63147fdede Remove ppu_acontext 2025-02-11 16:12:33 +02:00
Malcolm Jestadt dfd83bc7a4 SPU LLVM: Add two dependency chains for SPU verification
- Should restore performance to match the xorsum builds
2025-02-11 12:30:21 +02:00
kd-11 3392f0a271 gl: Fix stencil resolve for NVIDIA cards
- Only NV cards fail to expose ARB_shader_stencil_export which forces a very clunky workaround
- Fix stencil parameter initialization
2025-02-11 02:28:31 +03:00
kd-11 10d5907f46 rsx: Implement framebuffer statistics to track the internal render resolution at runtime. 2025-02-11 02:28:31 +03:00
kd-11 0f3d2c7085 gl: Implement MSAA transparency (sample-to-coverage) 2025-02-11 02:28:31 +03:00
kd-11 485927ed0d gl: Fix crash when launching multiple games with MSAA enabled 2025-02-11 02:28:31 +03:00
kd-11 0d4f3cf0a5 Allow MSAA selection in the UI 2025-02-11 02:28:31 +03:00
kd-11 4f08bfd0a2 Fix compilation on clang 2025-02-11 02:28:31 +03:00
kd-11 54e7cb8d9e vk: Silence spec validation error on NV cards 2025-02-11 02:28:31 +03:00
kd-11 fab39a6495 gl: Add support for "hw MSAA resolve" option 2025-02-11 02:28:31 +03:00
kd-11 008bfa2cd2 gl: Add extra checks around invalid render/compute passes
- These would have saved a lot of time debugging problems
2025-02-11 02:28:31 +03:00
kd-11 5907a6a67d gl: Fix crash in texture cache due to incorrect surface handling 2025-02-11 02:28:31 +03:00
kd-11 85880e6037 gl: Implement remaining resolvers
- Add support for NVIDIA cards
- Implement all depth-stencil resolver passes
2025-02-11 02:28:31 +03:00
kd-11 042be7d7d1 gl: Implement basic MSAA rendertarget support
- Enough to get some popular titles working.
- Some depth resolvers still need work
2025-02-11 02:28:31 +03:00
kd-11 26d85e53a4 vk: Fix extension initialization during device creation
- Fix crash when using device_fault extension
- Fix spec violation when using conditional rendering
2025-02-11 02:28:31 +03:00
kd-11 f3e913b56a vk: Redesign resource binding for overlay passes 2025-02-11 02:28:31 +03:00
kd-11 99ace42447 gl: Enforce full image creation argument declaration
- Closes a class of bugs caused by implicit conversion of similar argument types
2025-02-11 02:28:31 +03:00
kd-11 6c6d03ac5e gl: Upgrade the surface cache to become MSAA-aware 2025-02-11 02:28:31 +03:00
kd-11 8249b5dbfa gl: Implement MSAA resolve/unresolve for color images 2025-02-11 02:28:31 +03:00
kd-11 2a4bd6a7fc gl: Implement multisampled image creation 2025-02-11 02:28:31 +03:00
kd-11 82981384d5 vk: Move MSAA resolve/unresolve shaders to common GPU program layer 2025-02-11 02:28:31 +03:00
kd-11 a7a49d9eaa gl: Plumb stubbed MSAA support into the render target handlers 2025-02-11 02:28:31 +03:00
kd-11 808f67a3b2 gl: Stub dynamic sample count when creating textures 2025-02-11 02:28:31 +03:00
Elad 9a7b8e41eb PPU Analyzer: Minor Fixup 2025-02-09 14:28:08 +02:00
Elad c7e853bf99 PPU Analyzer: GPR-assisted jump table analysis 2025-02-07 20:27:17 +02:00
Elad ac97b36b1c PPU Analyzer: Opt-out suspected floats from instruction stream 2025-02-07 20:27:17 +02:00
Elad 181c92a868 PPU Analyzer: Clean addr_heap fron non-valid code
Should speed up analysis in some cases.
2025-02-07 20:27:17 +02:00
Elad 86b7078464 PPU LLVM: Fix compilation of PRX with no relocations 2025-02-07 20:27:17 +02:00
Megamouse a1a0333e56 cellVdec: implement cellVdecOpenExt 2025-02-06 19:31:23 +01:00
Megamouse 85715e893b win: Add more llvm prebuilt paths 2025-02-06 18:07:53 +01:00
Megamouse 2897297252 Update docker for llvm 19 2025-02-06 18:07:53 +01:00
Megamouse 17b75cd010 mac/llvm: fix libunwind path 2025-02-06 18:07:53 +01:00
Megamouse 363a225554 Update LLVM to 19.1.7 2025-02-06 18:07:53 +01:00
Megamouse 449c23ba4e cellL10n: implement SBCS conversions 2025-02-06 09:38:17 +01:00
Megamouse 78ee489906 Update curl to 8.12.0 2025-02-06 00:32:19 +01:00
Megamouse cec1004da8 cellL10n: fix compilation on linux 2025-02-05 07:51:47 +01:00
Megamouse 666bbeba6e cellL10n: Use string_view 2025-02-05 07:51:47 +01:00
Megamouse 770b2ab26d cellL10n: implement ucs2/utf8/16/23 conversions 2025-02-05 07:51:47 +01:00
Elad 2420aa7a21 Fixup PPU block unfolding 2025-02-04 20:33:24 +02:00
Megamouse a5d07af89a cellMusic: always select the whole playlist instead of a single track 2025-02-04 18:13:07 +01:00
Megamouse 9bccdf4f71 cellMusic: fix volume. Qt needs a value between 0 and 1 2025-02-04 18:13:07 +01:00
Megamouse b5dbafb3e2 cellMusic: make selection context valid when setting a playlist 2025-02-04 18:13:07 +01:00
Megamouse 22a1f41ecb Input/DS4: use hid_write instead of hid_write_control
Apparently this was only needed for Windows 7
2025-02-04 12:06:31 +01:00
Megamouse 739c4bcfc8 Qt: ignore all game window hotkeys on "disable kb hotkeys" 2025-02-04 09:39:34 +01:00
Megamouse 85f288651b cellGem: reduce cellCamera log spam by setting some camera features 2025-02-04 03:09:27 +01:00
Megamouse 50387cc516 update_manager: use v3 api for all OS 2025-02-03 22:53:53 +00:00
kd-11 6123838a48 ppu/arm64: Fix ppu_recompiler_fallback implementation for ARM processors 2025-02-02 22:44:42 +03:00
Megamouse 7ffbada725 Update SDL to 2.30.12 2025-02-02 17:06:39 +01:00
Megamouse 88776ceaa6 Update Fusion to 1.2.8 2025-02-02 17:06:39 +01:00
Megamouse 35fbdd0bae Update FAudio to 25.02 2025-02-02 17:06:39 +01:00
Megamouse 0770c28207 Update libpng to 1.6.46 2025-02-02 17:06:39 +01:00
Megamouse 92979d23cf Set openal system version to 10.0 2025-02-02 17:06:39 +01:00
Megamouse 3187dc816e Fix some warnings 2025-02-02 17:06:39 +01:00
kd-11 cfd571cfc2 Re-enable TSC on ryzen CPUs 2025-02-02 17:45:50 +03:00
kd-11 89eb473dce rsx: Fix graphics corruption when switching between shader interpreter and recompiler at runtime 2025-02-02 12:08:05 +03:00
Malcolm Jestadt 911f0928cf SPU LLVM: Replace xorsum with simple checksum
- Fixes crashes in GTAV
2025-02-01 21:40:30 +02:00
Elad 394fc8eb79 Enable Time-based TSC for non-Ryzen CPUs 2025-01-31 14:35:08 +02:00
Elad 57b6ced957 PPU Analyzer: Fix per-instruction code submission 2025-01-31 13:01:53 +02:00
Malcolm Jestadt 506d92107c SPU LLVM: Use 512bit xorsum for SPU verification
- Provides a 2-3% uplift in SPU limited titles
- Removes the full_width_avx512 option
- Adds a precise spu verification option, for debugging (config file only)
2025-01-31 12:03:05 +02:00
Elad 665bb83297 Fix Savestates recent regression 2025-01-28 18:49:19 +02:00
Elad 7fc0f69e48 PPU LLVM: Fix HLE patches 2025-01-28 12:51:52 +02:00
Megamouse 67703b49d8 Update LLVM to 18.1.8 2025-01-25 18:15:13 +01:00
Megamouse ad6eba1670 Fix some warnings 2025-01-25 17:06:35 +01:00
Megamouse 0ef2e96121 Fix segfault on missing firmware
Wait until kill to close the gs_frame on error
2025-01-25 17:06:35 +01:00
Megamouse 664e09f1ff Qt: Fix Recent savestate path 2025-01-25 15:39:05 +01:00
Megamouse 27baab992a Qt: Add path to recent game/savestate tooltip 2025-01-25 15:39:05 +01:00
Megamouse 099e3c67b2 Qt: fix recent savestate shortcuts 2025-01-25 15:39:05 +01:00
Megamouse 959d8fc25c Qt: Fix recent savestates menu settings 2025-01-25 15:39:05 +01:00
Elad 5ef442c2b8 Disable ARM trampolines 2025-01-25 12:47:44 +02:00
Elad ba79e092a0 Protect RPCS3 from built-in PS2 emulator 2025-01-25 12:47:44 +02:00
Elad 9677a3a9ea Fix Emulator::IsPaused() to allow measurements during module compilation
Also fix a potential deadlock in access violation handler for non-cpu_thread
2025-01-25 12:47:44 +02:00
Elad 4c0832e6e6 PPU LLVM: Reduce size of JIT-transition treampolines to 16 2025-01-25 12:47:44 +02:00
Elad 6fc643f483 JITASM.cpp: add assert for code building 2025-01-25 12:47:44 +02:00
Elad 3f4210437d JIT.h: Add option for lowered function size 2025-01-25 12:47:44 +02:00
Elad 67f2356ef7 JIT.h: Use kOptimizeForSize 2025-01-25 12:47:44 +02:00
Elad 81d0dd686b LLVM: Add explicit resource-freeing at emulation stop 2025-01-25 12:47:44 +02:00
Elad a24e747e16 PPU LLVM: Disable an experimental limit 2025-01-25 12:47:44 +02:00
Elad 05f52246a2 PPU LLVM: Simplify module progress
Do not mix module compilation with linking.
2025-01-25 12:47:44 +02:00
Elad b46408d554 PPU Analyzer: Report invalid functions 2025-01-25 12:47:44 +02:00
Elad 58701000cd PPU Analyzer: Clean addr_heap from non-relocations (PRX) 2025-01-25 12:47:44 +02:00
Elad 5a5e475c6e PPU Analyzer: Move ppu_function::callers to lower sizeof(ppu_function) 2025-01-25 12:47:44 +02:00
Elad ff89a08ee4 PPU Analyzer: Remove ppu_function::calls to lower sizeof(ppu_function)
Use blocks to get calls.
2025-01-25 12:47:44 +02:00
Elad f5487e9137 PPU Analyzer: Use std::map::extract to reduce peak memory consumption 2025-01-25 12:47:44 +02:00
Elad 857eac3d10 PPU Analyzer: Remove ppu_function::name to lower sizeof(ppu_function) 2025-01-25 12:47:44 +02:00
Elad f0fa8e3bc3 Remove ppu_attr::known_addr 2025-01-25 12:47:44 +02:00
Elad 9d5b75bb7a LLVM: Slice PPU executable memory 2025-01-25 12:47:44 +02:00
Elad 7b8fee7cdb Thread.cpp: Report VM addresses on VM segfault 2025-01-25 12:47:44 +02:00
Elad 64c53fcc61 LLVM: Install error reporting handler 2025-01-25 12:47:44 +02:00
Megamouse 10d038e43f Qt: Fix device notification registration segfault
The main window does not exist if we boot with no-gui
2025-01-25 00:57:22 +01:00
Sanjay Govind f1f85335a7 sys_usbd: Fix emulated devices not being created without a physical device (#16608) 2025-01-24 08:44:10 +01:00
Megamouse bd1ebb7a10 Qt: add savestate manager dialog 2025-01-24 05:32:19 +01:00
Sanjay Govind e2bbaa2430 libusb: support hotplug (#16580) 2025-01-23 23:49:24 +01:00
Megamouse ba702509c8 Qt: Add Recent savestates menu 2025-01-23 22:55:07 +01:00
Megamouse 448666c896 Log LLVM version 2025-01-23 18:01:16 +01:00
Megamouse 8f660fc6b1 cellGem: update gun handler connection periodically 2025-01-23 12:35:02 +01:00
Sanjay Govind fd66b6b103 cellPad: Send disconnection notification when swapping device class 2025-01-23 09:19:37 +01:00
Megamouse e83eeb3cca cellGem: Move the cursor out of the screen (Time Crisis 4 needs this) 2025-01-23 08:18:07 +01:00
Megamouse f537a62ca6 cellGem: Set 255 as value for analog_t 2025-01-23 08:18:07 +01:00
Megamouse b30ea34d05 cellGem: mark device as not visible at the screen borders 2025-01-23 08:18:07 +01:00
Megamouse 6fddb31a07 Qt/input: reset gui pad thread when saving pad settings 2025-01-22 20:47:07 +01:00
Megamouse 79d79aa80c cellCamera: move attach event to thread
Time crisis doesn't seem to like the immediate push to the queue.
2025-01-22 02:18:07 +01:00
Megamouse fbc7ad6788 cellGem: move some locks around wait loops 2025-01-22 02:18:07 +01:00
Megamouse fcac6a9322 sys_event: remove unnecessary copy 2025-01-22 02:18:07 +01:00
Megamouse dc700ad620 cellCamera: close Qt camera on error (e.g. when usb is pulled) 2025-01-22 02:18:07 +01:00
Megamouse 74540844d2 cellGem: ignore missing pad handler
This is a hacky way to fix cellGem savestates
2025-01-22 02:18:07 +01:00
Megamouse 23483a80c7 cellGem: Fix camera image when loading savestates 2025-01-22 02:18:07 +01:00
Megamouse ade2698bb4 cellCamera: start camera when loading savestates 2025-01-22 02:18:07 +01:00
Megamouse 85de7432a2 cellGem: improve convert_image_format logging 2025-01-22 02:18:07 +01:00
Megamouse 6805c36004 Decrease log level of config file move error 2025-01-22 02:18:07 +01:00
919 changed files with 38542 additions and 54192 deletions
+7 -16
View File
@@ -1,23 +1,10 @@
#!/bin/sh -ex
# Pull all the submodules except llvm and opencv
# 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 --depth 1 $(awk '/path/ && !/llvm/ && !/opencv/ { print $3 }' .gitmodules)
# Prefer newer Clang than in base system (see also .ci/install-freebsd.sh)
# libc++ isn't in llvm* packages, so download manually
fetch https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.1/llvm-project-16.0.1.src.tar.xz
tar xf llvm*.tar.xz
export CC=clang16 CXX=clang++16
cmake -B libcxx_build -G Ninja -S llvm*/libcxx \
-DLLVM_CCACHE_BUILD=ON \
-DLIBCXX_INCLUDE_BENCHMARKS=OFF \
-DCMAKE_INSTALL_PREFIX:PATH=libcxx_prefix
cmake --build libcxx_build
cmake --install libcxx_build
export CXXFLAGS="$CXXFLAGS -nostdinc++ -isystem$PWD/libcxx_prefix/include/c++/v1"
export LDFLAGS="$LDFLAGS -nostdlib++ -L$PWD/libcxx_prefix/lib -l:libc++.a -lcxxrt"
git config --global --add safe.directory .
git submodule -q update --init --depth 1 $(awk '/path/ && !/llvm/ && !/opencv/ && !/libpng/ && !/libsdl-org/ && !/curl/ && !/zlib/ && !/libusb/ && !/feralinteractive/ { print $3 }' .gitmodules)
CONFIGURE_ARGS="
-DWITH_LLVM=ON
@@ -27,9 +14,13 @@ CONFIGURE_ARGS="
-DUSE_SYSTEM_FFMPEG=ON
-DUSE_SYSTEM_CURL=ON
-DUSE_SYSTEM_LIBPNG=ON
-DUSE_SYSTEM_LIBUSB=ON
-DUSE_SYSTEM_OPENCV=ON
"
# base Clang workaround (missing clang-scan-deps)
CONFIGURE_ARGS="$CONFIGURE_ARGS -DCMAKE_CXX_SCAN_FOR_MODULES=OFF"
# shellcheck disable=SC2086
cmake -B build -G Ninja $CONFIGURE_ARGS
cmake --build build
Regular → Executable
+23 -16
View File
@@ -1,26 +1,37 @@
#!/bin/sh -ex
if [ -z "$CIRRUS_CI" ]; then
cd rpcs3 || exit 1
fi
cd rpcs3 || exit 1
shellcheck .ci/*.sh
git config --global --add safe.directory '*'
# Pull all the submodules except llvm and opencv
# Pull all the submodules except some
# shellcheck disable=SC2046
git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ { print $3 }' .gitmodules)
git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ && !/libsdl-org/ && !/curl/ && !/zlib/ { print $3 }' .gitmodules)
mkdir build && cd build || exit 1
export CC="${CLANG_BINARY}"
export CXX="${CLANGXX_BINARY}"
if [ "$COMPILER" = "gcc" ]; then
# These are set in the dockerfile
export CC="${GCC_BINARY}"
export CXX="${GXX_BINARY}"
export LINKER=gold
else
export CC="${CLANG_BINARY}"
export CXX="${CLANGXX_BINARY}"
export LINKER="${LLD_BINARY}"
fi
export LINKER_FLAG="-fuse-ld=${LINKER}"
cmake .. \
-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}" \
-DUSE_SYSTEM_CURL=ON \
-DUSE_SDL=ON \
-DUSE_SYSTEM_SDL=ON \
@@ -30,19 +41,15 @@ cmake .. \
-DOpenGL_GL_PREFERENCE=LEGACY \
-DLLVM_DIR=/opt/llvm/lib/cmake/llvm \
-DSTATIC_LINK_LLVM=ON \
-DBUILD_RPCS3_TESTS="${RUN_UNIT_TESTS}" \
-DRUN_RPCS3_TESTS="${RUN_UNIT_TESTS}" \
-G Ninja
ninja; build_status=$?;
cd ..
shellcheck .ci/*.sh
# If it compiled succesfully let's deploy.
# 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
if [ "$build_status" -eq 0 ]; then
.ci/deploy-linux.sh "aarch64"
fi
+12 -13
View File
@@ -1,15 +1,15 @@
#!/bin/sh -ex
if [ -z "$CIRRUS_CI" ]; then
cd rpcs3 || exit 1
fi
cd rpcs3 || exit 1
shellcheck .ci/*.sh
git config --global --add safe.directory '*'
# Pull all the submodules except llvm and opencv
# 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/ { print $3 }' .gitmodules)
git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ && !/libsdl-org/ && !/curl/ && !/zlib/ { print $3 }' .gitmodules)
mkdir build && cd build || exit 1
@@ -30,7 +30,7 @@ else
export RANLIB=/usr/bin/llvm-ranlib-"$LLVMVER"
fi
export CFLAGS="$CFLAGS -fuse-ld=${LINKER}"
export LINKER_FLAG="-fuse-ld=${LINKER}"
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr \
@@ -38,6 +38,9 @@ cmake .. \
-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 \
@@ -49,19 +52,15 @@ cmake .. \
-DOpenGL_GL_PREFERENCE=LEGACY \
-DLLVM_DIR=/opt/llvm/lib/cmake/llvm \
-DSTATIC_LINK_LLVM=ON \
-DBUILD_RPCS3_TESTS="${RUN_UNIT_TESTS}" \
-DRUN_RPCS3_TESTS="${RUN_UNIT_TESTS}" \
-G Ninja
ninja; build_status=$?;
cd ..
shellcheck .ci/*.sh
# If it compiled succesfully let's deploy.
# 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
if [ "$build_status" -eq 0 ]; then
.ci/deploy-linux.sh "x86_64"
fi
Regular → Executable
+41 -78
View File
@@ -1,65 +1,26 @@
#!/bin/sh -ex
# shellcheck disable=SC2086
brew_arm64_install_packages() {
for pkg in "$@"; do
echo "Fetching bottle for $pkg (arm64)..."
bottle_path="$("$BREW_ARM64_PATH/bin/brew" --cache --bottle-tag=arm64_ventura "$pkg")"
if [ ! -f "$bottle_path" ]; then
if ! "$BREW_ARM64_PATH/bin/brew" fetch --force --verbose --debug --bottle-tag=arm64_ventura "$pkg"; then
echo "Failed to fetch bottle for $pkg"
return 1
fi
bottle_path="$("$BREW_ARM64_PATH/bin/brew" --cache --bottle-tag=arm64_ventura "$pkg")"
fi
echo "Installing $pkg (arm64)..."
"$BREW_ARM64_PATH/bin/brew" install --force --force-bottle --ignore-dependencies "$bottle_path" || true
done
}
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
export HOMEBREW_NO_ENV_HINTS=1
export HOMEBREW_NO_INSTALL_CLEANUP=1
/usr/local/bin/brew update
sudo rm -rf /usr/local/Cellar/curl /usr/local/opt/curl
/usr/local/bin/brew install -f --overwrite curl
/usr/local/bin/brew uninstall -f --ignore-dependencies ffmpeg
/usr/local/bin/brew install -f --build-from-source ffmpeg@5 || true
/usr/local/bin/brew install -f --overwrite python || true
/usr/local/bin/brew link --overwrite python || true
/usr/local/bin/brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg
/usr/local/bin/brew link -f curl || true
/usr/local/bin/brew install llvm@$LLVM_COMPILER_VER glew cmake sdl2 vulkan-headers coreutils
/usr/local/bin/brew link -f llvm@$LLVM_COMPILER_VER ffmpeg@5 || true
/opt/homebrew/bin/brew install -f --overwrite --quiet nasm ninja p7zip ccache pipenv gnutls freetype googletest #create-dmg
/opt/homebrew/bin/brew install -f --quiet 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
export BREW_ARM64_PATH="/opt/homebrew1"
sudo mkdir -p "$BREW_ARM64_PATH"
sudo chmod 777 "$BREW_ARM64_PATH"
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "$BREW_ARM64_PATH"
#"$BREW_ARM64_PATH/bin/brew" update
# libvorbis requires Homebrew-installed curl, but we can't run it on x64, and we also need the aarch64 libs, so we swap the binary
brew_arm64_install_packages curl
mv /opt/homebrew1/opt/curl/bin/curl /opt/homebrew1/opt/curl/bin/curl.bak
ln -s /usr/local/opt/curl/bin/curl /opt/homebrew1/opt/curl/bin/curl
brew_arm64_install_packages 0mq aom aribb24 ca-certificates cjson dav1d ffmpeg@5 fontconfig freetype freetype2 gettext glew gmp gnutls lame libbluray libidn2 libnettle libogg libpng librist libsodium libsoxr libtasn libtasn1 libunistring libvmaf libvorbis libvpx libx11 libxau libxcb libxdmcp llvm@$LLVM_COMPILER_VER mbedtls molten-vk nettle opencore-amr openjpeg openssl opus p11-kit pkg-config pkgconfig pzstd rav1e sdl2 snappy speex srt svt-av1 theora vulkan-headers webp x264 x265 xz z3 zeromq zmq zstd
"$BREW_ARM64_PATH/bin/brew" link -f ffmpeg@5
# moltenvk based on commit for 1.2.11 release
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/6bfc8950c696d1f952425e8af2a6248603dc0df9/Formula/m/molten-vk.rb
/usr/local/bin/brew install -f --overwrite ./molten-vk.rb
# moltenvk based on commit for 1.3.0 release
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/7255441cbcafabaa8950f67c7ec55ff499dbb2d3/Formula/m/molten-vk.rb
/opt/homebrew/bin/brew install -f --overwrite --formula --quiet ./molten-vk.rb
export CXX=clang++
export CC=clang
export BREW_PATH;
BREW_PATH="$(brew --prefix)"
export BREW_X64_PATH;
BREW_X64_PATH="$("/usr/local/bin/brew" --prefix)"
export BREW_BIN="/usr/local/bin"
export BREW_SBIN="/usr/local/sbin"
export BREW_BIN="/opt/homebrew/bin"
export BREW_SBIN="/opt/homebrew/sbin"
export CMAKE_EXTRA_OPTS='-DLLVM_TARGETS_TO_BUILD=arm64'
export WORKDIR;
@@ -71,51 +32,55 @@ if [ ! -d "/tmp/Qt/$QT_VER" ]; then
git clone https://github.com/engnr/qt-downloader.git
cd qt-downloader
git checkout f52efee0f18668c6d6de2dec0234b8c4bc54c597
# nested Qt 6.8.1 URL workaround
# nested Qt 6.9.1 URL workaround
# 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"
"$BREW_X64_PATH/bin/pipenv" run pip3 install py7zr requests semantic_version lxml
arch -arm64 "$BREW_PATH/bin/pipenv" run pip3 uninstall py7zr requests semantic_version lxml
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"
# sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader" # Qt 6.8.1 workaround
"$BREW_X64_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats # -o "$QT_VER/clang_64"
# sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader" # Qt 6.9.1 workaround
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
cd "$WORKDIR"
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 SDL2_DIR="$BREW_ARM64_PATH/opt/sdl2/lib/cmake/SDL2"
export SDL3_DIR="$BREW_PATH/opt/sdl3/lib/cmake/SDL3"
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"
export LDFLAGS="-L$BREW_ARM64_PATH/lib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libavcodec.dylib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libavformat.dylib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libavutil.dylib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libswscale.dylib $BREW_ARM64_PATH/opt/ffmpeg@5/lib/libswresample.dylib $BREW_ARM64_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++.1.dylib $BREW_ARM64_PATH/lib/libSDL2.dylib $BREW_ARM64_PATH/lib/libGLEW.dylib $BREW_ARM64_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/libunwind.1.dylib -Wl,-rpath,$BREW_ARM64_PATH/lib"
export CPPFLAGS="-I$BREW_ARM64_PATH/include -I$BREW_X64_PATH/include -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=130000"
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=130000"
export LIBRARY_PATH="$BREW_ARM64_PATH/lib"
export LD_LIBRARY_PATH="$BREW_ARM64_PATH/lib"
export PATH="$BREW_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"
export LDFLAGS="-L$BREW_PATH/lib $BREW_PATH/opt/ffmpeg@5/lib/libavcodec.dylib $BREW_PATH/opt/ffmpeg@5/lib/libavformat.dylib $BREW_PATH/opt/ffmpeg@5/lib/libavutil.dylib $BREW_PATH/opt/ffmpeg@5/lib/libswscale.dylib $BREW_PATH/opt/ffmpeg@5/lib/libswresample.dylib $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++.1.dylib $BREW_PATH/lib/libSDL3.dylib $BREW_PATH/lib/libGLEW.dylib $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib -Wl,-rpath,$BREW_PATH/lib"
export CPPFLAGS="-I$BREW_PATH/include -I$BREW_PATH/include -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
export LIBRARY_PATH="$BREW_PATH/lib"
export LD_LIBRARY_PATH="$BREW_PATH/lib"
export VULKAN_SDK
VULKAN_SDK="$BREW_ARM64_PATH/opt/molten-vk"
VULKAN_SDK="$BREW_PATH/opt/molten-vk"
ln -s "$VULKAN_SDK/lib/libMoltenVK.dylib" "$VULKAN_SDK/lib/libvulkan.dylib" || true
export VK_ICD_FILENAMES="$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json"
export LLVM_DIR
LLVM_DIR="$BREW_ARM64_PATH/opt/llvm@$LLVM_COMPILER_VER"
# exclude ffmpeg, LLVM, and sdl from submodule update
LLVM_DIR="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER"
# exclude ffmpeg, LLVM, opencv, and sdl from submodule update
# shellcheck disable=SC2046
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/SDL/ { print $3 }' .gitmodules)
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/opencv/ && !/SDL/ && !/feralinteractive/ { print $3 }' .gitmodules)
# 3rdparty fixes
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
rm -rf build
mkdir build && cd build || exit 1
export MACOSX_DEPLOYMENT_TARGET=13.0
export MACOSX_DEPLOYMENT_TARGET=14.0
"$BREW_X64_PATH/bin/cmake" .. \
"$BREW_PATH/bin/cmake" .. \
-DBUILD_RPCS3_TESTS="${RUN_UNIT_TESTS}" \
-DRUN_RPCS3_TESTS="${RUN_UNIT_TESTS}" \
-DUSE_SDL=ON \
-DUSE_DISCORD_RPC=OFF \
-DUSE_DISCORD_RPC=ON \
-DUSE_VULKAN=ON \
-DUSE_ALSA=OFF \
-DUSE_PULSE=OFF \
@@ -136,23 +101,21 @@ export MACOSX_DEPLOYMENT_TARGET=13.0
-DUSE_SYSTEM_FAUDIO=OFF \
-DUSE_SYSTEM_SDL=ON \
-DUSE_SYSTEM_OPENCV=ON \
$CMAKE_EXTRA_OPTS \
"$CMAKE_EXTRA_OPTS" \
-DLLVM_TARGET_ARCH=arm64 \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DCMAKE_IGNORE_PATH="$BREW_X64_PATH/lib" \
-DCMAKE_IGNORE_PREFIX_PATH=/usr/local/opt \
-DCMAKE_SYSTEM_PROCESSOR=arm64 \
-DCMAKE_TOOLCHAIN_FILE=buildfiles/cmake/TCDarwinARM64.cmake \
-DCMAKE_CXX_FLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=130000" \
-DCMAKE_IGNORE_PATH="$BREW_PATH/lib" \
-DCMAKE_IGNORE_PREFIX_PATH=/opt/homebrew/opt \
-DCMAKE_CXX_FLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \
-G Ninja
"$BREW_PATH/bin/ninja"; build_status=$?;
cd ..
{ [ "$CI_HAS_ARTIFACTS" = "true" ];
} && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false"
if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then
# If it compiled succesfully let's deploy.
if [ "$build_status" -eq 0 ]; then
.ci/deploy-mac-arm64.sh
fi
Regular → Executable
+32 -30
View File
@@ -3,27 +3,24 @@
# shellcheck disable=SC2086
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew unlink certifi
brew install -f --overwrite nasm ninja p7zip ccache pipenv #create-dmg
export HOMEBREW_NO_ENV_HINTS=1
export HOMEBREW_NO_INSTALL_CLEANUP=1
#/usr/sbin/softwareupdate --install-rosetta --agree-to-license
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
arch -x86_64 /usr/local/bin/brew update
arch -x86_64 /usr/local/bin/brew install -f --overwrite python || arch -x86_64 /usr/local/bin/brew link --overwrite python
arch -x86_64 /usr/local/bin/brew uninstall -f --ignore-dependencies ffmpeg
arch -x86_64 /usr/local/bin/brew install -f --build-from-source ffmpeg@5
arch -x86_64 /usr/local/bin/brew reinstall -f --build-from-source gnutls freetype
arch -x86_64 /usr/local/bin/brew install llvm@$LLVM_COMPILER_VER glew cmake sdl2 vulkan-headers coreutils
arch -x86_64 /usr/local/bin/brew link -f llvm@$LLVM_COMPILER_VER ffmpeg@5
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 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.2.11 release
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/6bfc8950c696d1f952425e8af2a6248603dc0df9/Formula/m/molten-vk.rb
arch -x86_64 /usr/local/bin/brew install -f --overwrite ./molten-vk.rb
# moltenvk based on commit for 1.3.0 release
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/7255441cbcafabaa8950f67c7ec55ff499dbb2d3/Formula/m/molten-vk.rb
arch -x86_64 /usr/local/bin/brew install -f --overwrite --formula --quiet ./molten-vk.rb
export CXX=clang++
export CC=clang
export BREW_PATH;
BREW_PATH="$(brew --prefix)"
export BREW_X64_PATH;
BREW_X64_PATH="$("/usr/local/bin/brew" --prefix)"
export BREW_BIN="/usr/local/bin"
@@ -39,26 +36,28 @@ if [ ! -d "/tmp/Qt/$QT_VER" ]; then
git clone https://github.com/engnr/qt-downloader.git
cd qt-downloader
git checkout f52efee0f18668c6d6de2dec0234b8c4bc54c597
# nested Qt 6.8.1 URL workaround
# nested Qt 6.9.1 URL workaround
# 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"
"$BREW_X64_PATH/bin/pipenv" 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"
# sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader" # Qt 6.8.1 workaround
"$BREW_X64_PATH/bin/pipenv" run "$WORKDIR/qt-downloader/qt-downloader" macos desktop "$QT_VER" clang_64 --opensource --addons qtmultimedia qtimageformats # -o "$QT_VER/clang_64"
# sed -i '' 's/args\.version \/ derive_toolchain_dir(args) \/ //g' "$WORKDIR/qt-downloader/qt-downloader" # Qt 6.9.1 workaround
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
cd "$WORKDIR"
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 SDL2_DIR="$BREW_X64_PATH/opt/sdl2/lib/cmake/SDL2"
export SDL3_DIR="$BREW_X64_PATH/opt/sdl3/lib/cmake/SDL3"
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"
export LDFLAGS="-L$BREW_X64_PATH/lib -Wl,-rpath,$BREW_X64_PATH/lib"
export CPPFLAGS="-I$BREW_X64_PATH/include -msse -msse2 -mcx16 -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=130000"
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=130000"
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 LIBRARY_PATH="$BREW_X64_PATH/lib"
export LD_LIBRARY_PATH="$BREW_X64_PATH/lib"
@@ -71,16 +70,18 @@ export LLVM_DIR
LLVM_DIR="BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER"
# exclude ffmpeg, LLVM, opencv, and sdl from submodule update
# shellcheck disable=SC2046
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/opencv/ && !/SDL/ { print $3 }' .gitmodules)
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/ffmpeg/ && !/llvm/ && !/opencv/ && !/SDL/ && !/feralinteractive/ { print $3 }' .gitmodules)
# 3rdparty fixes
sed -i '' "s/extern const double NSAppKitVersionNumber;/const double NSAppKitVersionNumber = 1343;/g" 3rdparty/hidapi/hidapi/mac/hid.c
mkdir build && cd build || exit 1
export MACOSX_DEPLOYMENT_TARGET=13.0
export MACOSX_DEPLOYMENT_TARGET=14.0
"$BREW_X64_PATH/bin/cmake" .. \
-DBUILD_RPCS3_TESTS=OFF \
-DRUN_RPCS3_TESTS=OFF \
-DUSE_SDL=ON \
-DUSE_DISCORD_RPC=ON \
-DUSE_VULKAN=ON \
@@ -103,20 +104,21 @@ export MACOSX_DEPLOYMENT_TARGET=13.0
-DUSE_SYSTEM_FAUDIO=OFF \
-DUSE_SYSTEM_SDL=ON \
-DUSE_SYSTEM_OPENCV=ON \
$CMAKE_EXTRA_OPTS \
"$CMAKE_EXTRA_OPTS" \
-DLLVM_TARGET_ARCH=X86_64 \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_IGNORE_PATH="$BREW_PATH/lib" \
-DCMAKE_CXX_FLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=130000" \
-DCMAKE_IGNORE_PATH="$BREW_X64_PATH/lib" \
-DCMAKE_IGNORE_PREFIX_PATH=/usr/local/opt \
-DCMAKE_CXX_FLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_OSX_SYSROOT="$(xcrun --sdk macosx --show-sdk-path)" \
-G Ninja
"$BREW_PATH/bin/ninja"; build_status=$?;
"$BREW_X64_PATH/bin/ninja"; build_status=$?;
cd ..
{ [ "$CI_HAS_ARTIFACTS" = "true" ];
} && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false"
if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then
# If it compiled succesfully let's deploy.
if [ "$build_status" -eq 0 ]; then
.ci/deploy-mac.sh
fi
+139
View File
@@ -0,0 +1,139 @@
# .ci/build-windows-clang-cl.ps1
# Enable strict error handling
$ErrorActionPreference = "Stop"
trap {
Write-Host "ERROR: $($_.Exception.Message)"
exit 1
}
Write-Host "Starting RPCS3 build (PowerShell script)"
# Automatically find clang_rt.builtins-x86_64.lib
Write-Host "Searching for clang_rt.builtins-x86_64.lib ..."
$clangBuiltinsLibPath = Get-ChildItem -Path "C:/Program Files/LLVM/lib/clang" -Recurse -Filter "clang_rt.builtins-x86_64.lib" -ErrorAction SilentlyContinue |
Where-Object { $_.FullName -match "windows\\clang_rt\.builtins-x86_64\.lib$" } |
Select-Object -First 1
if (-not $clangBuiltinsLibPath) {
Write-Error "Could not find clang_rt.builtins-x86_64.lib in LLVM installation."
exit 1
}
function Get-ShortPath([string]$path) {
$fso = New-Object -ComObject Scripting.FileSystemObject
return $fso.GetFolder($path).ShortPath
}
$clangBuiltinsDir = Split-Path -Parent $clangBuiltinsLibPath.FullName
$clangBuiltinsDirShort = Get-ShortPath $clangBuiltinsDir
$clangBuiltinsLib = Split-Path -Leaf $clangBuiltinsLibPath.FullName
$clangPath = "C:/Program Files/LLVM/bin"
Write-Host "Found Clang builtins library: $clangBuiltinsLib in $clangBuiltinsDir or short $clangBuiltinsDirShort"
# Get Windows Kits root from registry
$kitsRoot = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Kits\Installed Roots" -Name "KitsRoot10"
$kitsRootPath = $kitsRoot.KitsRoot10
# Search for mt.exe in x64 SDK bin directories
Write-Host "Searching for mt.exe ..."
$mtPath = Get-ChildItem -Path "$kitsRootPath\bin" -Recurse -Filter "mt.exe" -ErrorAction SilentlyContinue |
Where-Object { $_.FullName -match "\\x64\\mt\.exe$" } |
Sort-Object FullName -Descending |
Select-Object -First 1
if (-not $mtPath) {
Write-Error "Could not find mt.exe in Windows Kits directories."
exit 1
}
$mtExePath = $mtPath.FullName
Write-Host "Found mt.exe at: $mtExePath"
$VcpkgRoot="$(Get-Location)/vcpkg"
$VcpkgTriplet=$env:VCPKG_TRIPLET
$VcpkgInstall="$VcpkgRoot/installed/$VcpkgTriplet"
$VcpkgInclude="$VcpkgInstall/include"
$VcpkgLib="$VcpkgInstall/lib"
$VcpkgWindeployqt="$VcpkgInstall/tools/qt6/bin/windeployqt6.exe"
# Configure git safe directory
Write-Host "Configuring git safe directory"
& git config --global --add safe.directory '*'
# Initialize submodules except certain ones
Write-Host "Initializing submodules"
$excludedSubs = @('llvm','opencv','ffmpeg','FAudio','zlib','libpng','feralinteractive')
# Get submodule paths excluding those in $excludedSubs
$submodules = Select-String -Path .gitmodules -Pattern 'path = (.+)' | ForEach-Object {
$_.Matches[0].Groups[1].Value
} | Where-Object {
$path = $_
-not ($excludedSubs | Where-Object { $path -like "*$_*" })
}
Write-Host "Updating submodules: $($submodules -join ', ')"
& git submodule update --init --quiet $submodules
# Create and enter build directory
Write-Host "Creating build directory"
if (!(Test-Path build)) {
New-Item -ItemType Directory -Path build | Out-Null
}
Set-Location build
Write-Host "Changed directory to: $(Get-Location)"
# Run CMake with Ninja generator and required flags
Write-Host "Running CMake configuration"
& cmake .. `
-G Ninja `
-DCMAKE_BUILD_TYPE=Release `
-DCMAKE_C_COMPILER="$clangPath/clang-cl.exe" `
-DCMAKE_CXX_COMPILER="$clangPath/clang-cl.exe" `
-DCMAKE_LINKER="$clangPath/lld-link.exe" `
-DCMAKE_INSTALL_PREFIX=/usr `
-DCMAKE_TOOLCHAIN_FILE="$VcpkgRoot/scripts/buildsystems/vcpkg.cmake" `
-DCMAKE_EXE_LINKER_FLAGS="/LIBPATH:$clangBuiltinsDirShort /defaultlib:$clangBuiltinsLib" `
-DCMAKE_MT="$mtExePath" `
-DWINDEPLOYQT_EXECUTABLE="$VcpkgWindeployqt" `
-DUSE_NATIVE_INSTRUCTIONS=OFF `
-DUSE_PRECOMPILED_HEADERS=OFF `
-DVCPKG_TARGET_TRIPLET="$VcpkgTriplet" `
-DFFMPEG_INCLUDE_DIR="$VcpkgInclude" `
-DFFMPEG_LIBAVCODEC="$VcpkgLib/avcodec.lib" `
-DFFMPEG_LIBAVFORMAT="$VcpkgLib/avformat.lib" `
-DFFMPEG_LIBAVUTIL="$VcpkgLib/avutil.lib" `
-DFFMPEG_LIBSWSCALE="$VcpkgLib/swscale.lib" `
-DFFMPEG_LIBSWRESAMPLE="$VcpkgLib/swresample.lib" `
-DUSE_SYSTEM_CURL=OFF `
-DUSE_FAUDIO=OFF `
-DUSE_SDL=ON `
-DUSE_SYSTEM_SDL=OFF `
-DUSE_SYSTEM_FFMPEG=ON `
-DUSE_SYSTEM_OPENCV=ON `
-DUSE_SYSTEM_OPENAL=OFF `
-DUSE_SYSTEM_LIBPNG=ON `
-DUSE_DISCORD_RPC=ON `
-DOpenGL_GL_PREFERENCE=LEGACY `
-DWITH_LLVM=ON `
-DSTATIC_LINK_LLVM=ON `
-DBUILD_RPCS3_TESTS=OFF `
-DRUN_RPCS3_TESTS=OFF
Write-Host "CMake configuration complete"
# Build with ninja
Write-Host "Starting build with Ninja..."
& ninja
if ($LASTEXITCODE -ne 0) {
Write-Host "Build failed with exit code $LASTEXITCODE"
exit 1
}
Write-Host "Build succeeded"
# Go back to root directory
Set-Location ..
Write-Host "Returned to root directory: $(Get-Location)"
+61
View File
@@ -0,0 +1,61 @@
#!/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
+8 -2
View File
@@ -25,11 +25,17 @@ if [ "$DEPLOY_APPIMAGE" = "true" ]; then
# Remove libvulkan because it causes issues with gamescope
rm -f ./AppDir/usr/lib/libvulkan.so*
# Remove unused Qt6 libraries
rm -f ./AppDir/usr/lib/libQt6VirtualKeyboard.so*
rm -f ./AppDir/usr/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so*
# Remove git directory containing local commit history file
rm -rf ./AppDir/usr/share/rpcs3/git
linuxdeploy --appimage-extract
./squashfs-root/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool AppDir -g
curl -fsSLo /uruntime "https://github.com/VHSgunzo/uruntime/releases/download/v0.3.4/uruntime-appimage-dwarfs-$CPU_ARCH"
chmod +x /uruntime
/uruntime --appimage-mkdwarfs -f --set-owner 0 --set-group 0 --no-history --no-create-timestamp \
--compression zstd:level=22 -S26 -B32 --header /uruntime -i AppDir -o RPCS3.AppImage
APPIMAGE_SUFFIX="linux_${CPU_ARCH}"
if [ "$CPU_ARCH" = "x86_64" ]; then
+20
View File
@@ -0,0 +1,20 @@
#!/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"
Regular → Executable
+6 -8
View File
@@ -16,9 +16,9 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env
cd bin
mkdir "rpcs3.app/Contents/lib/" || true
cp "$(realpath /opt/homebrew1/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
cp "$(realpath /opt/homebrew1/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
cp "$(realpath /opt/homebrew1/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.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/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"
rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \
"rpcs3.app/Contents/Frameworks/QtQml.framework" \
@@ -33,11 +33,9 @@ rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \
# Hack
install_name_tool \
-delete_rpath /opt/homebrew1/lib \
-delete_rpath /opt/homebrew/lib \
-delete_rpath /opt/homebrew1/opt/llvm@$LLVM_COMPILER_VER/lib \
-delete_rpath /usr/local/lib RPCS3.app/Contents/MacOS/rpcs3
#-delete_rpath /opt/homebrew1/Cellar/sdl2/2.30.7/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
mv rpcs3.app RPCS3_.app
@@ -67,7 +65,7 @@ echo "IconIndex=0" >> Quickstart.url
#SHA256SUM=$(shasum -a 256 "$DMG_FILEPATH" | awk '{ print $1 }')
ARCHIVE_FILEPATH="$BUILD_ARTIFACTSTAGINGDIRECTORY/rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_macos_arm64.7z"
"$BREW_X64_PATH/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")
SHA256SUM=$(shasum -a 256 "$ARCHIVE_FILEPATH" | awk '{ print $1 }')
Regular → Executable
+1 -1
View File
@@ -39,7 +39,7 @@ mv RPCS3_.app RPCS3.app
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/sdl2/2.30.3/lib
#-delete_rpath /usr/local/Cellar/sdl3/3.2.8/lib
# NOTE: "--deep" is deprecated
codesign --deep -fs - RPCS3.app
+33
View File
@@ -0,0 +1,33 @@
#!/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-cl $CPU_ARCH"
# BUILD_blablabla is CI specific, so we wrap it for portability
ARTIFACT_DIR=$(cygpath -u "$BUILD_ARTIFACTSTAGINGDIRECTORY")
# 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
# 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"
+38
View File
@@ -0,0 +1,38 @@
#!/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
# 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"
+4 -2
View File
@@ -1,11 +1,13 @@
#!/bin/sh -ex
# BUILD_blablabla is Azure specific, so we wrap it for portability
# First let's print some info about our caches
"$(cygpath -u "$CCACHE_BIN_DIR")"/ccache.exe --show-stats -v
# BUILD_blablabla is CI specific, so we wrap it for portability
ARTIFACT_DIR="$BUILD_ARTIFACTSTAGINGDIRECTORY"
# Remove unecessary files
rm -f ./bin/rpcs3.exp ./bin/rpcs3.lib ./bin/rpcs3.pdb ./bin/vc_redist.x64.exe
rm -rf ./bin/git
# Prepare compatibility and SDL database for packaging
mkdir ./bin/config
+2 -2
View File
@@ -1,5 +1,4 @@
# Variables set by Azure Pipelines
CI_HAS_ARTIFACTS
# Variables set by CI
BUILD_REASON
BUILD_SOURCEVERSION
BUILD_ARTIFACTSTAGINGDIRECTORY
@@ -8,6 +7,7 @@ BUILD_SOURCEBRANCHNAME
APPDIR
ARTDIR
RELEASE_MESSAGE
RUN_UNIT_TESTS
# Variables for build matrix
COMPILER
DEPLOY_APPIMAGE
-13
View File
@@ -1,13 +0,0 @@
#!/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
View File
@@ -1,13 +0,0 @@
#!/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"
+13
View File
@@ -0,0 +1,13 @@
#!/bin/sh -ex
mkdir -p ../translations
LUPDATE_PATH=$(find /usr -name lupdate -type f 2>/dev/null | head -n 1)
if [ -z "$LUPDATE_PATH" ]; then
echo "Error: lupdate not found!"
exit 1
else
echo "lupdate found at: $LUPDATE_PATH"
$LUPDATE_PATH -recursive . -ts ../translations/rpcs3_template.ts
sed -i 's|filename="\.\./|filename="./|g' ../translations/rpcs3_template.ts
fi
Regular → Executable
+1 -2
View File
@@ -1,4 +1,3 @@
#!/bin/sh -ex
curl -fLo "./llvm.lock" "https://github.com/RPCS3/llvm-mirror/releases/download/custom-build-win-16.0.1/llvmlibs_mt.7z.sha256"
curl -fLo "./glslang.lock" "https://github.com/RPCS3/glslang/releases/download/custom-build-win/glslanglibs_mt.7z.sha256"
curl -fLo "./llvm.lock" "https://github.com/RPCS3/llvm-mirror/releases/download/custom-build-win-${LLVM_VER}/llvmlibs_mt.7z.sha256"
+6 -6
View File
@@ -8,11 +8,11 @@ sed -i '' 's/quarterly/latest/' /etc/pkg/FreeBSD.conf
export ASSUME_ALWAYS_YES=true
pkg info # debug
# Prefer newer Clang than in base system (see also .ci/build-freebsd.sh)
pkg install llvm16
# WITH_LLVM
pkg install "llvm$LLVM_COMPILER_VER"
# Mandatory dependencies (qt6-base is pulled via qt6-multimedia)
pkg install git ccache cmake ninja qt6-multimedia qt6-svg glew openal-soft ffmpeg
# 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
# Optional dependencies (libevdev is pulled by qt6-base)
pkg install pkgconf alsa-lib pulseaudio sdl2 evdev-proto vulkan-headers vulkan-loader
# Optional dependencies (libevdev is pulled by qtX-base)
pkg install pkgconf alsa-lib pulseaudio sdl3 evdev-proto vulkan-headers vulkan-loader opencv
Regular → Executable
View File
+63
View File
@@ -0,0 +1,63 @@
#!/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
+39
View File
@@ -0,0 +1,39 @@
#!/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
+18 -40
View File
@@ -1,10 +1,5 @@
#!/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
# Qt mirrors can be volatile and slow, so we list 2
#QT_HOST="http://mirrors.ocf.berkeley.edu/qt/"
@@ -19,9 +14,9 @@ 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_MM_URL="${QT_HOST}${QT_PREFIX}addons.qtmultimedia.${QT_PREFIX_2}qtmultimedia${QT_SUFFIX}"
QT_SVG_URL="${QT_HOST}${QT_PREFIX}${QT_PREFIX_2}qtsvg${QT_SUFFIX}"
LLVMLIBS_URL='https://github.com/RPCS3/llvm-mirror/releases/download/custom-build-win-16.0.1/llvmlibs_mt.7z'
GLSLANG_URL='https://github.com/RPCS3/glslang/releases/latest/download/glslanglibs_mt.7z'
VULKAN_SDK_URL="https://www.dropbox.com/scl/fi/sjjh0fc4ld281pjbl2xzu/VulkanSDK-1.3.268.0-Installer.exe?rlkey=f6wzc0lvms5vwkt2z3qabfv9d&dl=1"
LLVMLIBS_URL="https://github.com/RPCS3/llvm-mirror/releases/download/custom-build-win-${LLVM_VER}/llvmlibs_mt.7z"
VULKAN_SDK_URL="https://www.dropbox.com/scl/fi/sjjh0fc4ld281pjbl2xzu/VulkanSDK-${VULKAN_VER}-Installer.exe?rlkey=f6wzc0lvms5vwkt2z3qabfv9d&dl=1"
CCACHE_URL="https://github.com/ccache/ccache/releases/download/v4.11.2/ccache-4.11.2-windows-x86_64.zip"
DEP_URLS=" \
$QT_BASE_URL \
@@ -30,16 +25,16 @@ DEP_URLS=" \
$QT_MM_URL \
$QT_SVG_URL \
$LLVMLIBS_URL \
$GLSLANG_URL \
$VULKAN_SDK_URL"
$VULKAN_SDK_URL\
$CCACHE_URL"
# Azure pipelines doesn't make a cache dir if it doesn't exist, so we do it manually
[ -d "$CACHE_DIR" ] || mkdir "$CACHE_DIR"
# 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 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
# shellcheck disable=SC2046
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/FAudio/ && !/llvm/ { print $3 }' .gitmodules)
git submodule -q update --init --depth=1 --jobs=8 $(awk '/path/ && !/FAudio/ && !/llvm/ && !/feralinteractive/ { print $3 }' .gitmodules)
# Git bash doesn't have rev, so here it is
rev()
@@ -58,10 +53,9 @@ download_and_verify()
fileName="$4"
for _ in 1 2 3; do
[ -e "$CACHE_DIR/$fileName" ] || curl -fLo "$CACHE_DIR/$fileName" "$url"
fileChecksum=$("${algo}sum" "$CACHE_DIR/$fileName" | awk '{ print $1 }')
[ -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
rm "$CACHE_DIR/$fileName"
done
return 1;
@@ -79,12 +73,12 @@ for url in $DEP_URLS; do
case "$url" in
*qt*) checksum=$(curl -fL "${url}.sha1"); algo="sha1"; outDir="$QTDIR/" ;;
*llvm*) checksum=$(curl -fL "${url}.sha256"); algo="sha256"; outDir="./build/lib_ext/Release-x64" ;;
*glslang*) checksum=$(curl -fL "${url}.sha256"); algo="sha256"; outDir="./build/lib_ext/Release-x64" ;;
*ccache*) checksum=$CCACHE_SHA; algo="sha256"; outDir="$CCACHE_BIN_DIR" ;;
*Vulkan*)
# Vulkan setup needs to be run in batch environment
# Need to subshell this or else it doesn't wait
download_and_verify "$url" "$VULKAN_SDK_SHA" "sha256" "$fileName"
cp "$CACHE_DIR/$fileName" .
cp "$DEPS_CACHE_DIR/$fileName" .
_=$(echo "$fileName --accept-licenses --default-answer --confirm-command install" | cmd)
continue
;;
@@ -92,27 +86,11 @@ for url in $DEP_URLS; do
esac
download_and_verify "$url" "$checksum" "$algo" "$fileName"
7z x -y "$CACHE_DIR/$fileName" -aos -o"$outDir"
7z x -y "$DEPS_CACHE_DIR/$fileName" -aos -o"$outDir"
done
# 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="rpcs3-v${AVVER}_win64.7z"
else
AVVER="${COMM_TAG}-${COMM_COUNT}"
BUILD="rpcs3-v${AVVER}-${COMM_HASH}_win64.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
# AVVER is used for GitHub releases, it is the version number.
BRANCH="${REPO_NAME}/${REPO_BRANCH}"
echo "BRANCH=$BRANCH" > .ci/ci-vars.env
echo "BUILD=$BUILD" >> .ci/ci-vars.env
echo "AVVER=$AVVER" >> .ci/ci-vars.env
# 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
-151
View File
@@ -1,151 +0,0 @@
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.8.1'
# 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: '202411221531'
# 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-focal:1.9
# 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-3
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-focal-aarch64:1.0'
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;
+1 -1
View File
@@ -16,4 +16,4 @@ Submitting your test results for Commercial Games must be done on our forums. Pl
# Contributing
Check the [Coding Style Guidelines](https://github.com/RPCS3/rpcs3/wiki/Coding-Style) and [Developer Information](https://github.com/RPCS3/rpcs3/wiki/Developer-Information). If you have any questions, hit us up on our [Discord Server](https://discord.me/RPCS3) in the **#development** channel.
Check the [Coding Style Guidelines](https://github.com/RPCS3/rpcs3/wiki/Coding-Style) and [Developer Information](https://github.com/RPCS3/rpcs3/wiki/Developer-Information). If you have any questions, hit us up on our [Discord Server](https://discord.gg/rpcs3) in the **#development** channel.
@@ -7,7 +7,7 @@ body:
attributes:
value: |
# Summary
Please do not ask for help or report compatibility regressions here, use [RPCS3 Discord server](https://discord.me/RPCS3) or [forums](https://forums.rpcs3.net/) instead.
Please do not ask for help or report compatibility regressions here, use [RPCS3 Discord server](https://discord.gg/rpcs3) or [forums](https://forums.rpcs3.net/) instead.
- type: textarea
id: quick-summary
attributes:
@@ -50,7 +50,7 @@ body:
* Completely close RPCS3 and locate the log file.
RPCS3's Log file will be ```RPCS3.log.gz``` (sometimes shows as RPCS3.log with zip icon) or ```RPCS3.log``` (sometimes shows as RPCS3 wtih notepad icon).
* On Windows it will be in the RPCS3 directory near the executable
* On Windows it will be in the ```log``` folder inside your RPCS3 folder.
* On Linux it will be in ```~/.cache/rpcs3/```
* On MacOS it will be in ```~/Library/Caches/rpcs3```. If you're unable to locate it copy paste the path in Spotlight and hit enter.
- type: textarea
+2 -2
View File
@@ -7,7 +7,7 @@ body:
attributes:
value: |
# Summary
Please do not ask for help or report compatibility regressions here, use [RPCS3 Discord server](https://discord.me/RPCS3) or [forums](https://forums.rpcs3.net/) instead.
Please do not ask for help or report compatibility regressions here, use [RPCS3 Discord server](https://discord.gg/rpcs3) or [forums](https://forums.rpcs3.net/) instead.
- type: textarea
id: quick-summary
attributes:
@@ -36,7 +36,7 @@ body:
* Completely close RPCS3 and locate the log file.
RPCS3's Log file will be ```RPCS3.log.gz``` (sometimes shows as RPCS3.log with zip icon) or ```RPCS3.log``` (sometimes shows as RPCS3 wtih notepad icon).
* On Windows it will be in the RPCS3 directory near the executable
* On Windows it will be in the ```log``` folder inside your RPCS3 folder.
* On Linux it will be in ```~/.cache/rpcs3/```
* On MacOS it will be in ```~/Library/Caches/rpcs3```. If you're unable to locate it copy paste the path in Spotlight and hit enter.
- type: textarea
+2 -2
View File
@@ -6,7 +6,7 @@ body:
- type: markdown
attributes:
value: |
Please do not ask for help or report compatibility regressions here, use [RPCS3 Discord server](https://discord.me/RPCS3) or [forums](https://forums.rpcs3.net/) instead.
Please do not ask for help or report compatibility regressions here, use [RPCS3 Discord server](https://discord.gg/rpcs3) or [forums](https://forums.rpcs3.net/) instead.
- type: textarea
id: quick-summary
attributes:
@@ -31,6 +31,6 @@ body:
* If this feature is something that a game is trying to use, upload a log file for it.
RPCS3's Log file will be ```RPCS3.log.gz``` (sometimes shows as RPCS3.log with zip icon) or ```RPCS3.log``` (sometimes shows as RPCS3 wtih notepad icon).
* On Windows it will be in the RPCS3 directory near the executable
* On Windows it will be in the ```log``` folder inside your RPCS3 folder.
* On Linux it will be in ```~/.cache/rpcs3/```
* On MacOS it will be in ```~/Library/Caches/rpcs3```. If you're unable to locate it copy paste the path in Spotlight and hit enter.
+1 -1
View File
@@ -7,7 +7,7 @@ assignees: ''
---
## Please do not ask for help or report compatibility regressions here, use [RPCS3 Discord server](https://discord.me/RPCS3) or [forums](https://forums.rpcs3.net/) instead.
## Please do not ask for help or report compatibility regressions here, use [RPCS3 Discord server](https://discord.gg/rpcs3) or [forums](https://forums.rpcs3.net/) instead.
You're using the advanced template. You're expected to know what to write in order to fill in all the required information for proper report.
+1 -1
View File
@@ -4,7 +4,7 @@ contact_links:
url: https://rpcs3.net/quickstart
about: Everything you need to know to install and configure emulator, and add games
- name: Ask for help
url: https://discord.me/RPCS3
url: https://discord.gg/rpcs3
about: If you have some questions or need help, please use our Discord server instead of GitHub
- name: Report game compatibility
url: https://forums.rpcs3.net/thread-196671.html
-18
View File
@@ -1,18 +0,0 @@
## How to test a PR build
Please take into account, that RPCS3 build usually takes some time (about 15 mins), so you can't access a build if a PR was just submitted.
- Open a PR you want to test
- Scroll to the very bottom and locate the **Checks** section
- Click on **Show all checks**
You are supposed to see something like this
![image](https://user-images.githubusercontent.com/10283761/116630952-2cd99e00-a94c-11eb-933e-986d6020ca92.png)
- Click on __Details__ on either **Cirrus Linux GCC** or **Cirrus Windows**
- Click **View more details on Cirrus CI** at the very bottom
![image](https://user-images.githubusercontent.com/10283761/116631111-5e526980-a94c-11eb-95f7-751e6f15e1ea.png)
- Click on the download button for **Artifact** on the **Artifacts** block
![image](https://user-images.githubusercontent.com/10283761/116631322-bee1a680-a94c-11eb-89a3-be365783582e.png)
- Congratulations! You are now downloading an RPCS3 build for that specific PR.
__Please note that PR builds are not supposed to be stable because they contain new changesets.__
@@ -1,3 +0,0 @@
<!-- Please include a summary of the change and which issue is fixed. -->
[How to test this PR](.github/PR-BUILD.md)
+72
View File
@@ -0,0 +1,72 @@
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 }}
+34
View File
@@ -0,0 +1,34 @@
name: Generate Translation Template
on:
workflow_dispatch:
push:
branches:
- master
paths:
- 'rpcs3/**'
jobs:
Generate_Translation_Template:
name: Generate Translation Template
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@main
- name: Install Qt Tools
run: |
sudo apt update
sudo apt install -y qt6-l10n-tools
- name: Generate .ts file using lupdate (Qt)
working-directory: rpcs3
run: |
../.ci/generate-qt-ts.sh
- name: Upload translation template
uses: actions/upload-artifact@main
with:
name: RPCS3_Translation_Template
path: translations/rpcs3_template.ts
compression-level: 0
+546
View File
@@ -0,0 +1,546 @@
name: Build RPCS3
defaults:
run:
shell: bash
on:
push:
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
env:
BUILD_REPOSITORY_NAME: ${{ github.repository }}
BUILD_SOURCEBRANCHNAME: ${{ github.ref_name }}
BUILD_PR_NUMBER: ${{ github.event.pull_request.number }}
BUILD_SOURCEVERSION: ${{ github.sha }}
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ github.workspace }}/artifacts/
jobs:
Linux_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')
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
docker_img: "rpcs3/rpcs3-ci-jammy:1.6"
build_sh: "/rpcs3/.ci/build-linux.sh"
compiler: clang
UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux"
- os: ubuntu-24.04
docker_img: "rpcs3/rpcs3-ci-jammy:1.6"
build_sh: "/rpcs3/.ci/build-linux.sh"
compiler: gcc
- os: ubuntu-24.04-arm
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.6"
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh"
compiler: clang
UPLOAD_COMMIT_HASH: a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux-arm64"
- os: ubuntu-24.04-arm
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.6"
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh"
compiler: gcc
name: RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }}
runs-on: ${{ matrix.os }}
env:
CCACHE_DIR: ${{ github.workspace }}/ccache
DEPLOY_APPIMAGE: true
APPDIR: "/rpcs3/build/appdir"
ARTDIR: "/root/artifacts"
RELEASE_MESSAGE: "/rpcs3/GitHubReleaseMessage.txt"
COMPILER: ${{ matrix.compiler }}
UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }}
UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }}
RUN_UNIT_TESTS: github.event_name == 'pull_request' && 'ON' || 'OFF'
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: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-${{github.run_id}}
restore-keys: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-
- name: Docker setup and build
run: |
docker pull --quiet ${{ matrix.docker_img }}
docker run \
-v $PWD:/rpcs3 \
--env-file .ci/docker.env \
-v ${{ env.CCACHE_DIR }}:/root/.ccache \
-v ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}:${{ env.ARTDIR }} \
${{ matrix.docker_img }} \
${{ matrix.build_sh }}
- name: Upload artifacts
uses: actions/upload-artifact@main
with:
name: RPCS3 for Linux (${{ runner.arch }}, ${{ matrix.compiler }})
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}/*.AppImage
compression-level: 0
- name: Deploy master build to GitHub Releases
if: |
github.event_name != 'pull_request' &&
github.repository == 'RPCS3/rpcs3' &&
github.ref == 'refs/heads/master' &&
matrix.compiler == 'clang'
env:
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }}
run: |
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
- 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:
# 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')
strategy:
fail-fast: false
matrix:
include:
- name: Intel
build_sh: "arch -X86_64 .ci/build-mac.sh"
UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842
UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac
- name: Apple Silicon
build_sh: .ci/build-mac-arm64.sh
UPLOAD_COMMIT_HASH: 8e21bdbc40711a3fccd18fbf17b742348b0f4281
UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac-arm64
name: RPCS3 Mac ${{ matrix.name }}
runs-on: macos-14
env:
CCACHE_DIR: /tmp/ccache_dir
QT_VER: '6.7.3'
QT_VER_MAIN: '6'
LLVM_COMPILER_VER: '19'
RELEASE_MESSAGE: ../GitHubReleaseMessage.txt
UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }}
UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }}
RUN_UNIT_TESTS: github.event_name == 'pull_request' && 'ON' || 'OFF'
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: ${{ runner.os }}-ccache-${{ matrix.name }}-${{github.run_id}}
restore-keys: ${{ runner.os }}-ccache-${{ matrix.name }}-
- name: Restore Qt Cache
uses: actions/cache/restore@main
id: restore-qt-cache
with:
path: /tmp/Qt
key: ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }}
restore-keys: ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }}
- name: Build
run: ${{ matrix.build_sh }}
- name: Upload artifacts
uses: actions/upload-artifact@main
with:
name: RPCS3 for Mac (${{ matrix.name }})
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}
compression-level: 0
- name: Export Variables
run: |
while IFS='=' read -r key val; do
# Skip lines that are empty or start with '#'
[[ -z "$key" || "$key" =~ ^# ]] && continue
echo "$key=$val" >> "${{ github.env }}"
done < .ci/ci-vars.env
- name: Deploy master build to GitHub Releases
if: |
github.event_name != 'pull_request' &&
github.repository == 'RPCS3/rpcs3' &&
github.ref == 'refs/heads/master'
env:
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }}
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:
# 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
runs-on: windows-2025
env:
COMPILER: msvc
QT_VER_MAIN: '6'
QT_VER: '6.9.1'
QT_VER_MSVC: 'msvc2022'
QT_DATE: '202505291653'
LLVM_VER: '19.1.7'
VULKAN_VER: '1.3.268.0'
VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5'
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
UPLOAD_COMMIT_HASH: 7d09e3be30805911226241afbb14f8cdc2eb054e
UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-win"
steps:
- name: Checkout repository
uses: actions/checkout@main
with:
fetch-depth: 0
- name: Setup NuGet
uses: nuget/setup-nuget@v2
- name: Restore NuGet packages
run: nuget restore rpcs3.sln
- name: Setup env
shell: pwsh
run: |
echo "QTDIR=C:\Qt\${{ env.QT_VER }}\${{ env.QT_VER_MSVC }}_64" >> ${{ github.env }}
echo "VULKAN_SDK=C:\VulkanSDK\${{ env.VULKAN_VER }}" >> ${{ github.env }}
- name: Get Cache Keys
run: .ci/get_keys-windows.sh
- name: Restore Build Ccache
uses: actions/cache/restore@main
id: restore-build-ccache
with:
path: ${{ env.CCACHE_DIR }}
key: "${{ runner.os }}-ccache-${{ env.COMPILER }}-${{github.run_id}}"
restore-keys: ${{ runner.os }}-ccache-${{ env.COMPILER }}-
- name: Restore Dependencies Cache
uses: actions/cache/restore@main
id: restore-dependencies-cache
with:
path: ${{ env.DEPS_CACHE_DIR }}
key: "${{ runner.os }}-${{ env.COMPILER }}-${{ env.QT_VER }}-${{ env.VULKAN_SDK_SHA }}-${{ env.CCACHE_SHA }}-${{ hashFiles('llvm.lock') }}"
restore-keys: ${{ runner.os }}-${{ env.COMPILER }}-
- name: Download and unpack dependencies
run: |
.ci/setup-windows.sh
.ci/setup-windows-ci-vars.sh win64 msvc
- name: Export Variables
run: |
while IFS='=' read -r key val; do
# Skip lines that are empty or start with '#'
[[ -z "$key" || "$key" =~ ^# ]] && continue
echo "$key=$val" >> "${{ github.env }}"
done < .ci/ci-vars.env
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@main
- name: Compile RPCS3
shell: pwsh
run: msbuild rpcs3.sln /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: Run Unit Tests
if: github.event_name == 'pull_request'
shell: pwsh
run: build\lib\Release-x64\rpcs3_test.exe
- name: Pack up build artifacts
run: |
mkdir -p "${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}"
.ci/deploy-windows.sh
- name: Upload artifacts (7z)
uses: actions/upload-artifact@main
with:
name: RPCS3 for Windows (MSVC)
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}
compression-level: 0
if-no-files-found: error
- name: Deploy master build to GitHub Releases
if: |
github.event_name != 'pull_request' &&
github.repository == 'RPCS3/rpcs3' &&
github.ref == 'refs/heads/master'
env:
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }}
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
Windows_Build_ClangCL:
if: always()
name: RPCS3 Windows Clang-CL
runs-on: windows-2025
strategy:
matrix:
include:
- compiler: clangcl
arch: win64
env:
CCACHE_DIR: 'C:\ccache'
VCPKG_TRIPLET: x64-windows
steps:
- name: Checkout repository
uses: actions/checkout@main
with:
fetch-depth: 0
- name: Clone vcpkg
run: git clone --depth 1 --branch 2025.06.13 https://github.com/microsoft/vcpkg.git
- name: Bootstrap vcpkg
shell: pwsh
run: .\vcpkg\bootstrap-vcpkg.bat
- name: Restore vcpkg cache
uses: actions/cache/restore@main
id: restore-vcpkg-cache
with:
path: |
vcpkg/installed
vcpkg/buildtrees
key: vcpkg-${{ runner.os }}-${{ matrix.compiler }}-${{ runner.arch }}-${{ github.run_id }}
restore-keys: vcpkg-${{ runner.os }}-${{ matrix.compiler }}-${{ runner.arch }}-
- name: Install dependencies with vcpkg
shell: pwsh
run: |
.\vcpkg\vcpkg.exe install `
ffmpeg[avcodec,avformat,swscale,swresample] `
llvm `
opencv `
qtbase `
qtsvg `
qtmultimedia `
qttools `
zlib `
vulkan `
libpng `
--triplet $env:VCPKG_TRIPLET `
--clean-after-build
- name: Save vcpkg cache
if: github.ref == 'refs/heads/master'
uses: actions/cache/save@main
with:
path: |
vcpkg/installed
vcpkg/buildtrees
key: ${{ steps.restore-vcpkg-cache.outputs.cache-primary-key }}
- name: Add LLVM and Ninja to PATH
shell: pwsh
run: |
Add-Content -Path $env:GITHUB_PATH -Value "C:\Program Files\LLVM\bin"
Add-Content -Path $env:GITHUB_PATH -Value "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin"
Add-Content -Path $env:GITHUB_PATH -Value "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin"
Add-Content -Path $env:GITHUB_PATH -Value "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja"
- 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 }}-16248552313
restore-keys: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-
- name: Setup CI Variables
run: .ci/setup-windows-ci-vars.sh ${{ matrix.arch }} ${{ matrix.compiler }}
- name: Build RPCS3
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64
powershell -ExecutionPolicy Bypass -File .ci/build-windows-clang-cl.ps1
- 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: Deploy RPCS3
run: .ci/deploy-windows-clang-cl.sh x86_64
- name: Upload artifacts
uses: actions/upload-artifact@main
with:
name: RPCS3 for Windows (clang-cl)
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 }}
+1 -3
View File
@@ -35,6 +35,7 @@
/lib
/tmp
/ipch
/packages
/rpcs3/Debug
/rpcs3/Release
@@ -55,9 +56,6 @@
/bin/GuiConfigs/*.dat
/bin/GuiConfigs/*.dat.*
# Some data from git
!/bin/git/
# Visual Studio Files
.vs/*
.vscode/*
+12 -4
View File
@@ -28,10 +28,6 @@
path = 3rdparty/pugixml
url = ../../zeux/pugixml.git
ignore = dirty
[submodule "3rdparty/xxHash"]
path = 3rdparty/xxHash
url = ../../Cyan4973/xxHash.git
ignore = dirty
[submodule "3rdparty/yaml-cpp"]
path = 3rdparty/yaml-cpp/yaml-cpp
url = ../../RPCS3/yaml-cpp.git
@@ -104,3 +100,15 @@
path = 3rdparty/fusion/fusion
url = ../../xioTechnologies/Fusion.git
ignore = dirty
[submodule "3rdparty/discord-rpc/discord-rpc"]
path = 3rdparty/discord-rpc/discord-rpc
url = ../../Vestrel/discord-rpc
ignore = dirty
[submodule "3rdparty/GPUOpen/VulkanMemoryAllocator"]
path = 3rdparty/GPUOpen/VulkanMemoryAllocator
url = ../../GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
ignore = dirty
[submodule "3rdparty/feralinteractive/feralinteractive"]
path = 3rdparty/feralinteractive/feralinteractive
url = ../../FeralInteractive/gamemode.git
ignore = dirty
+117 -105
View File
@@ -79,6 +79,10 @@ else()
# we don't have the system libusb, so we compile from submodule
unset(LIBUSB_LIBRARIES CACHE)
add_subdirectory(libusb EXCLUDE_FROM_ALL)
if (NOT TARGET usb-1.0 AND TARGET usb-1.0-static)
add_library(usb-1.0 ALIAS usb-1.0-static)
endif()
endif()
endif()
@@ -86,48 +90,40 @@ endif()
# hidapi
add_subdirectory(hidapi)
# Vulkan
# glslang
add_subdirectory(glslang EXCLUDE_FROM_ALL)
add_library(3rdparty_glslang INTERFACE)
target_link_libraries(3rdparty_glslang INTERFACE SPIRV)
# yaml-cpp
add_subdirectory(yaml-cpp)
# xxHash
if (USE_SYSTEM_XXHASH)
pkg_check_modules(XXHASH REQUIRED IMPORTED_TARGET libxxhash)
add_library(xxhash INTERFACE)
target_link_libraries(xxhash INTERFACE PkgConfig::XXHASH)
else()
set(XXHASH_BUNDLED_MODE ON)
set(XXHASH_BUILD_XXHSUM OFF)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Make xxHash build static libs")
add_subdirectory(xxHash/cmake_unofficial EXCLUDE_FROM_ALL)
target_include_directories(xxhash INTERFACE xxHash)
endif()
# OpenGL
find_package(OpenGL REQUIRED OPTIONAL_COMPONENTS EGL)
if (NOT ANDROID)
find_package(OpenGL REQUIRED OPTIONAL_COMPONENTS EGL)
add_library(3rdparty_opengl INTERFACE)
target_include_directories(3rdparty_opengl INTERFACE GL)
add_library(3rdparty_opengl INTERFACE)
target_include_directories(3rdparty_opengl INTERFACE GL)
if (WIN32)
if(NOT MSVC)
if (WIN32)
if(NOT MSVC)
target_link_libraries(3rdparty_opengl INTERFACE OpenGL::GL OpenGL::GLU)
else()
target_link_libraries(3rdparty_opengl INTERFACE dxgi.lib d2d1.lib dwrite.lib)
endif()
elseif(APPLE)
target_link_libraries(3rdparty_opengl INTERFACE OpenGL::GL OpenGL::GLU)
else()
target_link_libraries(3rdparty_opengl INTERFACE dxgi.lib d2d1.lib dwrite.lib)
target_link_libraries(3rdparty_opengl INTERFACE OpenGL::GL OpenGL::GLU OpenGL::GLX)
endif()
elseif(APPLE)
target_link_libraries(3rdparty_opengl INTERFACE OpenGL::GL OpenGL::GLU)
else()
target_link_libraries(3rdparty_opengl INTERFACE OpenGL::GL OpenGL::GLU OpenGL::GLX)
add_library(3rdparty_opengl INTERFACE)
target_compile_definitions(3rdparty_opengl INTERFACE WITHOUT_OPENGL=1)
endif()
# stblib
add_subdirectory(stblib)
@@ -135,7 +131,14 @@ add_subdirectory(stblib)
add_subdirectory(discord-rpc)
# Cubeb
add_subdirectory(cubeb EXCLUDE_FROM_ALL)
if(USE_SYSTEM_CUBEB)
find_package(cubeb REQUIRED GLOBAL)
message(STATUS "Using system cubeb version '${cubeb_VERSION}'")
add_library(3rdparty::cubeb ALIAS cubeb::cubeb)
else()
message(STATUS "Using static cubeb from 3rdparty")
add_subdirectory(cubeb EXCLUDE_FROM_ALL)
endif()
# SoundTouch
add_subdirectory(SoundTouch EXCLUDE_FROM_ALL)
@@ -190,16 +193,13 @@ if(USE_VULKAN)
if(VULKAN_FOUND)
add_library(3rdparty_vulkan INTERFACE)
target_compile_definitions(3rdparty_vulkan INTERFACE -DHAVE_VULKAN)
target_link_libraries(3rdparty_vulkan INTERFACE SPIRV Vulkan::Vulkan)
target_link_libraries(3rdparty_vulkan INTERFACE Vulkan::Vulkan)
if(UNIX AND NOT APPLE)
if(UNIX AND NOT APPLE AND NOT ANDROID)
find_package(Wayland)
if (WAYLAND_FOUND)
target_include_directories(3rdparty_vulkan
INTERFACE ${WAYLAND_INCLUDE_DIR})
target_compile_definitions(3rdparty_vulkan
INTERFACE -DVK_USE_PLATFORM_WAYLAND_KHR)
endif()
endif()
@@ -215,42 +215,68 @@ endif()
# AsmJit
add_subdirectory(asmjit EXCLUDE_FROM_ALL)
# SDL3
set(SDL3_TARGET 3rdparty_dummy_lib)
if(USE_SDL)
if(USE_SYSTEM_SDL)
find_package(SDL3)
if(SDL3_FOUND AND SDL3_VERSION VERSION_GREATER_EQUAL 3.2.0)
message(STATUS "Using system SDL3 version '${SDL3_VERSION}'")
add_library(3rdparty_sdl3 INTERFACE)
target_compile_definitions(3rdparty_sdl3 INTERFACE -DHAVE_SDL3=1)
target_link_libraries(3rdparty_sdl3 INTERFACE SDL3::SDL3)
set(SDL3_TARGET 3rdparty_sdl3)
else()
message(FATAL_ERROR "SDL3 is not available on this system")
endif()
else()
message(STATUS "Using static SDL3 from 3rdparty")
add_subdirectory(libsdl-org EXCLUDE_FROM_ALL)
target_compile_definitions(SDL3-static INTERFACE -DHAVE_SDL3=1)
set(SDL3_TARGET SDL3-static)
set(SDL3_DIR "${CMAKE_CURRENT_BINARY_DIR}/libsdl-org/SDL" CACHE STRING "")
endif()
endif()
# OpenAL
add_subdirectory(OpenAL EXCLUDE_FROM_ALL)
if (NOT ANDROID)
add_subdirectory(OpenAL EXCLUDE_FROM_ALL)
else()
add_library(3rdparty_openal INTERFACE)
target_compile_definitions(3rdparty_openal INTERFACE WITHOUT_OPENAL=1)
endif()
# FAudio
set(FAUDIO_TARGET 3rdparty_dummy_lib)
if(USE_FAUDIO)
# FAudio depends on SDL2
find_package(SDL2)
# FAudio depends on SDL3
find_package(SDL3)
if (USE_SYSTEM_FAUDIO)
if (NOT SDL2_FOUND OR SDL2_VERSION VERSION_LESS 2.0.12)
message(WARNING
"RPCS3: System FAudio requires SDL 2.0.9 or newer. Please note, this warning"
"can also be displayed with SDL2 versions between 2.0.9-2.0.12, as the"
"CMake config files are not correctly installed. Since a valid SDL2"
">=2.0.9 version cannot be found, building with FAudio will be skipped.")
set(USE_FAUDIO OFF CACHE BOOL "Disabled using system FAudio with SDL < 2.0.12" FORCE)
else()
if (SDL3_FOUND AND SDL3_VERSION VERSION_GREATER_EQUAL 3.2.0)
message(STATUS "RPCS3: Using system FAudio")
find_package(FAudio REQUIRED CONFIGS FAudioConfig.cmake FAudio-config.cmake)
add_library(3rdparty_FAudio INTERFACE)
target_link_libraries(3rdparty_FAudio INTERFACE FAudio)
target_compile_definitions(3rdparty_FAudio INTERFACE -DHAVE_FAUDIO)
set(FAUDIO_TARGET 3rdparty_FAudio)
else()
message(WARNING
"RPCS3: System 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.")
set(USE_FAUDIO OFF CACHE BOOL "Disabled using system FAudio with SDL < 3.2.0" FORCE)
endif()
else()
if (NOT SDL2_FOUND OR SDL2_VERSION VERSION_LESS 2.24.0)
message(WARNING
"-- RPCS3: 3rdparty FAudio requires SDL 2.24.0 or newer. Since a valid SDL2"
">=2.24.0 version cannot be found, building with FAudio will be skipped.")
set(USE_FAUDIO OFF CACHE BOOL "Disabled FAudio with SDL < 2.24.0" FORCE)
else()
if (SDL3_FOUND AND SDL3_VERSION VERSION_GREATER_EQUAL 3.2.0)
message(STATUS "RPCS3: Using builtin FAudio")
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared library")
add_subdirectory(FAudio EXCLUDE_FROM_ALL)
target_compile_definitions(FAudio-static INTERFACE -DHAVE_FAUDIO)
set(FAUDIO_TARGET FAudio-static)
else()
message(FATAL_ERROR
"-- 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.")
set(USE_FAUDIO OFF CACHE BOOL "Disabled FAudio with SDL < 3.2.0" FORCE)
endif()
endif()
endif()
@@ -259,47 +285,52 @@ set_property(TARGET ${FAUDIO_TARGET} PROPERTY FOLDER "3rdparty/")
# FFMPEG
add_library(3rdparty_ffmpeg INTERFACE)
if(NOT ANDROID)
add_library(3rdparty_ffmpeg INTERFACE)
# Select the version of ffmpeg to use, default is builtin
if(USE_SYSTEM_FFMPEG)
message(STATUS "RPCS3: using shared ffmpeg")
find_package(FFMPEG REQUIRED)
# Select the version of ffmpeg to use, default is builtin
if(USE_SYSTEM_FFMPEG)
message(STATUS "RPCS3: using shared ffmpeg")
find_package(FFMPEG REQUIRED)
target_include_directories(3rdparty_ffmpeg INTERFACE ${FFMPEG_INCLUDE_DIR})
target_link_libraries(3rdparty_ffmpeg INTERFACE ${FFMPEG_LIBRARIES})
else()
message(STATUS "RPCS3: using builtin ffmpeg")
add_subdirectory(ffmpeg EXCLUDE_FROM_ALL)
# ffmpeg-core libraries are extracted to CMAKE_BINARY_DIR
set(FFMPEG_LIB_DIR "${CMAKE_BINARY_DIR}/3rdparty/ffmpeg/lib")
target_include_directories(3rdparty_ffmpeg INTERFACE ${FFMPEG_INCLUDE_DIR})
target_link_libraries(3rdparty_ffmpeg INTERFACE ${FFMPEG_LIBRARIES})
else()
message(STATUS "RPCS3: using builtin ffmpeg")
add_subdirectory(ffmpeg EXCLUDE_FROM_ALL)
# ffmpeg-core libraries are extracted to CMAKE_BINARY_DIR
set(FFMPEG_LIB_DIR "${CMAKE_BINARY_DIR}/3rdparty/ffmpeg/lib")
if (WIN32)
target_link_libraries(3rdparty_ffmpeg INTERFACE "Bcrypt.lib")
if (WIN32)
target_link_libraries(3rdparty_ffmpeg INTERFACE "Bcrypt.lib")
endif()
find_library(FFMPEG_LIB_AVFORMAT avformat PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
find_library(FFMPEG_LIB_AVCODEC avcodec PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
find_library(FFMPEG_LIB_AVUTIL avutil PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
find_library(FFMPEG_LIB_SWSCALE swscale PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
find_library(FFMPEG_LIB_SWRESAMPLE swresample PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
if (FFMPEG_LIB_AVFORMAT MATCHES "FFMPEG_LIB_AVFORMAT-NOTFOUND")
message(FATAL_ERROR "@#$%! FFMPEG NOT FOUND! ${FFMPEG_LIB_DIR}")
endif()
target_link_libraries(3rdparty_ffmpeg
INTERFACE
${FFMPEG_LIB_AVFORMAT}
${FFMPEG_LIB_AVCODEC}
${FFMPEG_LIB_AVUTIL}
${FFMPEG_LIB_SWSCALE}
${FFMPEG_LIB_SWRESAMPLE}
)
target_include_directories(3rdparty_ffmpeg INTERFACE "ffmpeg/include")
endif()
find_library(FFMPEG_LIB_AVFORMAT avformat PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
find_library(FFMPEG_LIB_AVCODEC avcodec PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
find_library(FFMPEG_LIB_AVUTIL avutil PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
find_library(FFMPEG_LIB_SWSCALE swscale PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
find_library(FFMPEG_LIB_SWRESAMPLE swresample PATHS ${FFMPEG_LIB_DIR} NO_DEFAULT_PATH)
target_link_libraries(3rdparty_ffmpeg
INTERFACE
${FFMPEG_LIB_AVFORMAT}
${FFMPEG_LIB_AVCODEC}
${FFMPEG_LIB_AVUTIL}
${FFMPEG_LIB_SWSCALE}
${FFMPEG_LIB_SWRESAMPLE}
)
target_include_directories(3rdparty_ffmpeg INTERFACE "ffmpeg/include")
endif()
# GLEW
add_library(3rdparty_glew INTERFACE)
if(NOT MSVC)
if(NOT MSVC AND NOT ANDROID)
find_package(GLEW REQUIRED)
target_link_libraries(3rdparty_glew INTERFACE GLEW::GLEW)
endif()
@@ -314,29 +345,6 @@ add_subdirectory(wolfssl EXCLUDE_FROM_ALL)
# CURL
add_subdirectory(curl EXCLUDE_FROM_ALL)
# SDL2
set(SDL2_TARGET 3rdparty_dummy_lib)
if(USE_SDL)
if(USE_SYSTEM_SDL)
find_package(SDL2)
if(SDL2_FOUND AND NOT SDL2_VERSION VERSION_LESS 2.24.0)
message(STATUS "Using system SDL2")
add_library(3rdparty_sdl2 INTERFACE)
target_compile_definitions(3rdparty_sdl2 INTERFACE -DHAVE_SDL2=1)
target_link_libraries(3rdparty_sdl2 INTERFACE SDL2::SDL2)
set(SDL2_TARGET 3rdparty_sdl2)
else()
message(FATAL_ERROR "SDL2 is not available on this system")
endif()
else()
message(STATUS "Using static SDL2 from 3rdparty")
add_library(3rdparty_sdl2 INTERFACE)
target_compile_definitions(3rdparty_sdl2 INTERFACE -DHAVE_SDL2=1)
add_subdirectory(libsdl-org EXCLUDE_FROM_ALL)
set(SDL2_TARGET 3rdparty_sdl2)
endif()
endif()
# MINIUPNP
add_subdirectory(miniupnp EXCLUDE_FROM_ALL)
@@ -349,6 +357,9 @@ add_subdirectory(opencv EXCLUDE_FROM_ALL)
# FUSION
add_subdirectory(fusion EXCLUDE_FROM_ALL)
# FERAL INTERACTIVE
add_subdirectory(feralinteractive EXCLUDE_FROM_ALL)
# add nice ALIAS targets for ease of use
if(USE_SYSTEM_LIBUSB)
add_library(3rdparty::libusb ALIAS usb-1.0-shared)
@@ -360,8 +371,8 @@ add_library(3rdparty::zstd ALIAS 3rdparty_zstd)
add_library(3rdparty::7zip ALIAS 3rdparty_7zip)
add_library(3rdparty::flatbuffers ALIAS 3rdparty_flatbuffers)
add_library(3rdparty::pugixml ALIAS pugixml)
add_library(3rdparty::glslang ALIAS 3rdparty_glslang)
add_library(3rdparty::yaml-cpp ALIAS yaml-cpp)
add_library(3rdparty::xxhash ALIAS xxhash)
add_library(3rdparty::hidapi ALIAS 3rdparty_hidapi)
add_library(3rdparty::libpng ALIAS ${LIBPNG_TARGET})
add_library(3rdparty::opengl ALIAS 3rdparty_opengl)
@@ -376,8 +387,9 @@ add_library(3rdparty::glew ALIAS 3rdparty_glew)
add_library(3rdparty::wolfssl ALIAS wolfssl)
add_library(3rdparty::libcurl ALIAS 3rdparty_libcurl)
add_library(3rdparty::soundtouch ALIAS soundtouch)
add_library(3rdparty::sdl2 ALIAS ${SDL2_TARGET})
add_library(3rdparty::sdl3 ALIAS ${SDL3_TARGET})
add_library(3rdparty::miniupnpc ALIAS libminiupnpc-static)
add_library(3rdparty::rtmidi ALIAS rtmidi)
add_library(3rdparty::opencv ALIAS ${OPENCV_TARGET})
add_library(3rdparty::fusion ALIAS Fusion)
add_library(3rdparty::feralinteractive ALIAS 3rdparty_feralinteractive)
+36 -15
View File
@@ -32,7 +32,7 @@ extern "C" {
#define GLAPI extern
#endif
#define GL_GLEXT_VERSION 20220530
#define GL_GLEXT_VERSION 20250203
#include <KHR/khrplatform.h>
@@ -5397,12 +5397,12 @@ typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severi
typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam);
typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufSize, GLenum *categories, GLenum *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, void *userParam);
GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufSize, GLenum *categories, GLenum *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
#endif
#endif /* GL_AMD_debug_output */
@@ -7370,6 +7370,16 @@ GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1,
#endif
#endif /* GL_EXT_framebuffer_blit */
#ifndef GL_EXT_framebuffer_blit_layers
#define GL_EXT_framebuffer_blit_layers 1
typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERLAYERSEXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERLAYEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glBlitFramebufferLayersEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
GLAPI void APIENTRY glBlitFramebufferLayerEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter);
#endif
#endif /* GL_EXT_framebuffer_blit_layers */
#ifndef GL_EXT_framebuffer_multisample
#define GL_EXT_framebuffer_multisample 1
#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
@@ -9394,6 +9404,11 @@ GLAPI void APIENTRY glResizeBuffersMESA (void);
#define GL_MESA_shader_integer_functions 1
#endif /* GL_MESA_shader_integer_functions */
#ifndef GL_MESA_texture_const_bandwidth
#define GL_MESA_texture_const_bandwidth 1
#define GL_CONST_BW_TILING_MESA 0x8BBE
#endif /* GL_MESA_texture_const_bandwidth */
#ifndef GL_MESA_tile_raster_order
#define GL_MESA_tile_raster_order 1
#define GL_TILE_RASTER_ORDER_FIXED_MESA 0x8BB8
@@ -10248,12 +10263,6 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s,
typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog);
typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog);
typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
@@ -10266,6 +10275,12 @@ typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, c
typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog);
typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog);
typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y);
GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v);
@@ -10295,12 +10310,6 @@ GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t,
GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v);
GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v);
GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog);
GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog);
GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v);
GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight);
GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight);
GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x);
GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v);
GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y);
@@ -10313,6 +10322,12 @@ GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfN
GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog);
GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog);
GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v);
GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight);
GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight);
#endif
#endif /* GL_NV_half_float */
@@ -11449,6 +11464,10 @@ GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id);
#endif
#endif /* GL_NV_transform_feedback2 */
#ifndef GL_NV_uniform_buffer_std430_layout
#define GL_NV_uniform_buffer_std430_layout 1
#endif /* GL_NV_uniform_buffer_std430_layout */
#ifndef GL_NV_uniform_buffer_unified_memory
#define GL_NV_uniform_buffer_unified_memory 1
#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
@@ -11964,8 +11983,10 @@ GLAPI void APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum s
#define GL_MAX_VIEWS_OVR 0x9631
#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
GLAPI void APIENTRY glNamedFramebufferTextureMultiviewOVR (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
#endif
#endif /* GL_OVR_multiview */
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -1,10 +1,9 @@
cmake_minimum_required(VERSION 2.8.12)
project(moltenvk NONE)
include(ExternalProject)
ExternalProject_Add(moltenvk
GIT_REPOSITORY https://github.com/KhronosGroup/MoltenVK.git
GIT_TAG 81541f6
GIT_TAG 49b97f2
BUILD_IN_SOURCE 1
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK
CONFIGURE_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK/fetchDependencies" --macos
+1
View File
@@ -11,6 +11,7 @@ if(USE_SYSTEM_OPENAL)
else()
option(ALSOFT_UTILS "Build utility programs" OFF)
option(ALSOFT_EXAMPLES "Build example programs" OFF)
set(LIBTYPE "STATIC")
add_subdirectory(openal-soft EXCLUDE_FROM_ALL)
add_library(3rdparty_openal INTERFACE)
target_link_libraries(3rdparty_openal INTERFACE OpenAL::OpenAL)
+2 -2
View File
@@ -49,11 +49,11 @@
<PropertyGroup Label="UserMacros">
<CmakeReleaseCLI>call vsdevcmd.bat -arch=amd64
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_SYSTEM_VERSION=6.1 -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>
<CmakeDebugCLI>call vsdevcmd.bat -arch=amd64
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_SYSTEM_VERSION=6.1 -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>
<CmakeCopyCLI>
echo Copying..
+170
View File
@@ -0,0 +1,170 @@
// Based on https://github.com/iOrange/bcdec/blob/963c5e56b7a335e066cff7d16a3de75f4e8ad366/bcdec.h
// provides functions to decompress blocks of BC compressed images
//
// ------------------------------------------------------------------------------
//
// MIT LICENSE
// ===========
// Copyright (c) 2022 Sergii Kudlai
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
// of the Software, and to permit persons to whom the Software is furnished to do
// so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
// ------------------------------------------------------------------------------
#pragma once
#include <util/types.hpp>
static void bcdec__color_block(const u8* compressedBlock, u8* dstColors, int destinationPitch, bool onlyOpaqueMode) {
u16 c0, c1;
u32 refColors[4]; /* 0xAABBGGRR */
u32 colorIndices;
u32 r0, g0, b0, r1, g1, b1, r, g, b;
c0 = *reinterpret_cast<const u16*>(compressedBlock);
c1 = *(reinterpret_cast<const u16*>(compressedBlock) + 1);
/* Unpack 565 ref colors */
r0 = (c0 >> 11) & 0x1F;
g0 = (c0 >> 5) & 0x3F;
b0 = c0 & 0x1F;
r1 = (c1 >> 11) & 0x1F;
g1 = (c1 >> 5) & 0x3F;
b1 = c1 & 0x1F;
/* Expand 565 ref colors to 888 */
r = (r0 * 527 + 23) >> 6;
g = (g0 * 259 + 33) >> 6;
b = (b0 * 527 + 23) >> 6;
refColors[0] = 0xFF000000 | (r << 16) | (g << 8) | b;
r = (r1 * 527 + 23) >> 6;
g = (g1 * 259 + 33) >> 6;
b = (b1 * 527 + 23) >> 6;
refColors[1] = 0xFF000000 | (r << 16) | (g << 8) | b;
if (c0 > c1 || onlyOpaqueMode)
{ /* Standard BC1 mode (also BC3 color block uses ONLY this mode) */
/* color_2 = 2/3*color_0 + 1/3*color_1
color_3 = 1/3*color_0 + 2/3*color_1 */
r = ((2 * r0 + r1) * 351 + 61) >> 7;
g = ((2 * g0 + g1) * 2763 + 1039) >> 11;
b = ((2 * b0 + b1) * 351 + 61) >> 7;
refColors[2] = 0xFF000000 | (r << 16) | (g << 8) | b;
r = ((r0 + r1 * 2) * 351 + 61) >> 7;
g = ((g0 + g1 * 2) * 2763 + 1039) >> 11;
b = ((b0 + b1 * 2) * 351 + 61) >> 7;
refColors[3] = 0xFF000000 | (r << 16) | (g << 8) | b;
}
else
{ /* Quite rare BC1A mode */
/* color_2 = 1/2*color_0 + 1/2*color_1;
color_3 = 0; */
r = ((r0 + r1) * 1053 + 125) >> 8;
g = ((g0 + g1) * 4145 + 1019) >> 11;
b = ((b0 + b1) * 1053 + 125) >> 8;
refColors[2] = 0xFF000000 | (r << 16) | (g << 8) | b;
refColors[3] = 0x00000000;
}
colorIndices = *reinterpret_cast<const u32*>(compressedBlock + 4);
/* Fill out the decompressed color block */
for (int i = 0; i < 4; ++i)
{
for (int j = 0; j < 4; ++j)
{
int idx = colorIndices & 0x03;
*reinterpret_cast<u32*>(dstColors + j * 4) = refColors[idx];
colorIndices >>= 2;
}
dstColors += destinationPitch;
}
}
static void bcdec__sharp_alpha_block(const u16* alpha, u8* decompressed, int destinationPitch) {
for (int i = 0; i < 4; ++i)
{
for (int j = 0; j < 4; ++j)
{
decompressed[j * 4] = ((alpha[i] >> (4 * j)) & 0x0F) * 17;
}
decompressed += destinationPitch;
}
}
static void bcdec__smooth_alpha_block(const u8* compressedBlock, u8* decompressed, int destinationPitch) {
u8 alpha[8];
u64 block = *reinterpret_cast<const u64*>(compressedBlock);
u64 indices;
alpha[0] = block & 0xFF;
alpha[1] = (block >> 8) & 0xFF;
if (alpha[0] > alpha[1])
{
/* 6 interpolated alpha values. */
alpha[2] = (6 * alpha[0] + alpha[1]) / 7; /* 6/7*alpha_0 + 1/7*alpha_1 */
alpha[3] = (5 * alpha[0] + 2 * alpha[1]) / 7; /* 5/7*alpha_0 + 2/7*alpha_1 */
alpha[4] = (4 * alpha[0] + 3 * alpha[1]) / 7; /* 4/7*alpha_0 + 3/7*alpha_1 */
alpha[5] = (3 * alpha[0] + 4 * alpha[1]) / 7; /* 3/7*alpha_0 + 4/7*alpha_1 */
alpha[6] = (2 * alpha[0] + 5 * alpha[1]) / 7; /* 2/7*alpha_0 + 5/7*alpha_1 */
alpha[7] = ( alpha[0] + 6 * alpha[1]) / 7; /* 1/7*alpha_0 + 6/7*alpha_1 */
}
else
{
/* 4 interpolated alpha values. */
alpha[2] = (4 * alpha[0] + alpha[1]) / 5; /* 4/5*alpha_0 + 1/5*alpha_1 */
alpha[3] = (3 * alpha[0] + 2 * alpha[1]) / 5; /* 3/5*alpha_0 + 2/5*alpha_1 */
alpha[4] = (2 * alpha[0] + 3 * alpha[1]) / 5; /* 2/5*alpha_0 + 3/5*alpha_1 */
alpha[5] = ( alpha[0] + 4 * alpha[1]) / 5; /* 1/5*alpha_0 + 4/5*alpha_1 */
alpha[6] = 0x00;
alpha[7] = 0xFF;
}
indices = block >> 16;
for (int i = 0; i < 4; ++i)
{
for (int j = 0; j < 4; ++j)
{
decompressed[j * 4] = alpha[indices & 0x07];
indices >>= 3;
}
decompressed += destinationPitch;
}
}
static inline void bcdec_bc1(const u8* compressedBlock, u8* decompressedBlock, int destinationPitch) {
bcdec__color_block(compressedBlock, decompressedBlock, destinationPitch, false);
}
static inline void bcdec_bc2(const u8* compressedBlock, u8* decompressedBlock, int destinationPitch) {
bcdec__color_block(compressedBlock + 8, decompressedBlock, destinationPitch, true);
bcdec__sharp_alpha_block(reinterpret_cast<const u16*>(compressedBlock), decompressedBlock + 3, destinationPitch);
}
static inline void bcdec_bc3(const u8* compressedBlock, u8* decompressedBlock, int destinationPitch) {
bcdec__color_block(compressedBlock + 8, decompressedBlock, destinationPitch, true);
bcdec__smooth_alpha_block(compressedBlock, decompressedBlock + 3, destinationPitch);
}
+5 -12
View File
@@ -11,12 +11,13 @@ else()
set(BUILD_STATIC_CURL OFF CACHE BOOL "Set to ON to build curl executable with static libcurl.")
set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libcurl.")
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Set to ON to build shared libcurl.")
# If set to ON then CURL can not find our wolfssl
set(CURL_USE_WOLFSSL OFF CACHE BOOL "enable wolfSSL for SSL/TLS")
find_package(WolfSSL REQUIRED)
set(CURL_USE_WOLFSSL ON CACHE BOOL "enable wolfSSL for SSL/TLS")
set(CURL_USE_OPENSSL OFF CACHE BOOL "Use OpenSSL code. Experimental")
set(HTTP_ONLY ON CACHE BOOL "disables all protocols except HTTP (This overrides all CURL_DISABLE_* options)")
set(USE_LIBIDN2 OFF CACHE BOOL "Use libidn2 for IDN support") # Disabled because MacOS CI doesn't work otherwise
set(CURL_CA_PATH "none" CACHE STRING "Location of default CA path. Set 'none' to disable or 'auto' for auto-detection. Defaults to 'auto'.")
option(CURL_DISABLE_INSTALL "Disable installation targets" ON)
if(USE_MSVC_STATIC_CRT)
set(CURL_STATIC_CRT ON CACHE BOOL "Use static crt to build curl")
endif()
@@ -25,19 +26,11 @@ else()
endif()
set(CURL_USE_LIBSSH2 OFF CACHE BOOL "Use libSSH2")
set(CURL_USE_LIBPSL OFF CACHE BOOL "Use libPSL")
set(SSL_ENABLED ON)
set(USE_WOLFSSL ON)
set(SHARE_LIB_OBJECT OFF)
set(CURL_DISABLE_TESTS ON)
option(BUILD_TESTING "Build tests" OFF)
option(BUILD_EXAMPLES "Build libcurl examples" OFF)
add_subdirectory(curl EXCLUDE_FROM_ALL)
target_link_libraries(libcurl_static PRIVATE wolfssl)
if(MSVC)
target_compile_definitions(libcurl_static PRIVATE HAVE_SSIZE_T)
endif()
add_library(3rdparty_libcurl INTERFACE)
target_link_libraries(3rdparty_libcurl INTERFACE libcurl_static)
+55 -29
View File
@@ -62,11 +62,10 @@
<ClCompile Include="curl\lib\altsvc.c" />
<ClCompile Include="curl\lib\amigaos.c" />
<ClCompile Include="curl\lib\asyn-ares.c" />
<ClCompile Include="curl\lib\asyn-thread.c" />
<ClCompile Include="curl\lib\base64.c" />
<ClCompile Include="curl\lib\asyn-base.c" />
<ClCompile Include="curl\lib\asyn-thrdd.c" />
<ClCompile Include="curl\lib\bufq.c" />
<ClCompile Include="curl\lib\bufref.c" />
<ClCompile Include="curl\lib\c-hyper.c" />
<ClCompile Include="curl\lib\cf-h1-proxy.c" />
<ClCompile Include="curl\lib\cf-h2-proxy.c" />
<ClCompile Include="curl\lib\cf-haproxy.c" />
@@ -77,6 +76,18 @@
<ClCompile Include="curl\lib\connect.c" />
<ClCompile Include="curl\lib\content_encoding.c" />
<ClCompile Include="curl\lib\cookie.c" />
<ClCompile Include="curl\lib\cshutdn.c" />
<ClCompile Include="curl\lib\curlx\base64.c" />
<ClCompile Include="curl\lib\curlx\dynbuf.c" />
<ClCompile Include="curl\lib\curlx\inet_pton.c" />
<ClCompile Include="curl\lib\curlx\multibyte.c" />
<ClCompile Include="curl\lib\curlx\nonblock.c" />
<ClCompile Include="curl\lib\curlx\strparse.c" />
<ClCompile Include="curl\lib\curlx\timediff.c" />
<ClCompile Include="curl\lib\curlx\timeval.c" />
<ClCompile Include="curl\lib\curlx\version_win32.c" />
<ClCompile Include="curl\lib\curlx\warnless.c" />
<ClCompile Include="curl\lib\curlx\winapi.c" />
<ClCompile Include="curl\lib\curl_addrinfo.c" />
<ClCompile Include="curl\lib\curl_des.c" />
<ClCompile Include="curl\lib\curl_endian.c" />
@@ -85,7 +96,6 @@
<ClCompile Include="curl\lib\curl_get_line.c" />
<ClCompile Include="curl\lib\curl_gssapi.c" />
<ClCompile Include="curl\lib\curl_memrchr.c" />
<ClCompile Include="curl\lib\curl_multibyte.c" />
<ClCompile Include="curl\lib\curl_ntlm_core.c" />
<ClCompile Include="curl\lib\curl_range.c" />
<ClCompile Include="curl\lib\curl_rtmp.c" />
@@ -95,14 +105,16 @@
<ClCompile Include="curl\lib\curl_threads.c" />
<ClCompile Include="curl\lib\curl_trc.c" />
<ClCompile Include="curl\lib\cw-out.c" />
<ClCompile Include="curl\lib\cw-pause.c" />
<ClCompile Include="curl\lib\dict.c" />
<ClCompile Include="curl\lib\dllmain.c" />
<ClCompile Include="curl\lib\doh.c" />
<ClCompile Include="curl\lib\dynbuf.c" />
<ClCompile Include="curl\lib\dynhds.c" />
<ClCompile Include="curl\lib\easy.c" />
<ClCompile Include="curl\lib\easygetopt.c" />
<ClCompile Include="curl\lib\easyoptions.c" />
<ClCompile Include="curl\lib\escape.c" />
<ClCompile Include="curl\lib\fake_addrinfo.c" />
<ClCompile Include="curl\lib\file.c" />
<ClCompile Include="curl\lib\fileinfo.c" />
<ClCompile Include="curl\lib\fopen.c" />
@@ -115,15 +127,14 @@
<ClCompile Include="curl\lib\hash.c" />
<ClCompile Include="curl\lib\headers.c" />
<ClCompile Include="curl\lib\hmac.c" />
<ClCompile Include="curl\lib\hostasyn.c" />
<ClCompile Include="curl\lib\hostip.c" />
<ClCompile Include="curl\lib\hostip4.c" />
<ClCompile Include="curl\lib\hostip6.c" />
<ClCompile Include="curl\lib\hostsyn.c" />
<ClCompile Include="curl\lib\hsts.c" />
<ClCompile Include="curl\lib\http.c" />
<ClCompile Include="curl\lib\http1.c" />
<ClCompile Include="curl\lib\http2.c" />
<ClCompile Include="curl\lib\httpsrr.c" />
<ClCompile Include="curl\lib\http_aws_sigv4.c" />
<ClCompile Include="curl\lib\http_chunks.c" />
<ClCompile Include="curl\lib\http_digest.c" />
@@ -134,10 +145,10 @@
<ClCompile Include="curl\lib\if2ip.c" />
<ClCompile Include="curl\lib\imap.c" />
<ClCompile Include="curl\lib\inet_ntop.c" />
<ClCompile Include="curl\lib\inet_pton.c" />
<ClCompile Include="curl\lib\krb5.c" />
<ClCompile Include="curl\lib\ldap.c" />
<ClCompile Include="curl\lib\llist.c" />
<ClCompile Include="curl\lib\macos.c" />
<ClCompile Include="curl\lib\md4.c" />
<ClCompile Include="curl\lib\md5.c" />
<ClCompile Include="curl\lib\memdebug.c" />
@@ -145,8 +156,8 @@
<ClCompile Include="curl\lib\mprintf.c" />
<ClCompile Include="curl\lib\mqtt.c" />
<ClCompile Include="curl\lib\multi.c" />
<ClCompile Include="curl\lib\multi_ev.c" />
<ClCompile Include="curl\lib\netrc.c" />
<ClCompile Include="curl\lib\nonblock.c" />
<ClCompile Include="curl\lib\noproxy.c" />
<ClCompile Include="curl\lib\openldap.c" />
<ClCompile Include="curl\lib\parsedate.c" />
@@ -174,27 +185,29 @@
<ClCompile Include="curl\lib\splay.c" />
<ClCompile Include="curl\lib\strcase.c" />
<ClCompile Include="curl\lib\strdup.c" />
<ClCompile Include="curl\lib\strequal.c" />
<ClCompile Include="curl\lib\strerror.c" />
<ClCompile Include="curl\lib\strtok.c" />
<ClCompile Include="curl\lib\strtoofft.c" />
<ClCompile Include="curl\lib\system_win32.c" />
<ClCompile Include="curl\lib\telnet.c" />
<ClCompile Include="curl\lib\tftp.c" />
<ClCompile Include="curl\lib\timediff.c" />
<ClCompile Include="curl\lib\timeval.c" />
<ClCompile Include="curl\lib\transfer.c" />
<ClCompile Include="curl\lib\uint-bset.c" />
<ClCompile Include="curl\lib\uint-hash.c" />
<ClCompile Include="curl\lib\uint-spbset.c" />
<ClCompile Include="curl\lib\uint-table.c" />
<ClCompile Include="curl\lib\url.c" />
<ClCompile Include="curl\lib\urlapi.c" />
<ClCompile Include="curl\lib\vauth\gsasl.c" />
<ClCompile Include="curl\lib\version.c" />
<ClCompile Include="curl\lib\version_win32.c" />
<ClCompile Include="curl\lib\vquic\curl_msh3.c" />
<ClCompile Include="curl\lib\vquic\curl_ngtcp2.c" />
<ClCompile Include="curl\lib\vquic\curl_quiche.c" />
<ClCompile Include="curl\lib\vtls\cipher_suite.c" />
<ClCompile Include="curl\lib\vtls\hostcheck.c" />
<ClCompile Include="curl\lib\vtls\rustls.c" />
<ClCompile Include="curl\lib\vtls\vtls_scache.c" />
<ClCompile Include="curl\lib\vtls\vtls_spack.c" />
<ClCompile Include="curl\lib\vtls\x509asn1.c" />
<ClCompile Include="curl\lib\warnless.c" />
<ClCompile Include="curl\lib\vauth\cleartext.c" />
<ClCompile Include="curl\lib\vauth\cram.c" />
<ClCompile Include="curl\lib\vauth\digest.c" />
@@ -241,28 +254,35 @@
<ClInclude Include="curl\lib\asyn.h" />
<ClInclude Include="curl\lib\bufq.h" />
<ClInclude Include="curl\lib\bufref.h" />
<ClInclude Include="curl\lib\c-hyper.h" />
<ClInclude Include="curl\lib\cf-h1-proxy.h" />
<ClInclude Include="curl\lib\cf-h2-proxy.h" />
<ClInclude Include="curl\lib\cf-haproxy.h" />
<ClInclude Include="curl\lib\cf-https-connect.h" />
<ClInclude Include="curl\lib\cf-socket.h" />
<ClInclude Include="curl\lib\cfilters.h" />
<ClInclude Include="curl\lib\config-amigaos.h" />
<ClInclude Include="curl\lib\config-dos.h" />
<ClInclude Include="curl\lib\config-mac.h" />
<ClInclude Include="curl\lib\config-os400.h" />
<ClInclude Include="curl\lib\config-plan9.h" />
<ClInclude Include="curl\lib\config-riscos.h" />
<ClInclude Include="curl\lib\config-win32.h" />
<ClInclude Include="curl\lib\config-win32ce.h" />
<ClInclude Include="curl\lib\conncache.h" />
<ClInclude Include="curl\lib\connect.h" />
<ClInclude Include="curl\lib\content_encoding.h" />
<ClInclude Include="curl\lib\cookie.h" />
<ClInclude Include="curl\lib\curlx.h" />
<ClInclude Include="curl\lib\cshutdn.h" />
<ClInclude Include="curl\lib\curlx\base64.h" />
<ClInclude Include="curl\lib\curlx\curlx.h" />
<ClInclude Include="curl\lib\curlx\dynbuf.h" />
<ClInclude Include="curl\lib\curlx\inet_pton.h" />
<ClInclude Include="curl\lib\curlx\multibyte.h" />
<ClInclude Include="curl\lib\curlx\nonblock.h" />
<ClInclude Include="curl\lib\curlx\strparse.h" />
<ClInclude Include="curl\lib\curlx\timediff.h" />
<ClInclude Include="curl\lib\curlx\timeval.h" />
<ClInclude Include="curl\lib\curlx\version_win32.h" />
<ClInclude Include="curl\lib\curlx\warnless.h" />
<ClInclude Include="curl\lib\curlx\winapi.h" />
<ClInclude Include="curl\lib\curl_addrinfo.h" />
<ClInclude Include="curl\lib\curl_base64.h" />
<ClInclude Include="curl\lib\curl_ctype.h" />
<ClInclude Include="curl\lib\curl_des.h" />
<ClInclude Include="curl\lib\curl_endian.h" />
@@ -277,7 +297,6 @@
<ClInclude Include="curl\lib\curl_md5.h" />
<ClInclude Include="curl\lib\curl_memory.h" />
<ClInclude Include="curl\lib\curl_memrchr.h" />
<ClInclude Include="curl\lib\curl_multibyte.h" />
<ClInclude Include="curl\lib\curl_ntlm_core.h" />
<ClInclude Include="curl\lib\curl_printf.h" />
<ClInclude Include="curl\lib\curl_range.h" />
@@ -291,14 +310,15 @@
<ClInclude Include="curl\lib\curl_threads.h" />
<ClInclude Include="curl\lib\curl_trc.h" />
<ClInclude Include="curl\lib\cw-out.h" />
<ClInclude Include="curl\lib\cw-pause.h" />
<ClInclude Include="curl\lib\dict.h" />
<ClInclude Include="curl\lib\doh.h" />
<ClInclude Include="curl\lib\dynbuf.h" />
<ClInclude Include="curl\lib\dynhds.h" />
<ClInclude Include="curl\lib\easyif.h" />
<ClInclude Include="curl\lib\easyoptions.h" />
<ClInclude Include="curl\lib\easy_lock.h" />
<ClInclude Include="curl\lib\escape.h" />
<ClInclude Include="curl\lib\fake_addrinfo.h" />
<ClInclude Include="curl\lib\file.h" />
<ClInclude Include="curl\lib\fileinfo.h" />
<ClInclude Include="curl\lib\fopen.h" />
@@ -315,6 +335,7 @@
<ClInclude Include="curl\lib\http.h" />
<ClInclude Include="curl\lib\http1.h" />
<ClInclude Include="curl\lib\http2.h" />
<ClInclude Include="curl\lib\httpsrr.h" />
<ClInclude Include="curl\lib\http_aws_sigv4.h" />
<ClInclude Include="curl\lib\http_chunks.h" />
<ClInclude Include="curl\lib\http_digest.h" />
@@ -325,15 +346,15 @@
<ClInclude Include="curl\lib\if2ip.h" />
<ClInclude Include="curl\lib\imap.h" />
<ClInclude Include="curl\lib\inet_ntop.h" />
<ClInclude Include="curl\lib\inet_pton.h" />
<ClInclude Include="curl\lib\llist.h" />
<ClInclude Include="curl\lib\macos.h" />
<ClInclude Include="curl\lib\memdebug.h" />
<ClInclude Include="curl\lib\mime.h" />
<ClInclude Include="curl\lib\mqtt.h" />
<ClInclude Include="curl\lib\multihandle.h" />
<ClInclude Include="curl\lib\multiif.h" />
<ClInclude Include="curl\lib\multi_ev.h" />
<ClInclude Include="curl\lib\netrc.h" />
<ClInclude Include="curl\lib\nonblock.h" />
<ClInclude Include="curl\lib\noproxy.h" />
<ClInclude Include="curl\lib\parsedate.h" />
<ClInclude Include="curl\lib\pingpong.h" />
@@ -368,21 +389,26 @@
<ClInclude Include="curl\lib\system_win32.h" />
<ClInclude Include="curl\lib\telnet.h" />
<ClInclude Include="curl\lib\tftp.h" />
<ClInclude Include="curl\lib\timediff.h" />
<ClInclude Include="curl\lib\timeval.h" />
<ClInclude Include="curl\lib\transfer.h" />
<ClInclude Include="curl\lib\uint-bset.h" />
<ClInclude Include="curl\lib\uint-hash.h" />
<ClInclude Include="curl\lib\uint-spbset.h" />
<ClInclude Include="curl\lib\uint-table.h" />
<ClInclude Include="curl\lib\url.h" />
<ClInclude Include="curl\lib\urlapi-int.h" />
<ClInclude Include="curl\lib\urldata.h" />
<ClInclude Include="curl\lib\version_win32.h" />
<ClInclude Include="curl\lib\vquic\curl_msh3.h" />
<ClInclude Include="curl\lib\vquic\curl_ngtcp2.h" />
<ClInclude Include="curl\lib\vquic\curl_quiche.h" />
<ClInclude Include="curl\lib\vquic\vquic_int.h" />
<ClInclude Include="curl\lib\vtls\cipher_suite.h" />
<ClInclude Include="curl\lib\vtls\hostcheck.h" />
<ClInclude Include="curl\lib\vtls\rustls.h" />
<ClInclude Include="curl\lib\vtls\schannel_int.h" />
<ClInclude Include="curl\lib\vtls\vtls_int.h" />
<ClInclude Include="curl\lib\vtls\vtls_scache.h" />
<ClInclude Include="curl\lib\vtls\vtls_spack.h" />
<ClInclude Include="curl\lib\vtls\x509asn1.h" />
<ClInclude Include="curl\lib\warnless.h" />
<ClInclude Include="curl\lib\vauth\digest.h" />
<ClInclude Include="curl\lib\vauth\ntlm.h" />
<ClInclude Include="curl\lib\vauth\vauth.h" />
+165 -87
View File
@@ -24,12 +24,6 @@
<ClCompile Include="curl\lib\asyn-ares.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\asyn-thread.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\base64.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\bufref.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -69,9 +63,6 @@
<ClCompile Include="curl\lib\curl_memrchr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curl_multibyte.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curl_ntlm_core.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -132,9 +123,6 @@
<ClCompile Include="curl\lib\hmac.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\hostasyn.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\hostip.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -144,9 +132,6 @@
<ClCompile Include="curl\lib\hostip6.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\hostsyn.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\http.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -177,9 +162,6 @@
<ClCompile Include="curl\lib\inet_ntop.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\inet_pton.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\krb5.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -210,9 +192,6 @@
<ClCompile Include="curl\lib\netrc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\nonblock.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\openldap.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -291,12 +270,6 @@
<ClCompile Include="curl\lib\strerror.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\strtok.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\strtoofft.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\system_win32.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -306,9 +279,6 @@
<ClCompile Include="curl\lib\tftp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\timeval.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\transfer.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -321,9 +291,6 @@
<ClCompile Include="curl\lib\version.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\warnless.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\vauth\cleartext.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -402,24 +369,15 @@
<ClCompile Include="curl\lib\vtls\wolfssl.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\dynbuf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\mqtt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\version_win32.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\vquic\vquic.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\vtls\keylog.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\c-hyper.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\easygetopt.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -447,9 +405,6 @@
<ClCompile Include="curl\lib\headers.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\timediff.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\fopen.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -510,6 +465,90 @@
<ClCompile Include="curl\lib\curl_sha512_256.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\httpsrr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\vtls\cipher_suite.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\vtls\vtls_scache.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\vtls\vtls_spack.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\cshutdn.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\cw-pause.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\dllmain.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\macos.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\multi_ev.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\strequal.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\asyn-base.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\asyn-thrdd.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\fake_addrinfo.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\uint-bset.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\uint-hash.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\uint-spbset.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\uint-table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\base64.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\dynbuf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\inet_pton.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\multibyte.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\nonblock.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\strparse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\timediff.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\timeval.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\version_win32.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\warnless.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="curl\lib\curlx\winapi.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="curl\include\curl\curl.h">
@@ -554,12 +593,6 @@
<ClInclude Include="curl\lib\bufref.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\config-amigaos.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\config-dos.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\config-mac.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -575,9 +608,6 @@
<ClInclude Include="curl\lib\config-win32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\config-win32ce.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\conncache.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -590,15 +620,9 @@
<ClInclude Include="curl\lib\cookie.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curl_addrinfo.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curl_base64.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curl_ctype.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -638,9 +662,6 @@
<ClInclude Include="curl\lib\curl_memrchr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curl_multibyte.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curl_ntlm_core.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -740,9 +761,6 @@
<ClInclude Include="curl\lib\inet_ntop.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\inet_pton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\llist.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -761,9 +779,6 @@
<ClInclude Include="curl\lib\netrc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\nonblock.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\parsedate.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -857,9 +872,6 @@
<ClInclude Include="curl\lib\tftp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\timeval.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\transfer.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -872,9 +884,6 @@
<ClInclude Include="curl\lib\urldata.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\warnless.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\vauth\digest.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -917,27 +926,18 @@
<ClInclude Include="curl\lib\vtls\wolfssl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\dynbuf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\mqtt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\setup-win32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\version_win32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\vquic\vquic.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\vtls\keylog.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\c-hyper.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curl_krb5.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -962,9 +962,6 @@
<ClInclude Include="curl\lib\headers.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\timediff.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\easy_lock.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -1034,6 +1031,87 @@
<ClInclude Include="curl\lib\curl_sha512_256.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\httpsrr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\vtls\cipher_suite.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\vtls\schannel_int.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\vtls\vtls_int.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\vtls\vtls_scache.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\vtls\vtls_spack.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\cshutdn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\cw-pause.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\macos.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\multi_ev.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\fake_addrinfo.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\uint-bset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\uint-hash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\uint-spbset.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\uint-table.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\base64.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\curlx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\dynbuf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\inet_pton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\multibyte.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\nonblock.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\strparse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\timediff.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\timeval.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\version_win32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\warnless.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="curl\lib\curlx\winapi.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="curl\lib\libcurl.rc">
+9 -30
View File
@@ -1,36 +1,15 @@
# DiscordRPC
add_library(3rdparty_discordRPC INTERFACE)
check_cxx_compiler_flag("-msse -msse2 -mcx16" COMPILER_X86)
if (USE_DISCORD_RPC AND (WIN32 OR CMAKE_SYSTEM MATCHES "Linux" OR APPLE))
set(BUILD_EXAMPLES FALSE CACHE BOOL "Build example apps")
set(ENABLE_IO_THREAD TRUE CACHE BOOL "Start up a separate I/O thread, otherwise I'd need to call an update function")
set(USE_STATIC_CRT FALSE CACHE BOOL "Use /MT[d] for dynamic library")
set(WARNINGS_AS_ERRORS FALSE CACHE BOOL "When enabled, compiles with `-Werror` (on *nix platforms).")
# We don't want Discord Rich Presence on the BSDs and other OSes
if (USE_DISCORD_RPC AND (WIN32 OR CMAKE_SYSTEM MATCHES "Linux" OR APPLE) AND COMPILER_X86)
if (WIN32 AND NOT MSVC)
ExternalProject_Add(discordRPC
GIT_REPOSITORY https://github.com/discordapp/discord-rpc
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}
INSTALL_COMMAND ""
)
endif()
target_include_directories(3rdparty_discordRPC INTERFACE include)
add_subdirectory(discord-rpc EXCLUDE_FROM_ALL)
target_include_directories(3rdparty_discordRPC INTERFACE discord-rpc/include)
target_compile_definitions(3rdparty_discordRPC INTERFACE -DWITH_DISCORD_RPC)
set(DISCORD_RPC_LIB NOTFOUND)
if (WIN32)
if (NOT MSVC)
set(DISCORD_RPC_LIB ${CMAKE_CURRENT_BINARY_DIR}/src/libdiscord-rpc.a)
else()
find_library(DISCORD_RPC_LIB discord-rpc PATHS lib/ NO_DEFAULT_PATH)
endif()
elseif(CMAKE_SYSTEM MATCHES "Linux")
find_library(DISCORD_RPC_LIB discord-rpc-linux PATHS lib/ NO_DEFAULT_PATH)
elseif(APPLE)
find_library(DISCORD_RPC_LIB discord-rpc-mac PATHS lib/ NO_DEFAULT_PATH)
endif()
target_link_libraries(3rdparty_discordRPC INTERFACE ${DISCORD_RPC_LIB})
if(APPLE)
target_link_libraries(3rdparty_discordRPC INTERFACE "objc" "-framework Foundation" "-framework CoreServices")
endif()
target_link_libraries(3rdparty_discordRPC INTERFACE discord-rpc)
endif()
@@ -1,65 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{939FE206-1182-ABC3-1234-FEAB88E98404}</ProjectGuid>
</PropertyGroup>
<Import Project="$(SolutionDir)\buildfiles\msvc\common_default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(SolutionDir)\buildfiles\msvc\common_default_macros.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(SolutionDir)\buildfiles\msvc\rpcs3_default.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(SolutionDir)\buildfiles\msvc\rpcs3_debug.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(SolutionDir)\buildfiles\msvc\rpcs3_release.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="xxHash/xxhash.c" />
</ItemGroup>
<ItemGroup>
<Text Include="LICENSE" />
<Text Include="CMakeLists.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="xxHash/xxhash.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="discord-rpc\include\discord_register.h" />
<ClInclude Include="discord-rpc\include\discord_rpc.h" />
<ClInclude Include="discord-rpc\src\backoff.h" />
<ClInclude Include="discord-rpc\src\connection.h" />
<ClInclude Include="discord-rpc\src\msg_queue.h" />
<ClInclude Include="discord-rpc\src\rpc_connection.h" />
<ClInclude Include="discord-rpc\src\serialization.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="discord-rpc\src\connection_win.cpp" />
<ClCompile Include="discord-rpc\src\discord_register_win.cpp" />
<ClCompile Include="discord-rpc\src\discord_rpc.cpp" />
<ClCompile Include="discord-rpc\src\dllmain.cpp" />
<ClCompile Include="discord-rpc\src\rpc_connection.cpp" />
<ClCompile Include="discord-rpc\src\serialization.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{81b0d6d6-84e6-40c1-8dbd-47cbcb3051ad}</ProjectGuid>
<RootNamespace>discord-rpc</RootNamespace>
</PropertyGroup>
<Import Project="$(SolutionDir)\buildfiles\msvc\common_default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(SolutionDir)\buildfiles\msvc\common_default_macros.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(SolutionDir)\buildfiles\msvc\rpcs3_default.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(SolutionDir)\buildfiles\msvc\rpcs3_debug.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(SolutionDir)\buildfiles\msvc\rpcs3_release.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)build\lib\$(Configuration)-$(Platform)\</OutDir>
<IntDir>$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)build\lib\$(Configuration)-$(Platform)\</OutDir>
<IntDir>$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
<SDLCheck>false</SDLCheck>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>./discord-rpc/include;./discord-rpc/thirdparty/rapidjson-1.1.0/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
</ClCompile>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
+54
View File
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header files">
<UniqueIdentifier>{719448a4-8eab-4e75-b6b7-687e2b217490}</UniqueIdentifier>
</Filter>
<Filter Include="Source files">
<UniqueIdentifier>{7c0d57b3-e2ef-45c2-aa2d-2765e5c73279}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="discord-rpc\src\backoff.h">
<Filter>Header files</Filter>
</ClInclude>
<ClInclude Include="discord-rpc\src\connection.h">
<Filter>Header files</Filter>
</ClInclude>
<ClInclude Include="discord-rpc\src\msg_queue.h">
<Filter>Header files</Filter>
</ClInclude>
<ClInclude Include="discord-rpc\src\rpc_connection.h">
<Filter>Header files</Filter>
</ClInclude>
<ClInclude Include="discord-rpc\src\serialization.h">
<Filter>Header files</Filter>
</ClInclude>
<ClInclude Include="discord-rpc\include\discord_register.h">
<Filter>Header files</Filter>
</ClInclude>
<ClInclude Include="discord-rpc\include\discord_rpc.h">
<Filter>Header files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="discord-rpc\src\connection_win.cpp">
<Filter>Source files</Filter>
</ClCompile>
<ClCompile Include="discord-rpc\src\discord_register_win.cpp">
<Filter>Source files</Filter>
</ClCompile>
<ClCompile Include="discord-rpc\src\discord_rpc.cpp">
<Filter>Source files</Filter>
</ClCompile>
<ClCompile Include="discord-rpc\src\dllmain.cpp">
<Filter>Source files</Filter>
</ClCompile>
<ClCompile Include="discord-rpc\src\rpc_connection.cpp">
<Filter>Source files</Filter>
</ClCompile>
<ClCompile Include="discord-rpc\src\serialization.cpp">
<Filter>Source files</Filter>
</ClCompile>
</ItemGroup>
</Project>
-26
View File
@@ -1,26 +0,0 @@
#pragma once
#if defined(DISCORD_DYNAMIC_LIB)
#if defined(_WIN32)
#if defined(DISCORD_BUILDING_SDK)
#define DISCORD_EXPORT __declspec(dllexport)
#else
#define DISCORD_EXPORT __declspec(dllimport)
#endif
#else
#define DISCORD_EXPORT __attribute__((visibility("default")))
#endif
#else
#define DISCORD_EXPORT
#endif
#ifdef __cplusplus
extern "C" {
#endif
DISCORD_EXPORT void Discord_Register(const char* applicationId, const char* command);
DISCORD_EXPORT void Discord_RegisterSteamGame(const char* applicationId, const char* steamId);
#ifdef __cplusplus
}
#endif
-87
View File
@@ -1,87 +0,0 @@
#pragma once
#include <stdint.h>
// clang-format off
#if defined(DISCORD_DYNAMIC_LIB)
# if defined(_WIN32)
# if defined(DISCORD_BUILDING_SDK)
# define DISCORD_EXPORT __declspec(dllexport)
# else
# define DISCORD_EXPORT __declspec(dllimport)
# endif
# else
# define DISCORD_EXPORT __attribute__((visibility("default")))
# endif
#else
# define DISCORD_EXPORT
#endif
// clang-format on
#ifdef __cplusplus
extern "C" {
#endif
typedef struct DiscordRichPresence {
const char* state; /* max 128 bytes */
const char* details; /* max 128 bytes */
int64_t startTimestamp;
int64_t endTimestamp;
const char* largeImageKey; /* max 32 bytes */
const char* largeImageText; /* max 128 bytes */
const char* smallImageKey; /* max 32 bytes */
const char* smallImageText; /* max 128 bytes */
const char* partyId; /* max 128 bytes */
int partySize;
int partyMax;
const char* matchSecret; /* max 128 bytes */
const char* joinSecret; /* max 128 bytes */
const char* spectateSecret; /* max 128 bytes */
int8_t instance;
} DiscordRichPresence;
typedef struct DiscordUser {
const char* userId;
const char* username;
const char* discriminator;
const char* avatar;
} DiscordUser;
typedef struct DiscordEventHandlers {
void (*ready)(const DiscordUser* request);
void (*disconnected)(int errorCode, const char* message);
void (*errored)(int errorCode, const char* message);
void (*joinGame)(const char* joinSecret);
void (*spectateGame)(const char* spectateSecret);
void (*joinRequest)(const DiscordUser* request);
} DiscordEventHandlers;
#define DISCORD_REPLY_NO 0
#define DISCORD_REPLY_YES 1
#define DISCORD_REPLY_IGNORE 2
DISCORD_EXPORT void Discord_Initialize(const char* applicationId,
DiscordEventHandlers* handlers,
int autoRegister,
const char* optionalSteamId);
DISCORD_EXPORT void Discord_Shutdown(void);
/* checks for incoming messages, dispatches callbacks */
DISCORD_EXPORT void Discord_RunCallbacks(void);
/* If you disable the lib starting its own io thread, you'll need to call this from your own */
#ifdef DISCORD_DISABLE_IO_THREAD
DISCORD_EXPORT void Discord_UpdateConnection(void);
#endif
DISCORD_EXPORT void Discord_UpdatePresence(const DiscordRichPresence* presence);
DISCORD_EXPORT void Discord_ClearPresence(void);
DISCORD_EXPORT void Discord_Respond(const char* userid, /* DISCORD_REPLY_ */ int reply);
DISCORD_EXPORT void Discord_UpdateHandlers(DiscordEventHandlers* handlers);
#ifdef __cplusplus
} /* extern "C" */
#endif
Binary file not shown.
Binary file not shown.
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
# 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()
+4
View File
@@ -1 +1,5 @@
# To avoid python numpy dependency in debug build, force release build of this library
set(ORIG_BUILD_TYPE ${CMAKE_BUILD_TYPE})
set(CMAKE_BUILD_TYPE Release)
add_subdirectory(fusion EXCLUDE_FROM_ALL)
set(CMAKE_BUILD_TYPE ${ORIG_BUILD_TYPE})
+2 -4
View File
@@ -39,17 +39,15 @@
<PropertyGroup Label="UserMacros">
<CmakeGenerator>"Visual Studio $(VisualStudioVersion.Substring(0,2))"</CmakeGenerator>
<CmakeReleaseCLI>call vsdevcmd.bat -arch=amd64
cmake -G $(CmakeGenerator) -A x64 -DCMAKE_BUILD_TYPE="Release" -DLLVM_USE_CRT_DEBUG=MDd -DLLVM_USE_CRT_RELEASE=MT -DENABLE_OPT=OFF -S glslang -B "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)"
cmake -G $(CmakeGenerator) -A x64 -DCMAKE_BUILD_TYPE="Release" -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DGLSLANG_TESTS=OFF -DENABLE_GLSLANG_BINARIES=OFF -DBUILD_EXTERNAL=OFF -DENABLE_SPVREMAPPER=OFF -DENABLE_HLSL=OFF -DENABLE_OPT=OFF -S glslang -B "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)"
</CmakeReleaseCLI>
<CmakeDebugCLI>call vsdevcmd.bat -arch=amd64
cmake -G $(CmakeGenerator) -A x64 -DCMAKE_BUILD_TYPE="Debug" -DLLVM_USE_CRT_DEBUG=MDd -DLLVM_USE_CRT_RELEASE=MT -DENABLE_OPT=OFF -S glslang -B "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)"
cmake -G $(CmakeGenerator) -A x64 -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebug -DGLSLANG_TESTS=OFF -DENABLE_GLSLANG_BINARIES=OFF -DBUILD_EXTERNAL=OFF -DENABLE_SPVREMAPPER=OFF -DENABLE_HLSL=OFF -DENABLE_OPT=OFF -S glslang -B "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)"
</CmakeDebugCLI>
<CmakeCopyCLI>
echo Copying..
mkdir "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)"
copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\hlsl\$(CONFIGURATION)\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)"
copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\SPIRV\$(CONFIGURATION)\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)"
copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\OGLCompilersDLL\$(CONFIGURATION)\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)"
copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\glslang\OSDependent\Windows\$(CONFIGURATION)\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)"
copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\glslang\$(CONFIGURATION)\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)"
</CmakeCopyCLI>
+2
View File
@@ -15,6 +15,8 @@ elseif(CMAKE_SYSTEM MATCHES "Linux")
target_link_libraries(3rdparty_hidapi INTERFACE hidapi-hidraw udev)
elseif(WIN32)
target_link_libraries(3rdparty_hidapi INTERFACE hidapi::hidapi hidapi::include Shlwapi.lib)
elseif(ANDROID)
target_link_libraries(3rdparty_hidapi INTERFACE hidapi::libusb)
else()
target_link_libraries(3rdparty_hidapi INTERFACE hidapi-libusb usb)
endif()
-5
View File
@@ -4,11 +4,6 @@ if (NOT USE_SYSTEM_LIBPNG)
# We use libpng's static library and don't need to build the shared library and run the tests
set(PNG_SHARED OFF CACHE BOOL "Build shared lib")
set(PNG_TESTS OFF CACHE BOOL "Build libpng tests")
if (NOT USE_SYSTEM_ZLIB)
set(PNG_BUILD_ZLIB ON CACHE BOOL "Custom zlib location, else find_package is used")
add_library(ZLIB::ZLIB INTERFACE IMPORTED)
target_link_libraries(ZLIB::ZLIB INTERFACE 3rdparty_zlib)
endif()
set(SKIP_INSTALL_ALL ON)
add_subdirectory(libpng EXCLUDE_FROM_ALL)
target_include_directories(png_static INTERFACE "${libpng_BINARY_DIR}" "${libpng_SOURCE_DIR}")
-2
View File
@@ -68,7 +68,6 @@
<FloatingPointExceptions>false</FloatingPointExceptions>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<PrecompiledHeaderFile>pngpriv.h</PrecompiledHeaderFile>
<BrowseInformation>true</BrowseInformation>
<CompileAs>CompileAsC</CompileAs>
<StringPooling>true</StringPooling>
<DisableSpecificWarnings>$(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -91,7 +90,6 @@
<FloatingPointExceptions>false</FloatingPointExceptions>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<PrecompiledHeaderFile>pngpriv.h</PrecompiledHeaderFile>
<BrowseInformation>true</BrowseInformation>
<CompileAs>CompileAsC</CompileAs>
<StringPooling>true</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
+3 -10
View File
@@ -1,11 +1,4 @@
option(SDL2_DISABLE_SDL2MAIN "" ON)
option(SDL2_DISABLE_INSTALL "" ON)
option(SDL2_DISABLE_UNINSTALL "" ON)
option(SDL_SHARED OFF)
set(SDL_SHARED_ENABLED_BY_DEFAULT OFF)
option(SDL_STATIC ON)
set(SDL_STATIC_ENABLED_BY_DEFAULT ON)
option(SDL_TEST OFF)
set(SDL_TEST_ENABLED_BY_DEFAULT OFF)
set(OPT_DEF_LIBC ON)
option(SDL_SHARED "Build a shared version of the library" OFF)
option(SDL_STATIC "Build a static version of the library" ON)
option(SDL_TEST_LIBRARY "Build the SDL3_test library" OFF)
add_subdirectory(SDL EXCLUDE_FROM_ALL)
+196 -138
View File
@@ -11,137 +11,141 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_steamdeck.c" />
<ClCompile Include="SDL\src\joystick\SDL_steam_virtual_gamepad.c" />
<ClCompile Include="SDL\src\joystick\steam\SDL_steamcontroller.c" />
<ClCompile Include="SDL\src\video\yuv2rgb\yuv_rgb_lsx.c" />
<ClCompile Include="SDL\src\video\yuv2rgb\yuv_rgb_sse.c" />
<ClCompile Include="SDL\src\video\yuv2rgb\yuv_rgb_std.c" />
<ClInclude Include="SDL\include\begin_code.h" />
<ClInclude Include="SDL\include\close_code.h" />
<ClInclude Include="SDL\include\SDL.h" />
<ClInclude Include="SDL\include\SDL_assert.h" />
<ClInclude Include="SDL\include\SDL_atomic.h" />
<ClInclude Include="SDL\include\SDL_audio.h" />
<ClInclude Include="SDL\include\SDL_bits.h" />
<ClInclude Include="SDL\include\SDL_blendmode.h" />
<ClInclude Include="SDL\include\SDL_clipboard.h" />
<ClInclude Include="SDL\include\SDL_config.h" />
<ClInclude Include="SDL\include\SDL_config_windows.h" />
<ClInclude Include="SDL\include\SDL_copying.h" />
<ClInclude Include="SDL\include\SDL_cpuinfo.h" />
<ClInclude Include="SDL\include\SDL_egl.h" />
<ClInclude Include="SDL\include\SDL_endian.h" />
<ClInclude Include="SDL\include\SDL_error.h" />
<ClInclude Include="SDL\include\SDL_events.h" />
<ClInclude Include="SDL\include\SDL_filesystem.h" />
<ClInclude Include="SDL\include\SDL_gamecontroller.h" />
<ClInclude Include="SDL\include\SDL_gesture.h" />
<ClInclude Include="SDL\include\SDL_guid.h" />
<ClInclude Include="SDL\include\SDL_haptic.h" />
<ClInclude Include="SDL\include\SDL_hints.h" />
<ClInclude Include="SDL\include\SDL_hidapi.h" />
<ClInclude Include="SDL\include\SDL_joystick.h" />
<ClInclude Include="SDL\include\SDL_keyboard.h" />
<ClInclude Include="SDL\include\SDL_keycode.h" />
<ClInclude Include="SDL\include\SDL_loadso.h" />
<ClInclude Include="SDL\include\SDL_locale.h" />
<ClInclude Include="SDL\include\SDL_log.h" />
<ClInclude Include="SDL\include\SDL_main.h" />
<ClInclude Include="SDL\include\SDL_messagebox.h" />
<ClInclude Include="SDL\include\SDL_metal.h" />
<ClInclude Include="SDL\include\SDL_misc.h" />
<ClInclude Include="SDL\include\SDL_mouse.h" />
<ClInclude Include="SDL\include\SDL_mutex.h" />
<ClInclude Include="SDL\include\SDL_name.h" />
<ClInclude Include="SDL\include\SDL_opengl.h" />
<ClInclude Include="SDL\include\SDL_opengl_glext.h" />
<ClInclude Include="SDL\include\SDL_opengles.h" />
<ClInclude Include="SDL\include\SDL_opengles2.h" />
<ClInclude Include="SDL\include\SDL_opengles2_gl2.h" />
<ClInclude Include="SDL\include\SDL_opengles2_gl2ext.h" />
<ClInclude Include="SDL\include\SDL_opengles2_gl2platform.h" />
<ClInclude Include="SDL\include\SDL_opengles2_khrplatform.h" />
<ClInclude Include="SDL\include\SDL_pixels.h" />
<ClInclude Include="SDL\include\SDL_platform.h" />
<ClInclude Include="SDL\include\SDL_power.h" />
<ClInclude Include="SDL\include\SDL_quit.h" />
<ClInclude Include="SDL\include\SDL_rect.h" />
<ClInclude Include="SDL\include\SDL_render.h" />
<ClInclude Include="SDL\include\SDL_revision.h" />
<ClInclude Include="SDL\include\SDL_rwops.h" />
<ClInclude Include="SDL\include\SDL_scancode.h" />
<ClInclude Include="SDL\include\SDL_sensor.h" />
<ClInclude Include="SDL\include\SDL_shape.h" />
<ClInclude Include="SDL\include\SDL_stdinc.h" />
<ClInclude Include="SDL\include\SDL_surface.h" />
<ClInclude Include="SDL\include\SDL_system.h" />
<ClInclude Include="SDL\include\SDL_syswm.h" />
<ClInclude Include="SDL\include\SDL_test.h" />
<ClInclude Include="SDL\include\SDL_test_assert.h" />
<ClInclude Include="SDL\include\SDL_test_common.h" />
<ClInclude Include="SDL\include\SDL_test_compare.h" />
<ClInclude Include="SDL\include\SDL_test_crc32.h" />
<ClInclude Include="SDL\include\SDL_test_font.h" />
<ClInclude Include="SDL\include\SDL_test_fuzzer.h" />
<ClInclude Include="SDL\include\SDL_test_harness.h" />
<ClInclude Include="SDL\include\SDL_test_images.h" />
<ClInclude Include="SDL\include\SDL_test_log.h" />
<ClInclude Include="SDL\include\SDL_test_md5.h" />
<ClInclude Include="SDL\include\SDL_test_memory.h" />
<ClInclude Include="SDL\include\SDL_test_random.h" />
<ClInclude Include="SDL\include\SDL_thread.h" />
<ClInclude Include="SDL\include\SDL_timer.h" />
<ClInclude Include="SDL\include\SDL_touch.h" />
<ClInclude Include="SDL\include\SDL_types.h" />
<ClInclude Include="SDL\include\SDL_version.h" />
<ClInclude Include="SDL\include\SDL_video.h" />
<ClInclude Include="SDL\include\SDL_vulkan.h" />
<ClInclude Include="SDL\include\SDL3\SDL_begin_code.h" />
<ClInclude Include="SDL\include\SDL3\SDL_camera.h" />
<ClInclude Include="SDL\include\SDL3\SDL_close_code.h" />
<ClInclude Include="SDL\include\SDL3\SDL.h" />
<ClInclude Include="SDL\include\SDL3\SDL_assert.h" />
<ClInclude Include="SDL\include\SDL3\SDL_atomic.h" />
<ClInclude Include="SDL\include\SDL3\SDL_audio.h" />
<ClInclude Include="SDL\include\SDL3\SDL_bits.h" />
<ClInclude Include="SDL\include\SDL3\SDL_blendmode.h" />
<ClInclude Include="SDL\include\SDL3\SDL_clipboard.h" />
<ClInclude Include="SDL\include\SDL3\SDL_copying.h" />
<ClInclude Include="SDL\include\SDL3\SDL_cpuinfo.h" />
<ClInclude Include="SDL\include\SDL3\SDL_egl.h" />
<ClInclude Include="SDL\include\SDL3\SDL_endian.h" />
<ClInclude Include="SDL\include\SDL3\SDL_error.h" />
<ClInclude Include="SDL\include\SDL3\SDL_events.h" />
<ClInclude Include="SDL\include\SDL3\SDL_filesystem.h" />
<ClInclude Include="SDL\include\SDL3\SDL_gamepad.h" />
<ClInclude Include="SDL\include\SDL3\SDL_gpu.h" />
<ClInclude Include="SDL\include\SDL3\SDL_guid.h" />
<ClInclude Include="SDL\include\SDL3\SDL_haptic.h" />
<ClInclude Include="SDL\include\SDL3\SDL_hints.h" />
<ClInclude Include="SDL\include\SDL3\SDL_hidapi.h" />
<ClInclude Include="SDL\include\SDL3\SDL_asyncio.h" />
<ClInclude Include="SDL\include\SDL3\SDL_joystick.h" />
<ClInclude Include="SDL\include\SDL3\SDL_keyboard.h" />
<ClInclude Include="SDL\include\SDL3\SDL_keycode.h" />
<ClInclude Include="SDL\include\SDL3\SDL_loadso.h" />
<ClInclude Include="SDL\include\SDL3\SDL_locale.h" />
<ClInclude Include="SDL\include\SDL3\SDL_log.h" />
<ClInclude Include="SDL\include\SDL3\SDL_main.h" />
<ClInclude Include="SDL\include\SDL3\SDL_messagebox.h" />
<ClInclude Include="SDL\include\SDL3\SDL_metal.h" />
<ClInclude Include="SDL\include\SDL3\SDL_misc.h" />
<ClInclude Include="SDL\include\SDL3\SDL_mouse.h" />
<ClInclude Include="SDL\include\SDL3\SDL_mutex.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengl.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengl_glext.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2_gl2.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2_gl2ext.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2_gl2platform.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2_khrplatform.h" />
<ClInclude Include="SDL\include\SDL3\SDL_pen.h" />
<ClInclude Include="SDL\include\SDL3\SDL_pixels.h" />
<ClInclude Include="SDL\include\SDL3\SDL_platform.h" />
<ClInclude Include="SDL\include\SDL3\SDL_platform_defines.h" />
<ClInclude Include="SDL\include\SDL3\SDL_power.h" />
<ClInclude Include="SDL\include\SDL3\SDL_process.h" />
<ClInclude Include="SDL\include\SDL3\SDL_properties.h" />
<ClInclude Include="SDL\include\SDL3\SDL_rect.h" />
<ClInclude Include="SDL\include\SDL3\SDL_render.h" />
<ClInclude Include="SDL\include\SDL3\SDL_revision.h" />
<ClInclude Include="SDL\include\SDL3\SDL_iostream.h" />
<ClInclude Include="SDL\include\SDL3\SDL_scancode.h" />
<ClInclude Include="SDL\include\SDL3\SDL_sensor.h" />
<ClInclude Include="SDL\include\SDL3\SDL_stdinc.h" />
<ClInclude Include="SDL\include\SDL3\SDL_storage.h" />
<ClInclude Include="SDL\include\SDL3\SDL_surface.h" />
<ClInclude Include="SDL\include\SDL3\SDL_system.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_assert.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_common.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_compare.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_crc32.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_font.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_fuzzer.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_harness.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_log.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_md5.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_memory.h" />
<ClInclude Include="SDL\include\SDL3\SDL_thread.h" />
<ClInclude Include="SDL\include\SDL3\SDL_time.h" />
<ClInclude Include="SDL\include\SDL3\SDL_timer.h" />
<ClInclude Include="SDL\include\SDL3\SDL_touch.h" />
<ClInclude Include="SDL\include\SDL3\SDL_version.h" />
<ClInclude Include="SDL\include\SDL3\SDL_video.h" />
<ClInclude Include="SDL\include\SDL3\SDL_vulkan.h" />
<ClInclude Include="SDL\src\audio\directsound\SDL_directsound.h" />
<ClInclude Include="SDL\src\audio\disk\SDL_diskaudio.h" />
<ClInclude Include="SDL\src\audio\dummy\SDL_dummyaudio.h" />
<ClInclude Include="SDL\src\audio\SDL_audio_c.h" />
<ClInclude Include="SDL\src\audio\SDL_audiodev_c.h" />
<ClInclude Include="SDL\src\audio\SDL_sysaudio.h" />
<ClInclude Include="SDL\src\audio\SDL_audioqueue.h" />
<ClInclude Include="SDL\src\audio\SDL_audioresample.h" />
<ClInclude Include="SDL\src\audio\SDL_wave.h" />
<ClInclude Include="SDL\src\audio\wasapi\SDL_wasapi.h" />
<ClInclude Include="SDL\src\audio\winmm\SDL_winmm.h" />
<ClInclude Include="SDL\src\camera\SDL_camera_c.h" />
<ClInclude Include="SDL\src\camera\SDL_syscamera.h" />
<ClInclude Include="SDL\src\core\windows\SDL_directx.h" />
<ClInclude Include="SDL\src\core\windows\SDL_gameinput.h" />
<ClInclude Include="SDL\src\core\windows\SDL_hid.h" />
<ClInclude Include="SDL\src\core\windows\SDL_immdevice.h" />
<ClInclude Include="SDL\src\core\windows\SDL_windows.h" />
<ClInclude Include="SDL\src\core\windows\SDL_xinput.h" />
<ClInclude Include="SDL\src\cpuinfo\SDL_cpuinfo_c.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi_overrides.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi_procs.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi_unsupported.h" />
<ClInclude Include="SDL\src\events\blank_cursor.h" />
<ClInclude Include="SDL\src\events\default_cursor.h" />
<ClInclude Include="SDL\src\events\scancodes_windows.h" />
<ClInclude Include="SDL\src\events\SDL_categories_c.h" />
<ClInclude Include="SDL\src\events\SDL_clipboardevents_c.h" />
<ClInclude Include="SDL\src\events\SDL_displayevents_c.h" />
<ClInclude Include="SDL\src\events\SDL_dropevents_c.h" />
<ClInclude Include="SDL\src\events\SDL_events_c.h" />
<ClInclude Include="SDL\src\events\SDL_gesture_c.h" />
<ClInclude Include="SDL\src\events\SDL_eventwatch_c.h" />
<ClInclude Include="SDL\src\events\SDL_keyboard_c.h" />
<ClInclude Include="SDL\src\events\SDL_keymap_c.h" />
<ClInclude Include="SDL\src\events\SDL_mouse_c.h" />
<ClInclude Include="SDL\src\events\SDL_touch_c.h" />
<ClInclude Include="SDL\src\events\SDL_windowevents_c.h" />
<ClInclude Include="SDL\src\filesystem\SDL_sysfilesystem.h" />
<ClInclude Include="SDL\src\gpu\SDL_sysgpu.h" />
<ClInclude Include="SDL\src\gpu\vulkan\SDL_gpu_vulkan_vkfuncs.h" />
<ClInclude Include="SDL\src\io\SDL_asyncio_c.h" />
<ClInclude Include="SDL\src\io\SDL_sysasyncio.h" />
<ClInclude Include="SDL\src\haptic\SDL_haptic_c.h" />
<ClInclude Include="SDL\src\haptic\SDL_syshaptic.h" />
<ClInclude Include="SDL\src\haptic\windows\SDL_dinputhaptic_c.h" />
<ClInclude Include="SDL\src\haptic\windows\SDL_windowshaptic_c.h" />
<ClInclude Include="SDL\src\haptic\windows\SDL_xinputhaptic_c.h" />
<ClInclude Include="SDL\src\hidapi\hidapi\hidapi.h" />
<ClInclude Include="SDL\src\hidapi\SDL_hidapi_c.h" />
<ClInclude Include="SDL\src\joystick\controller_type.h" />
<ClInclude Include="SDL\src\joystick\hidapi\SDL_hidapijoystick_c.h" />
<ClInclude Include="SDL\src\joystick\hidapi\SDL_hidapi_nintendo.h" />
<ClInclude Include="SDL\src\joystick\hidapi\SDL_hidapi_rumble.h" />
<ClInclude Include="SDL\src\joystick\SDL_gamecontrollerdb.h" />
<ClInclude Include="SDL\src\joystick\SDL_gamepad_c.h" />
<ClInclude Include="SDL\src\joystick\SDL_gamepad_db.h" />
<ClInclude Include="SDL\src\joystick\SDL_joystick_c.h" />
<ClInclude Include="SDL\src\joystick\SDL_steam_virtual_gamepad.h" />
<ClInclude Include="SDL\src\joystick\SDL_sysjoystick.h" />
<ClInclude Include="SDL\src\joystick\steam\SDL_steamcontroller.h" />
<ClInclude Include="SDL\src\joystick\usb_ids.h" />
<ClInclude Include="SDL\src\joystick\virtual\SDL_virtualjoystick_c.h" />
<ClInclude Include="SDL\src\joystick\windows\SDL_dinputjoystick_c.h" />
@@ -151,6 +155,7 @@
<ClInclude Include="SDL\src\libm\math_libm.h" />
<ClInclude Include="SDL\src\libm\math_private.h" />
<ClInclude Include="SDL\src\locale\SDL_syslocale.h" />
<ClInclude Include="SDL\src\main\SDL_main_callbacks.h" />
<ClInclude Include="SDL\src\misc\SDL_sysurl.h" />
<ClInclude Include="SDL\src\power\SDL_syspower.h" />
<ClInclude Include="SDL\src\render\direct3d11\SDL_shaders_d3d11.h" />
@@ -172,17 +177,36 @@
<ClInclude Include="SDL\src\render\software\SDL_render_sw_c.h" />
<ClInclude Include="SDL\src\render\software\SDL_rotate.h" />
<ClInclude Include="SDL\src\render\software\SDL_triangle.h" />
<ClInclude Include="SDL\src\render\vulkan\SDL_shaders_vulkan.h" />
<ClInclude Include="SDL\src\SDL_assert_c.h" />
<ClInclude Include="SDL\src\SDL_dataqueue.h" />
<ClInclude Include="SDL\src\SDL_error_c.h" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_ps3.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_steam.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_wii.c" />
<ClCompile Include="SDL\src\core\windows\pch.c" />
<ClCompile Include="SDL\src\camera\dummy\SDL_camera_dummy.c" />
<ClCompile Include="SDL\src\camera\mediafoundation\SDL_camera_mediafoundation.c" />
<ClCompile Include="SDL\src\camera\SDL_camera.c" />
<ClCompile Include="SDL\src\dialog\SDL_dialog.c" />
<ClCompile Include="SDL\src\dialog\SDL_dialog_utils.c" />
<ClCompile Include="SDL\src\filesystem\SDL_filesystem.c" />
<ClCompile Include="SDL\src\filesystem\windows\SDL_sysfsops.c" />
<ClCompile Include="SDL\src\io\windows\SDL_asyncio_windows_ioring.c" />
<ClCompile Include="SDL\src\gpu\SDL_gpu.c" />
<ClCompile Include="SDL\src\gpu\d3d12\SDL_gpu_d3d12.c" />
<ClCompile Include="SDL\src\gpu\vulkan\SDL_gpu_vulkan.c" />
<ClCompile Include="SDL\src\io\generic\SDL_asyncio_generic.c" />
<ClCompile Include="SDL\src\io\SDL_asyncio.c" />
<ClCompile Include="SDL\src\main\generic\SDL_sysmain_callbacks.c" />
<ClCompile Include="SDL\src\main\SDL_main_callbacks.c" />
<ClCompile Include="SDL\src\main\SDL_runapp.c" />
<ClCompile Include="SDL\src\main\windows\SDL_sysmain_runapp.c" />
<ClCompile Include="SDL\src\render\vulkan\SDL_render_vulkan.c" />
<ClCompile Include="SDL\src\render\vulkan\SDL_shaders_vulkan.c" />
<ClCompile Include="SDL\src\SDL_guid.c" />
<ClInclude Include="SDL\src\SDL_hashtable.h" />
<ClInclude Include="SDL\src\SDL_hints_c.h" />
<ClInclude Include="SDL\src\SDL_internal.h" />
<ClInclude Include="SDL\src\SDL_list.h" />
<ClInclude Include="SDL\src\SDL_log_c.h" />
<ClInclude Include="SDL\src\SDL_properties_c.h" />
<ClInclude Include="SDL\src\sensor\dummy\SDL_dummysensor.h" />
<ClInclude Include="SDL\src\sensor\SDL_sensor_c.h" />
<ClInclude Include="SDL\src\sensor\SDL_syssensor.h" />
@@ -191,24 +215,17 @@
<ClInclude Include="SDL\src\thread\SDL_thread_c.h" />
<ClInclude Include="SDL\src\thread\generic\SDL_syscond_c.h" />
<ClInclude Include="SDL\src\thread\windows\SDL_sysmutex_c.h" />
<ClInclude Include="SDL\src\thread\generic\SDL_sysrwlock_c.h" />
<ClInclude Include="SDL\src\thread\windows\SDL_systhread_c.h" />
<ClInclude Include="SDL\src\timer\SDL_timer_c.h" />
<ClInclude Include="SDL\src\video\dummy\SDL_nullevents_c.h" />
<ClInclude Include="SDL\src\video\dummy\SDL_nullframebuffer_c.h" />
<ClInclude Include="SDL\src\video\dummy\SDL_nullvideo.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codecs_common.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h264std.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h264std_decode.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h264std_encode.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h265std.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h265std_decode.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h265std_encode.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vk_icd.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vk_layer.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vk_platform.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vk_sdk_platform.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan.hpp" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_android.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_beta.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_core.h" />
@@ -224,29 +241,39 @@
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_xcb.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_xlib.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_xlib_xrandr.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenevents_c.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenframebuffer_c.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenopengles.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenvideo.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenvulkan.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenwindow.h" />
<ClInclude Include="SDL\src\video\SDL_blit.h" />
<ClInclude Include="SDL\src\video\SDL_blit_auto.h" />
<ClInclude Include="SDL\src\video\SDL_blit_copy.h" />
<ClInclude Include="SDL\src\video\SDL_blit_slow.h" />
<ClInclude Include="SDL\src\video\SDL_clipboard_c.h" />
<ClInclude Include="SDL\src\video\SDL_egl_c.h" />
<ClInclude Include="SDL\src\video\SDL_pixels_c.h" />
<ClInclude Include="SDL\src\video\SDL_rect_c.h" />
<ClInclude Include="SDL\src\video\SDL_RLEaccel_c.h" />
<ClInclude Include="SDL\src\video\SDL_shape_internals.h" />
<ClInclude Include="SDL\src\video\SDL_stb_c.h" />
<ClInclude Include="SDL\src\video\SDL_surface_c.h" />
<ClInclude Include="SDL\src\video\SDL_sysvideo.h" />
<ClInclude Include="SDL\src\video\SDL_vulkan_internal.h" />
<ClInclude Include="SDL\src\video\SDL_yuv_c.h" />
<ClInclude Include="SDL\src\video\windows\SDL_msctf.h" />
<ClInclude Include="SDL\src\video\windows\SDL_vkeys.h" />
<ClInclude Include="SDL\src\video\windows\SDL_surface_utils.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsclipboard.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsevents.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsframebuffer.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowskeyboard.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsgameinput.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsmessagebox.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsmodes.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsmouse.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsopengl.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsopengles.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsrawinput.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsshape.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsvideo.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsvulkan.h" />
@@ -261,8 +288,6 @@
<ClInclude Include="SDL\src\video\yuv2rgb\yuv_rgb_sse_func.h" />
<ClInclude Include="SDL\src\video\yuv2rgb\yuv_rgb_std.h" />
<ClInclude Include="SDL\src\video\yuv2rgb\yuv_rgb_std_func.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="SDL\src\atomic\SDL_atomic.c" />
<ClCompile Include="SDL\src\atomic\SDL_spinlock.c" />
<ClCompile Include="SDL\src\audio\directsound\SDL_directsound.c" />
@@ -272,78 +297,71 @@
<ClCompile Include="SDL\src\audio\SDL_audiocvt.c" />
<ClCompile Include="SDL\src\audio\SDL_audiodev.c" />
<ClCompile Include="SDL\src\audio\SDL_audiotypecvt.c" />
<ClCompile Include="SDL\src\audio\SDL_audioqueue.c" />
<ClCompile Include="SDL\src\audio\SDL_audioresample.c" />
<ClCompile Include="SDL\src\audio\SDL_mixer.c" />
<ClCompile Include="SDL\src\audio\SDL_wave.c" />
<ClCompile Include="SDL\src\audio\winmm\SDL_winmm.c" />
<ClCompile Include="SDL\src\audio\wasapi\SDL_wasapi.c" />
<ClCompile Include="SDL\src\audio\wasapi\SDL_wasapi_win32.c" />
<ClCompile Include="SDL\src\core\SDL_core_unsupported.c" />
<ClCompile Include="SDL\src\core\windows\SDL_gameinput.c" />
<ClCompile Include="SDL\src\core\windows\SDL_hid.c" />
<ClCompile Include="SDL\src\core\windows\SDL_immdevice.c" />
<ClCompile Include="SDL\src\core\windows\SDL_windows.c" />
<ClCompile Include="SDL\src\core\windows\SDL_xinput.c" />
<ClCompile Include="SDL\src\cpuinfo\SDL_cpuinfo.c" />
<ClCompile Include="SDL\src\dialog\windows\SDL_windowsdialog.c" />
<ClCompile Include="SDL\src\dynapi\SDL_dynapi.c" />
<ClCompile Include="SDL\src\events\SDL_categories.c" />
<ClCompile Include="SDL\src\events\SDL_clipboardevents.c" />
<ClCompile Include="SDL\src\events\SDL_displayevents.c" />
<ClCompile Include="SDL\src\events\SDL_dropevents.c" />
<ClCompile Include="SDL\src\events\SDL_events.c" />
<ClCompile Include="SDL\src\events\SDL_gesture.c" />
<ClCompile Include="SDL\src\events\SDL_eventwatch.c" />
<ClCompile Include="SDL\src\events\SDL_keyboard.c" />
<ClCompile Include="SDL\src\events\SDL_keymap.c" />
<ClCompile Include="SDL\src\events\SDL_mouse.c" />
<ClCompile Include="SDL\src\events\SDL_pen.c" />
<ClCompile Include="SDL\src\events\SDL_quit.c" />
<ClCompile Include="SDL\src\events\SDL_touch.c" />
<ClCompile Include="SDL\src\events\SDL_windowevents.c" />
<ClCompile Include="SDL\src\file\SDL_rwops.c" />
<ClCompile Include="SDL\src\io\SDL_iostream.c" />
<ClCompile Include="SDL\src\filesystem\windows\SDL_sysfilesystem.c" />
<ClCompile Include="SDL\src\haptic\dummy\SDL_syshaptic.c" />
<ClCompile Include="SDL\src\haptic\SDL_haptic.c" />
<ClCompile Include="SDL\src\haptic\windows\SDL_dinputhaptic.c" />
<ClCompile Include="SDL\src\haptic\windows\SDL_windowshaptic.c" />
<ClCompile Include="SDL\src\haptic\windows\SDL_xinputhaptic.c" />
<ClCompile Include="SDL\src\hidapi\SDL_hidapi.c" />
<ClCompile Include="SDL\src\joystick\controller_type.c" />
<ClCompile Include="SDL\src\joystick\dummy\SDL_sysjoystick.c" />
<ClCompile Include="SDL\src\joystick\gdk\SDL_gameinputjoystick.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapijoystick.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_combined.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_gamecube.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_luna.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_ps3.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_ps4.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_ps5.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_rumble.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_shield.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_stadia.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_steam.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_steam_hori.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_steamdeck.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_switch.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_wii.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_xbox360.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_xbox360w.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_xboxone.c" />
<ClCompile Include="SDL\src\joystick\SDL_gamecontroller.c" />
<ClCompile Include="SDL\src\joystick\SDL_gamepad.c" />
<ClCompile Include="SDL\src\joystick\SDL_joystick.c" />
<ClCompile Include="SDL\src\joystick\SDL_steam_virtual_gamepad.c" />
<ClCompile Include="SDL\src\joystick\virtual\SDL_virtualjoystick.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_dinputjoystick.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_rawinputjoystick.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_windowsjoystick.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_windows_gaming_input.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_xinputjoystick.c" />
<ClCompile Include="SDL\src\libm\e_atan2.c" />
<ClCompile Include="SDL\src\libm\e_exp.c" />
<ClCompile Include="SDL\src\libm\e_fmod.c" />
<ClCompile Include="SDL\src\libm\e_log.c" />
<ClCompile Include="SDL\src\libm\e_log10.c" />
<ClCompile Include="SDL\src\libm\e_pow.c" />
<ClCompile Include="SDL\src\libm\e_rem_pio2.c" />
<ClCompile Include="SDL\src\libm\e_sqrt.c" />
<ClCompile Include="SDL\src\libm\k_cos.c" />
<ClCompile Include="SDL\src\libm\k_rem_pio2.c" />
<ClCompile Include="SDL\src\libm\k_sin.c" />
<ClCompile Include="SDL\src\libm\k_tan.c" />
<ClCompile Include="SDL\src\libm\s_atan.c" />
<ClCompile Include="SDL\src\libm\s_copysign.c" />
<ClCompile Include="SDL\src\libm\s_cos.c" />
<ClCompile Include="SDL\src\libm\s_fabs.c" />
<ClCompile Include="SDL\src\libm\s_floor.c" />
<ClCompile Include="SDL\src\libm\s_scalbn.c" />
<ClCompile Include="SDL\src\libm\s_sin.c" />
<ClCompile Include="SDL\src\libm\s_tan.c" />
<ClCompile Include="SDL\src\libm\s_modf.c" />
<ClCompile Include="SDL\src\loadso\windows\SDL_sysloadso.c" />
<ClCompile Include="SDL\src\locale\SDL_locale.c" />
<ClCompile Include="SDL\src\locale\windows\SDL_syslocale.c" />
@@ -351,18 +369,24 @@
<ClCompile Include="SDL\src\misc\windows\SDL_sysurl.c" />
<ClCompile Include="SDL\src\power\SDL_power.c" />
<ClCompile Include="SDL\src\power\windows\SDL_syspower.c" />
<ClCompile Include="SDL\src\process\SDL_process.c" />
<ClCompile Include="SDL\src\process\windows\SDL_windowsprocess.c" />
<ClCompile Include="SDL\src\render\direct3d11\SDL_shaders_d3d11.c" />
<ClCompile Include="SDL\src\render\direct3d12\SDL_render_d3d12.c" />
<ClCompile Include="SDL\src\render\direct3d12\SDL_shaders_d3d12.c" />
<ClCompile Include="SDL\src\render\direct3d\SDL_render_d3d.c" />
<ClCompile Include="SDL\src\render\direct3d11\SDL_render_d3d11.c" />
<ClCompile Include="SDL\src\render\direct3d\SDL_shaders_d3d.c" />
<ClCompile Include="SDL\src\render\gpu\SDL_pipeline_gpu.c" />
<ClCompile Include="SDL\src\render\gpu\SDL_render_gpu.c" />
<ClCompile Include="SDL\src\render\gpu\SDL_shaders_gpu.c" />
<ClCompile Include="SDL\src\render\opengl\SDL_render_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_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_unsupported.c" />
<ClCompile Include="SDL\src\render\SDL_yuv_sw.c" />
<ClCompile Include="SDL\src\render\software\SDL_blendfillrect.c" />
<ClCompile Include="SDL\src\render\software\SDL_blendline.c" />
@@ -374,11 +398,12 @@
<ClCompile Include="SDL\src\render\software\SDL_triangle.c" />
<ClCompile Include="SDL\src\SDL.c" />
<ClCompile Include="SDL\src\SDL_assert.c" />
<ClCompile Include="SDL\src\SDL_dataqueue.c" />
<ClCompile Include="SDL\src\SDL_list.c" />
<ClCompile Include="SDL\src\SDL_error.c" />
<ClCompile Include="SDL\src\SDL_hashtable.c" />
<ClCompile Include="SDL\src\SDL_hints.c" />
<ClCompile Include="SDL\src\SDL_list.c" />
<ClCompile Include="SDL\src\SDL_log.c" />
<ClCompile Include="SDL\src\SDL_properties.c" />
<ClCompile Include="SDL\src\SDL_utils.c" />
<ClCompile Include="SDL\src\sensor\dummy\SDL_dummysensor.c" />
<ClCompile Include="SDL\src\sensor\SDL_sensor.c" />
@@ -388,23 +413,43 @@
<ClCompile Include="SDL\src\stdlib\SDL_getenv.c" />
<ClCompile Include="SDL\src\stdlib\SDL_iconv.c" />
<ClCompile Include="SDL\src\stdlib\SDL_malloc.c" />
<ClCompile Include="SDL\src\stdlib\SDL_memcpy.c" />
<ClCompile Include="SDL\src\stdlib\SDL_memmove.c" />
<ClCompile Include="SDL\src\stdlib\SDL_memset.c" />
<ClCompile Include="SDL\src\stdlib\SDL_mslibc.c" />
<ClCompile Include="SDL\src\stdlib\SDL_murmur3.c" />
<ClCompile Include="SDL\src\stdlib\SDL_qsort.c" />
<ClCompile Include="SDL\src\stdlib\SDL_random.c" />
<ClCompile Include="SDL\src\stdlib\SDL_stdlib.c" />
<ClCompile Include="SDL\src\stdlib\SDL_string.c" />
<ClCompile Include="SDL\src\stdlib\SDL_strtokr.c" />
<ClCompile Include="SDL\src\storage\generic\SDL_genericstorage.c" />
<ClCompile Include="SDL\src\storage\steam\SDL_steamstorage.c" />
<ClCompile Include="SDL\src\storage\SDL_storage.c" />
<ClCompile Include="SDL\src\thread\generic\SDL_syscond.c" />
<ClCompile Include="SDL\src\thread\generic\SDL_sysrwlock.c" />
<ClCompile Include="SDL\src\thread\SDL_thread.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_syscond_cv.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_sysmutex.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_sysrwlock_srw.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_syssem.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_systhread.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_systls.c" />
<ClCompile Include="SDL\src\timer\SDL_timer.c" />
<ClCompile Include="SDL\src\timer\windows\SDL_systimer.c" />
<ClCompile Include="SDL\src\time\SDL_time.c" />
<ClCompile Include="SDL\src\time\windows\SDL_systime.c" />
<ClCompile Include="SDL\src\tray\windows\SDL_tray.c" />
<ClCompile Include="SDL\src\tray\SDL_tray_utils.c" />
<ClCompile Include="SDL\src\video\dummy\SDL_nullevents.c" />
<ClCompile Include="SDL\src\video\dummy\SDL_nullframebuffer.c" />
<ClCompile Include="SDL\src\video\dummy\SDL_nullvideo.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenevents.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenframebuffer.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenopengles.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenvideo.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenvulkan.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenwindow.c" />
<ClCompile Include="SDL\src\video\SDL_blit.c" />
<ClCompile Include="SDL\src\video\SDL_blit_0.c" />
<ClCompile Include="SDL\src\video\SDL_blit_1.c" />
@@ -420,25 +465,35 @@
<ClCompile Include="SDL\src\video\SDL_pixels.c" />
<ClCompile Include="SDL\src\video\SDL_rect.c" />
<ClCompile Include="SDL\src\video\SDL_RLEaccel.c" />
<ClCompile Include="SDL\src\video\SDL_shape.c" />
<ClCompile Include="SDL\src\video\SDL_stb.c" />
<ClCompile Include="SDL\src\video\SDL_stretch.c" />
<ClCompile Include="SDL\src\video\SDL_surface.c" />
<ClCompile Include="SDL\src\video\SDL_video.c" />
<ClCompile Include="SDL\src\video\SDL_video_unsupported.c" />
<ClCompile Include="SDL\src\video\SDL_vulkan_utils.c" />
<ClCompile Include="SDL\src\video\SDL_yuv.c" />
<ClCompile Include="SDL\src\video\windows\SDL_surface_utils.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsclipboard.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsevents.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsframebuffer.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowskeyboard.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsgameinput.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsmessagebox.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsmodes.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsmouse.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsopengl.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsopengles.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsrawinput.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsshape.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsvideo.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsvulkan.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowswindow.c" />
<ClCompile Include="SDL\src\video\yuv2rgb\yuv_rgb_lsx.c" />
<ClCompile Include="SDL\src\video\yuv2rgb\yuv_rgb_sse.c" />
<ClCompile Include="SDL\src\video\yuv2rgb\yuv_rgb_std.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SDL\src\core\windows\version.rc" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}</ProjectGuid>
@@ -467,11 +522,14 @@
<Import Project="$(SolutionDir)\buildfiles\msvc\rpcs3_release.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>SDL\src;$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
<SDLCheck>false</SDLCheck>
<AdditionalIncludeDirectories>SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>SDL\include;SDL\include\build_config;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ProgramDatabase</DebugInformationFormat>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
</ClCompile>
+1575 -416
View File
File diff suppressed because it is too large Load Diff
-2
View File
@@ -1,5 +1,3 @@
cmake_minimum_required(VERSION 3.0)
project(libusb)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules")
+4 -2
View File
@@ -77,7 +77,7 @@ int main()
elseif (UNIX)
# Unix is for all *NIX systems including OSX
add_compile_definitions(PLATFORM_POSIX=1 HAVE_CLOCK_GETTIME)
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" OR ANDROID)
set(OS_LINUX 1)
set(PLATFORM_SRC
@@ -87,7 +87,9 @@ elseif (UNIX)
events_posix.c
)
list(APPEND LIBUSB_LIBRARIES rt)
if(NOT ANDROID)
list(APPEND LIBUSB_LIBRARIES rt)
endif()
endif()
endif()
+33 -20
View File
@@ -5,16 +5,26 @@ if(WITH_LLVM)
if(BUILD_LLVM)
message(STATUS "LLVM will be built from the submodule.")
set(LLVM_TARGETS_TO_BUILD "AArch64;X86" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
option(LLVM_BUILD_RUNTIME OFF)
option(LLVM_BUILD_TOOLS OFF)
option(LLVM_INCLUDE_BENCHMARKS OFF)
option(LLVM_INCLUDE_DOCS OFF)
option(LLVM_INCLUDE_EXAMPLES OFF)
option(LLVM_INCLUDE_TESTS OFF)
option(LLVM_INCLUDE_TOOLS OFF)
option(LLVM_INCLUDE_UTILS OFF)
option(LLVM_CCACHE_BUILD OFF)
if (ANDROID)
if (COMPILER_ARM)
set(LLVM_TARGETS_TO_BUILD "AArch64" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
set(LLVM_TARGET_ARCH "${CMAKE_SYSTEM_PROCESSOR}-none-linux-android${ANDROID_NATIVE_API_LEVEL}" CACHE STRING "")
else()
set(LLVM_TARGETS_TO_BUILD "X86" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
endif()
else()
set(LLVM_TARGETS_TO_BUILD "AArch64;X86" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
endif()
option(LLVM_BUILD_RUNTIME "Build the LLVM runtime libraries." OFF)
option(LLVM_BUILD_TOOLS "Build the LLVM tools. If OFF, just generate build targets." OFF)
option(LLVM_INCLUDE_BENCHMARKS "Generate benchmark targets. If OFF, benchmarks can't be built." OFF)
option(LLVM_INCLUDE_DOCS "Generate build targets for llvm documentation." OFF)
option(LLVM_INCLUDE_EXAMPLES "Generate build targets for the LLVM examples" OFF)
option(LLVM_INCLUDE_TESTS "Generate build targets for the LLVM unit tests." OFF)
option(LLVM_INCLUDE_TOOLS "Generate build targets for the LLVM tools." OFF)
option(LLVM_INCLUDE_UTILS "Generate build targets for the LLVM utils." OFF)
option(LLVM_CCACHE_BUILD "Set to ON for a ccache enabled build" OFF)
set(LLVM_ENABLE_WARNINGS OFF CACHE BOOL "Enable compiler warnings.")
# For Windows x86 (not Windows AArch64).
@@ -41,34 +51,37 @@ if(WITH_LLVM)
set(STATIC_LINK_LLVM ON CACHE BOOL "Link against LLVM statically. This will get set to ON if you build LLVM from the submodule." FORCE)
find_package(LLVM 16.0 CONFIG)
find_package(LLVM 19.1 CONFIG)
if(NOT LLVM_FOUND)
message(FATAL_ERROR "Couldn't build LLVM from the submodule. You might need to run `git submodule update --init`")
endif()
else()
message(STATUS "Using prebuilt or system LLVM")
if (LLVM_DIR AND NOT IS_ABSOLUTE "${LLVM_DIR}")
# change relative LLVM_DIR to be relative to the source dir
set(LLVM_DIR ${CMAKE_SOURCE_DIR}/${LLVM_DIR})
if (LLVM_DIR)
message(STATUS "LLVM_DIR: ${LLVM_DIR}")
if (NOT IS_ABSOLUTE "${LLVM_DIR}")
# change relative LLVM_DIR to be relative to the source dir
set(LLVM_DIR ${CMAKE_SOURCE_DIR}/${LLVM_DIR})
message(STATUS "Changed LLVM_DIR to relative path: ${LLVM_DIR}")
endif()
endif()
find_package(LLVM CONFIG)
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()
if (LLVM_VERSION VERSION_LESS 16)
message(FATAL_ERROR "Found LLVM version ${LLVM_VERSION}. Required version 16 or above. \
Enable BUILD_LLVM option to build LLVM from included as a git submodule.")
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.")
endif()
endif()
if (STATIC_LINK_LLVM)
if (NOT DEFINED LLVM_TARGETS_TO_BUILD)
if(COMPILER_ARM)
set(LLVM_TARGETS_TO_BUILD "AArch64;X86" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
set(LLVM_TARGETS_TO_BUILD "AArch64" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
else()
set(LLVM_TARGETS_TO_BUILD "X86" CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
endif()
+2 -2
View File
@@ -40,11 +40,11 @@
<PropertyGroup Label="UserMacros">
<CmakeReleaseCLI>call vsdevcmd.bat -arch=amd64
cd "$(SolutionDir)build\tmp\llvm_build-$(Configuration)-$(Platform)"
cmake -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="$(SolutionDir)build\lib\$(Configuration)-$(Platform)\llvm_build" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=$(WindowsTargetPlatformVersion) -DLLVM_USE_CRT_DEBUG=MDd -DLLVM_USE_CRT_RELEASE=MT -DLLVM_USE_INTEL_JITEVENTS=ON "$(SolutionDir)3rdparty\llvm\llvm\llvm"
cmake -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="$(SolutionDir)build\lib\$(Configuration)-$(Platform)\llvm_build" -DCMAKE_SYSTEM_VERSION=10.0 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=$(WindowsTargetPlatformVersion) -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_BUILD_BENCHMARKS=OFF -DLLVM_BUILD_DOCS=OFF -DLLVM_BUILD_EXAMPLES=OFF -DLLVM_BUILD_TESTS=OFF\ -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DLLVM_INSTALL_UTILS=OFF -DLLVM_ENABLE_DIA_SDK=OFF -DLLVM_ENABLE_PDB=OFF -DLLVM_USE_INTEL_JITEVENTS=ON "$(SolutionDir)3rdparty\llvm\llvm\llvm"
</CmakeReleaseCLI>
<CmakeDebugCLI>call vsdevcmd.bat -arch=amd64
cd "$(SolutionDir)build\tmp\llvm_build-$(Configuration)-$(Platform)"
cmake -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="$(SolutionDir)build\lib\$(Configuration)-$(Platform)\llvm_build" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=$(WindowsTargetPlatformVersion) -DLLVM_USE_CRT_DEBUG=MDd -DLLVM_USE_CRT_RELEASE=MT -DLLVM_USE_INTEL_JITEVENTS=ON "$(SolutionDir)3rdparty\llvm\llvm\llvm"
cmake -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="$(SolutionDir)build\lib\$(Configuration)-$(Platform)\llvm_build" -DCMAKE_SYSTEM_VERSION=10.0 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=$(WindowsTargetPlatformVersion) -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebugDLL -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_BUILD_BENCHMARKS=OFF -DLLVM_BUILD_DOCS=OFF -DLLVM_BUILD_EXAMPLES=OFF -DLLVM_BUILD_TESTS=OFF\ -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DLLVM_INSTALL_UTILS=OFF -DLLVM_ENABLE_DIA_SDK=OFF -DLLVM_ENABLE_PDB=OFF -DLLVM_USE_INTEL_JITEVENTS=ON "$(SolutionDir)3rdparty\llvm\llvm\llvm"
</CmakeDebugCLI>
<CmakeCleanCLI>
echo Cleaning..
+2 -2
View File
@@ -40,11 +40,11 @@
<PropertyGroup Label="UserMacros">
<CmakeReleaseCLI>call vsdevcmd.bat -arch=amd64
cd "$(SolutionDir)build\tmp\llvm_build-$(Configuration)-$(Platform)"
cmake -G Ninja -DCMAKE_CXX_COMPILER="clang-cl.exe" -DCMAKE_C_COMPILER="clang-cl.exe" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="$(SolutionDir)build\lib\$(Configuration)-$(Platform)\llvm_build" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=$(WindowsTargetPlatformVersion) -DLLVM_USE_CRT_DEBUG=MDd -DLLVM_USE_CRT_RELEASE=MT -DLLVM_USE_INTEL_JITEVENTS=ON "$(SolutionDir)3rdparty\llvm\llvm\llvm"
cmake -G Ninja -DCMAKE_CXX_COMPILER="clang-cl.exe" -DCMAKE_C_COMPILER="clang-cl.exe" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="$(SolutionDir)build\lib\$(Configuration)-$(Platform)\llvm_build" -DCMAKE_SYSTEM_VERSION=10.0 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=$(WindowsTargetPlatformVersion) -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_BUILD_BENCHMARKS=OFF -DLLVM_BUILD_DOCS=OFF -DLLVM_BUILD_EXAMPLES=OFF -DLLVM_BUILD_TESTS=OFF\ -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DLLVM_INSTALL_UTILS=OFF -DLLVM_ENABLE_DIA_SDK=OFF -DLLVM_ENABLE_PDB=OFF -DLLVM_USE_INTEL_JITEVENTS=ON "$(SolutionDir)3rdparty\llvm\llvm\llvm"
</CmakeReleaseCLI>
<CmakeDebugCLI>call vsdevcmd.bat -arch=amd64
cd "$(SolutionDir)build\tmp\llvm_build-$(Configuration)-$(Platform)"
cmake -G Ninja -DCMAKE_CXX_COMPILER="clang-cl.exe" -DCMAKE_C_COMPILER="clang-cl.exe" -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="$(SolutionDir)build\lib\$(Configuration)-$(Platform)\llvm_build" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=$(WindowsTargetPlatformVersion) -DLLVM_USE_CRT_DEBUG=MDd -DLLVM_USE_CRT_RELEASE=MT -DLLVM_USE_INTEL_JITEVENTS=ON "$(SolutionDir)3rdparty\llvm\llvm\llvm"
cmake -G Ninja -DCMAKE_CXX_COMPILER="clang-cl.exe" -DCMAKE_C_COMPILER="clang-cl.exe" -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="$(SolutionDir)build\lib\$(Configuration)-$(Platform)\llvm_build" -DCMAKE_SYSTEM_VERSION=10.0 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=$(WindowsTargetPlatformVersion) -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebugDLL -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_HOST_TRIPLE:STRING=x86_64-pc-windows-msvc -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_BUILD_BENCHMARKS=OFF -DLLVM_BUILD_DOCS=OFF -DLLVM_BUILD_EXAMPLES=OFF -DLLVM_BUILD_TESTS=OFF\ -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_UTILS=OFF -DLLVM_INSTALL_UTILS=OFF -DLLVM_ENABLE_DIA_SDK=OFF -DLLVM_ENABLE_PDB=OFF -DLLVM_USE_INTEL_JITEVENTS=ON "$(SolutionDir)3rdparty\llvm\llvm\llvm"
</CmakeDebugCLI>
<CmakeCleanCLI>
echo Cleaning..
+5 -1
View File
@@ -4,7 +4,11 @@ set(OPENCV_TARGET 3rdparty_dummy_lib PARENT_SCOPE)
if (USE_SYSTEM_OPENCV)
message(STATUS "RPCS3: using system OpenCV")
find_package(OpenCV)
find_package(OpenCV CONFIG COMPONENTS core photo)
if(NOT OPENCV_FOUND)
find_package(OpenCV COMPONENTS core photo)
endif()
if(OPENCV_FOUND)
message(STATUS "RPCS3: found system OpenCV")
+1 -2
View File
@@ -32,8 +32,7 @@ Find the correct ppa at https://launchpad.net/~beineri and follow the instructio
else()
message("CMake was unable to find Qt6!")
if(WIN32)
message(FATAL_ERROR "Make sure the QTDIR env variable has been set properly. (for example C:\\Qt\\${QT_MIN_VER}\\msvc2019_64\\)
You can also try setting the Qt6_DIR preprocessor definiton.")
message(FATAL_ERROR "Make sure the Qt6_ROOT environment variable has been set properly. (for example C:\\Qt\\${QT_MIN_VER}\\msvc2022_64\\)")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
message(FATAL_ERROR "Make sure to install your distro's qt6 package!")
else()
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+137
View File
@@ -0,0 +1,137 @@
#!/bin/bash -ex
verbose=0
git_verbose=0
max_jobs=16
lockfile="$(pwd)/version_check.lock"
resultfile="$(pwd)/version_check_results.txt"
if [ "$1" = "-v" ]; then
verbose=1
elif [ "$1" = "-vv" ]; then
verbose=1
git_verbose=1
fi
# Limit concurrent jobs
job_control()
{
while [ "$(jobs | wc -l)" -ge "$max_jobs" ]; do
sleep 0.1
done
}
git_call()
{
if [ "$git_verbose" -eq 1 ]; then
eval "git $@"
elif [[ "$1" == "fetch" ]]; then
eval "git $@ >/dev/null 2>&1"
else
eval "git $@ 2>/dev/null"
fi
}
check_tags()
{
local path=$(echo "$1" | sed 's:/*$::')
echo "Checking $path"
git_call fetch --prune --all
# Get the latest tag (by commit date, not tag name)
local tag_list=$(git_call rev-list --tags --max-count=1)
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
# Get the current tag
local current_tag=$(git_call describe --tags --abbrev=0)
if [ -n "$current_tag" ]; then
if [ "$verbose" -eq 1 ]; then
echo "$path -> latest: $latest_tag, highest: $highest_tag, current: $current_tag"
fi
local ts0=$(git_call log -1 --format=%ct $highest_tag)
local ts1=$(git_call log -1 --format=%ct $latest_tag)
local ts2=$(git_call log -1 --format=%ct $current_tag)
if (( ts0 > ts2 )) || (( ts1 > ts2 )); then
if [ "$verbose" -eq 1 ]; then
echo -e "\t $path: latest is newer"
elif [ "$verbose" -eq 0 ]; then
echo "$path -> latest: $latest_tag, highest: $highest_tag, current: $current_tag"
fi
# Critical section guarded by flock
(
flock 200
echo "$path -> latest: $latest_tag, highest: $highest_tag, current: $current_tag" >> "$resultfile"
) 200>"$lockfile"
fi
elif [ "$verbose" -eq 1 ]; then
echo "$path -> latest: $latest_tag, highest: $highest_tag"
fi
elif [ "$verbose" -eq 1 ]; then
if [ -n "$current_tag" ]; then
echo "$path -> current: $current_tag"
else
echo "$path -> no tags found"
fi
fi
}
# Fetch and check repositories multi threaded
for submoduledir in */ ;
do
cd "$submoduledir" || continue
if [ -e ".git" ]; then
job_control
check_tags "$submoduledir" &
else
for sub in */ ;
do
if [ -e "$sub/.git" ]; then
cd "$sub" || continue
job_control
check_tags "$submoduledir$sub" &
cd .. || exit
fi
done
fi
cd .. || exit
done
# Wait for all background jobs to finish
wait
# Print results
echo -e "\n\nResult:\n"
# Find the max length of the paths (before '->')
max_len=0
while IFS='->' read -r left _; do
len=$(echo -n "$left" | wc -c)
if (( len > max_len )); then
max_len=$len
fi
done < "$resultfile"
# Print with padding so '->' lines up
while IFS='->' read -r left right; do
right=$(echo "$right" | sed 's/^[[:space:]]*>*[[:space:]]*//')
printf "%-${max_len}s -> %s\n" "$left" "$right"
done < "$resultfile"
# Remove tmp files
rm -f "$resultfile"
rm -f "$lockfile"
+13 -1
View File
@@ -22,5 +22,17 @@ else()
add_subdirectory(wolfssl EXCLUDE_FROM_ALL)
target_compile_definitions(wolfssl PUBLIC WOLFSSL_DES_ECB HAVE_WRITE_DUP FP_MAX_BITS=8192 WOLFSSL_NO_OPTIONS_H)
target_compile_definitions(wolfssl PUBLIC WOLFSSL_DES_ECB HAVE_WRITE_DUP WOLFSSL_NO_OPTIONS_H)
if(MSVC AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# Disable 128-bit Math
set(WOLFSSL_ASM ON CACHE BOOL "" FORCE)
set(WOLFSSL_FAST_MATH OFF CACHE BOOL "" FORCE)
target_compile_definitions(wolfssl PUBLIC WOLFSSL_SP_NO_128BIT FP_MAX_BITS=4096)
# Disable warnings
target_compile_options(wolfssl PRIVATE /w)
else()
target_compile_definitions(wolfssl PUBLIC FP_MAX_BITS=8192)
endif()
endif()
-1
Submodule 3rdparty/xxHash deleted from e626a72bc2
-2
View File
@@ -84,7 +84,6 @@
<WarningLevel>$(WarningLevel)</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<BrowseInformation>true</BrowseInformation>
<FunctionLevelLinking>true</FunctionLevelLinking>
<DisableSpecificWarnings>$(DisableSpecificWarnings);4127;4131;4242;4244</DisableSpecificWarnings>
<TreatWarningAsError>$(TreatWarningAsError)</TreatWarningAsError>
@@ -102,7 +101,6 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<WholeProgramOptimization>true</WholeProgramOptimization>
<BufferSecurityCheck>false</BufferSecurityCheck>
<BrowseInformation>true</BrowseInformation>
<FunctionLevelLinking>true</FunctionLevelLinking>
<DisableSpecificWarnings>$(DisableSpecificWarnings);4127;4131;4242;4244</DisableSpecificWarnings>
<TreatWarningAsError>$(TreatWarningAsError)</TreatWarningAsError>
+19
View File
@@ -58,6 +58,7 @@
<ClCompile Include=".\zstd\programs\lorem.c" />
<ClCompile Include=".\zstd\programs\zstdcli.c" />
<ClCompile Include=".\zstd\programs\zstdcli_trace.c" />
<ClCompile Include="zstd\lib\compress\zstd_preSplit.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include=".\zstd\lib\common\pool.h" />
@@ -97,6 +98,24 @@
<ClInclude Include=".\zstd\programs\fileio.h" />
<ClInclude Include=".\zstd\programs\platform.h" />
<ClInclude Include=".\zstd\programs\util.h" />
<ClInclude Include="zstd\lib\common\allocations.h" />
<ClInclude Include="zstd\lib\common\bits.h" />
<ClInclude Include="zstd\lib\common\bitstream.h" />
<ClInclude Include="zstd\lib\common\compiler.h" />
<ClInclude Include="zstd\lib\common\cpu.h" />
<ClInclude Include="zstd\lib\common\debug.h" />
<ClInclude Include="zstd\lib\common\error_private.h" />
<ClInclude Include="zstd\lib\common\mem.h" />
<ClInclude Include="zstd\lib\common\portability_macros.h" />
<ClInclude Include="zstd\lib\common\zstd_deps.h" />
<ClInclude Include="zstd\lib\common\zstd_trace.h" />
<ClInclude Include="zstd\lib\compress\clevels.h" />
<ClInclude Include="zstd\lib\compress\hist.h" />
<ClInclude Include="zstd\lib\compress\zstd_compress_internal.h" />
<ClInclude Include="zstd\lib\compress\zstd_ldm_geartab.h" />
<ClInclude Include="zstd\lib\compress\zstd_preSplit.h" />
<ClInclude Include="zstd\lib\decompress\zstd_decompress_block.h" />
<ClInclude Include="zstd\lib\decompress\zstd_decompress_internal.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="zstd.rc" />
+23 -23
View File
@@ -19,38 +19,38 @@ The following tools are required to build RPCS3 on Windows 10 or later:
with standalone **CMake** tool.
- [Python 3.6+](https://www.python.org/downloads/) (add to PATH)
- [Qt 6.8.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.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)
- [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.
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.8.1\msvc2022_64\`
- add and set the `QTDIR` environment variable, e.g. `<QtInstallFolder>\6.9.1\msvc2022_64\`
- 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.
In order to build **RPCS3** with the `CMake` solution (with both **Visual Studio** and standalone **CMake** tool):
- add and set the `CMAKE_PREFIX_PATH` environment variable to the **Qt** libs path, e.g. `<QtInstallFolder>\6.8.1\msvc2022_64\`
- add and set the `Qt6_ROOT` environment variable to the **Qt** libs path, e.g. `<QtInstallFolder>\6.9.1\msvc2022_64\`
### Linux
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+
- [CMake 3.28.0+](https://www.cmake.org/download/)
- [Qt 6.8.1](https://www.qt.io/download-qt-installer)
- [Qt 6.9.1](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.
- [SDL2](https://github.com/libsdl-org/SDL/releases) (for the FAudio backend)
- [SDL3](https://github.com/libsdl-org/SDL/releases) (for the FAudio backend)
**If you have an NVIDIA GPU, you may need to install the libglvnd package.**
#### Arch Linux
sudo pacman -S glew openal cmake vulkan-validation-layers qt6-base qt6-declarative qt6-multimedia qt6-svg sdl2 sndio jack2 base-devel
sudo pacman -S glew openal cmake ninja vulkan-validation-layers qt6-base qt6-declarative qt6-multimedia qt6-svg sdl3 sndio jack2 base-devel
#### Debian & Ubuntu
sudo apt-get install build-essential libasound2-dev libpulse-dev libopenal-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev libudev-dev git libevdev-dev libsdl2-2.0 libsdl2-dev libjack-dev libsndio-dev
sudo apt-get install build-essential ninja-build libasound2-dev libpulse-dev libopenal-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev libudev-dev git libevdev-dev libsdl3-3.2 libsdl3-dev libjack-dev libsndio-dev
Ubuntu is usually horrendously out of date, and some packages need to be downloaded by hand. This part is for Qt, GCC, Vulkan, and CMake
@@ -67,7 +67,7 @@ sudo apt-get update
sudo apt-get install gcc-13 g++-13
```
You can either use `update-alternatives` to setup `gcc-13`/`g++-13` as your default compilers or prefix any `cmake` command by `CXX=g++-13 CC=gcc-13 ` to use it.
You can either use `update-alternatives` to setup `gcc-13`/`g++-13` as your default compilers or prefix the `cmake` build file generation command by `CXX=g++-13 CC=gcc-13` to use it.
##### Vulkan SDK
@@ -94,19 +94,21 @@ sudo apt-get install cmake
#### Fedora
sudo dnf install alsa-lib-devel cmake glew glew-devel libatomic libevdev-devel libudev-devel openal-devel qt6-qtbase-devel qt6-qtbase-private-devel vulkan-devel pipewire-jack-audio-connection-kit-devel qt6-qtmultimedia-devel qt6-qtsvg-devel
sudo dnf install alsa-lib-devel cmake ninja-build glew glew-devel libatomic libevdev-devel libudev-devel openal-devel qt6-qtbase-devel qt6-qtbase-private-devel vulkan-devel pipewire-jack-audio-connection-kit-devel qt6-qtmultimedia-devel qt6-qtsvg-devel llvm-devel
#### OpenSUSE
sudo zypper install git cmake libasound2 libpulse-devel openal-soft-devel glew-devel zlib-devel libedit-devel vulkan-devel libudev-devel libqt6-qtbase-devel libqt6-qtmultimedia-devel libqt6-qtsvg-devel libQt6Gui-private-headers-devel libevdev-devel libsndio7_1 libjack-devel
sudo zypper install git cmake ninja libasound2 libpulse-devel openal-soft-devel glew-devel zlib-devel libedit-devel vulkan-devel libudev-devel libqt6-qtbase-devel libqt6-qtmultimedia-devel libqt6-qtsvg-devel libQt6Gui-private-headers-devel libevdev-devel libsndio7_1 libjack-devel
## Setup the project
Clone and initialize the repository
```
git clone https://github.com/RPCS3/rpcs3.git
```bash
git clone --recurse-submodules https://github.com/RPCS3/rpcs3.git
cd rpcs3
# This is automatically done by `git clone --recurse-submodules`,
# but in case you forgot it, you can manually fetch submodules this way:
git submodule update --init
```
@@ -119,7 +121,7 @@ Start **Visual Studio**, click on `Open a project or solution` and select the `r
##### Configuring the Qt Plugin (if used)
1) go to `Extensions->Qt VS Tools->Qt Versions`
2) add the path to your Qt installation with compiler e.g. `<QtInstallFolder>\6.8.1\msvc2022_64`, version will fill in automatically
2) add the path to your Qt installation with compiler e.g. `<QtInstallFolder>\6.9.1\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**)
4) set `Build: Run pre-build setup` to `true`. (Only available in the **Legacy Qt Plugin**)
@@ -127,19 +129,17 @@ Start **Visual Studio**, click on `Open a project or solution` and select the `r
**NOTE:** The recommended build configuration is `Release`. (On older revisions: `Release - LLVM`)
To speed up the compilation time, you may want to download and extract to `<rpcs3_root>\build\lib_ext\<$(Configuration)>-x64` (e.g. `c:\rpcs3\build\lib_ext\Release-x64`; the path needs to be created) some of the following precompiled libs:
- [LLVM libs](https://github.com/RPCS3/llvm-mirror/releases/download/custom-build-win-16.0.1/llvmlibs_mt.7z)
- [additional libs](https://github.com/RPCS3/glslang/releases/latest/download/glslanglibs_mt.7z)
To speed up the compilation time, you may want to download and extract to `<rpcs3_root>\build\lib_ext\<$(Configuration)>-x64` (e.g. `c:\rpcs3\build\lib_ext\Release-x64`; the path needs to be created) the following precompiled lib:
- [LLVM libs](https://github.com/RPCS3/llvm-mirror/releases/download/custom-build-win-19.1.7/llvmlibs_mt.7z)
**NOTES:**
- `<$(Configuration)>` can assume values `Release` or `Debug`.
- Unoptimised/debug libs are currently not available precompiled for both **LLVM** and **glslang**. Trying to use them when building the **RPCS3** application in `Debug` mode will provide a `cannot open file` error.
- Unoptimised/debug libs are currently not available precompiled for **LLVM**. Trying to use it when building the **RPCS3** application in `Debug` mode will provide a `cannot open file` error.
If you're not using the precompiled libs, those dependency libs need to be compiled first. From the `Solution Explorer` panel:
1) expand `__BUILD_BEFORE`
2) from the `Solution Configurations` drop-down menu, select `Release` (select `Debug` if you want to build in `Debug` mode)
3) one after another, right-click on the following projects and then click on `Build` to build the selected lib:
- `glslang`
3) right-click one of the following projects and then click on `Build` to build the selected lib:
- `llvm_build`
- or `llvm_build_clang_cl` (if you have also the **clang** compiler installed on VS)
@@ -181,11 +181,11 @@ In case you preferred to install and use the standalone **CMake** tool:
While still in the project root:
1) `cd .. && mkdir --parents rpcs3_build && cd rpcs3_build`
2) `cmake ../rpcs3/ && make` or `CXX=g++-13 CC=gcc-13 cmake ../rpcs3/ && make` to force these compilers
3) run RPCS3 with `./bin/rpcs3`
1) `cmake -B build -G Ninja` to generate build files with the default compiler (override the compiler by prepending e.g. `CC=clang CXX=clang++`)
2) `cmake --build build` to compile
3) run RPCS3 with `build/bin/rpcs3`
If compiling for ARM, pass the flag `-DUSE_NATIVE_INSTRUCTIONS=OFF` to the cmake command. This resolves some Neon errors when compiling our SIMD headers.
If compiling for ARM, pass the flag `-DUSE_NATIVE_INSTRUCTIONS=OFF` to the first `cmake` command. This resolves some NEON errors when compiling our SIMD headers.
When using GDB, configure it to ignore SIGSEGV signal (`handle SIGSEGV nostop noprint`).
If desired, use the various build options in [CMakeLists](https://github.com/RPCS3/rpcs3/blob/master/CMakeLists.txt).
+40 -11
View File
@@ -1,8 +1,16 @@
cmake_minimum_required(VERSION 3.16.9)
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)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11)
@@ -21,15 +29,27 @@ option(STATIC_LINK_LLVM "Link against LLVM statically. This will get set to ON i
option(USE_FAUDIO "FAudio audio backend" ON)
option(USE_LIBEVDEV "libevdev-based joystick support" ON)
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_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
option(USE_SDL "Enables SDL input handler" OFF)
option(USE_SYSTEM_SDL "Prefer system SDL instead of the builtin one" ON)
option(USE_SYSTEM_FFMPEG "Prefer system ffmpeg instead of the prebuild one" OFF)
option(USE_SYSTEM_OPENAL "Prefer system OpenAL instead of the prebuild one" ON)
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_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_MVK "Prefer system MoltenVK instead of the builtin one" OFF)
option(USE_SYSTEM_OPENAL "Prefer system OpenAL instead of the prebuild one" ON)
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_SDL "Prefer system SDL instead of the builtin one" ON)
option(USE_SYSTEM_WOLFSSL "Prefer system MoltenVK instead of the builtin one" OFF)
option(USE_SYSTEM_ZLIB "Prefer system ZLIB instead of the builtin one" ON)
option(HAS_MEMORY_BREAKPOINTS "Add support for memory breakpoints to the interpreter" OFF)
option(USE_LTO "Use LTO for building" ON)
option(BUILD_RPCS3_TESTS "Build RPCS3 unit tests." OFF)
option(RUN_RPCS3_TESTS "Run RPCS3 unit tests. Requires BUILD_RPCS3_TESTS" OFF)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/buildfiles/cmake")
@@ -96,18 +116,15 @@ if(MSVC)
message(AUTHOR_WARNING "Debug build currently can not work with static CRT.")
endif()
endif()
add_compile_options(/MP)
if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
add_compile_options(/MP)
endif()
endif()
if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
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()
if(APPLE AND CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
include_directories(/opt/homebrew/include)
link_directories(/opt/homebrew/lib)
@@ -137,11 +154,23 @@ if(NOT WIN32)
add_compile_options(-pthread)
endif()
## Look for Gamemode if its installed on Linux
if(LINUX)
find_program(GAMEMODE_FOUND gamemoded) ## Only works if gamemode is installed on system (might include lib32 case)
if(GAMEMODE_FOUND)
add_compile_definitions(GAMEMODE_AVAILABLE)
endif()
message(GAMEMODE_AVAILABLE="${GAMEMODE_AVAILABLE}")
endif()
# TODO: do real installation, including copying directory structure
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_RELWITHDEBINFO "${PROJECT_BINARY_DIR}/bin")
if(BUILD_RPCS3_TESTS)
enable_testing()
endif()
add_subdirectory(rpcs3)
set_directory_properties(PROPERTIES VS_STARTUP_PROJECT rpcs3)

Some files were not shown because too many files have changed in this diff Show More