Commit Graph

66 Commits

Author SHA1 Message Date
Nadia Holmquist Pedersen
b069a2acf1 Clean Windows build instructions
* CMake in MSYS2 now depends on Ninja and uses it by default, use it
  instead of Make as it has much easier to read output when doing
  parallel builds and doesn't need an extra program
* Ninja uses the maximum number of cores by default, so we don't have to
  run nproc --all
* We don't need mesa for its headers anymore
2022-11-09 19:54:35 +01:00
RSDuck
ac3118cbc5
No more context mess (#1531)
* WIP: use Duckstation's context code to directly render into QT Widget from separate thread without two OpenGL contexts

currently only works on Windows

* reenable gay OSD

* add back vsync

* make it atleast a little more thread safe

* linux support

* don't segfault on closing

* reorganise and cleanup build system
it's still not good, but better than before

* macos?

* try to get it working on Ubuntu CI
also update instructions

* let's try this

* ok how about this

* try creating an OGL 4.3 context first
(https://i.kym-cdn.com/photos/images/original/001/264/842/220.png)

* fix Ubuntu

* hm

* try again for Windows

* let's try this

* make the OpenGL renderer work again
that was stupid

* do OGL surface resizing from the mainthread

* Fix small mistake in GL context creation on macOS causing version 3.2 to
be considered invalid

* C stupidness

* cleanup

* don't let the emuthread deinit OGL if there's no OGL

* reset lastScreenWidth/Height when deiniting OpenGL

* disable stencil test while drawing framebuffers

* macOS: Link Cocoa framework explicitly when not building with Qt6

Seems to be needed for the classes used by DuckStation's GL context
code.

* Set ScreenPanelGL's minimum size immediately

Fixes GL context creation for OpenGL display on macOS using the wrong
size as the underlying window was not resized to the correct size by Qt
yet.

* don't emit window updates when OGL display is used

* stuff Arisotura said

Co-authored-by: Nadia Holmquist Pedersen <nadia@nhp.sh>
2022-10-17 22:55:11 +02:00
Arisotura
3f4573574a
actual DSi camera support (#1520)
basically feeding something that isn't a fixed stripe pattern, and emulating enough of the camera hardware to make this work
2022-10-02 16:47:57 +02:00
Arisotura
c1c4cbc838
update Patreon URL 2022-09-30 15:53:38 +02:00
Rayyan Ansari
926f200329 Find correct pkg-config 2022-08-31 18:26:36 +01:00
Rayyan Ansari
08f5a2aa82 Fix CMake prefixes 2022-08-31 18:06:19 +01:00
Rayyan Ansari
76c9340920 Create parent directories as well 2022-08-31 17:57:31 +01:00
Rayyan Ansari
80f76ef34d Fix dependencies between jobs 2022-08-31 17:56:18 +01:00
Rayyan Ansari
cac1ec8fbd Fix macOS runner cleanup 2022-08-31 17:53:09 +01:00
Rayyan Ansari
d1dbb1f51e Add self-hosted macOS ARM64 Universal Binary runner
Adds a workflow file for building a universal binary with a self hosted runner.
Also adds a Python script to assist with creating the universal binary
2022-08-31 17:50:03 +01:00
Nadia Holmquist Pedersen
94b33c924e
Modernize CMake build system (#1434)
These changes modernize the CMake build system to (hopefully) match newer best practices

* Library linking is simpler and more automatic because of using imported targets
* Multi-configuration builds should be supported (Ninja Multi-Config, Visual Studio, etc. generators)
* Clean up build options using cmake_dependent_option
* Let CMake do its job in more cases, like finding the math/dl libraries and detecting and enabling LTO support
* Remove platform-specific kludges like the Fedora/flatpak LTO workaround and a bunch of Windows stuff
* Simplify Windows static builds
* Consistent formatting
2022-05-21 19:54:55 +02:00
Nadia Holmquist Pedersen
3d24057155
CI: Fix Ubuntu aarch64 build again
* Use a clean Ubuntu Docker container to hopefully have a more stable environment
* Remove old workarounds
2021-12-28 18:26:52 +01:00
Nadia Holmquist Pedersen
08a19d930c CI: macOS 10.14 is no longer supported, use 10.15 2021-12-28 15:20:50 +01:00
Nadia Holmquist Pedersen
35e93d5fec Use Homebrew LLVM for tha CI builds 2021-09-15 22:13:04 +02:00
WaluigiWare64
ebe8d544e1 Move x86-64 macOS CI file
[skip ci]
2021-07-22 14:52:42 +01:00
WaluigiWare64
3074ee06d7 Clean workspace before build 2021-07-22 14:32:06 +01:00
WaluigiWare64
efd7d62cec Use mkdir -p here 2021-07-22 14:20:21 +01:00
WaluigiWare64
3bada15e46 Use arch -arm64 on ARM64 macOS CI 2021-07-22 14:18:52 +01:00
WaluigiWare64
a135557bcb Add ARM64 Mac CI file 2021-07-22 14:10:21 +01:00
WaluigiWare64
1cd477db71 Change workflow upload name to platform on GitHub CI 2021-06-13 13:06:15 +01:00
Arisotura
3bb78e4f1d add paypal and shit 2021-04-26 15:53:02 +02:00
WaluigiWare64
def272fac4
Use Azure Pipelines so we can target macOS 10.14 (#1042) 2021-04-24 13:27:11 +00:00
Nadia Holmquist Pedersen
796ef95862
Improve macOS bundling (#1067)
* Improve macOS bundling
* Bundle libs for macOS CI
* Add MACOS_BUILD_DMG CMake option and make the CI upload the DMG so we don't lose executable permissions.
* Manually copy plugins if macdeployqt doesn't
* Ad-hoc codesign the app
2021-04-21 23:50:32 +02:00
WaluigiWare64
f7347b1f7a
tell pkg-config the location of libarchive 2021-03-21 15:12:34 +00:00
WaluigiWare64
ae7761c33e
Remove temporary macOS CI workarounds 2021-03-08 12:50:09 +00:00
WaluigiWare64
0ea85fdd2b
Use setup-msys2 GitHub Action (#1029)
* Use setup-msys2 GitHub Action

This makes the Windows CI a few minutes faster
2021-03-06 19:37:51 +00:00
WaluigiWare64
b5e601bb88
Try to fix Ubuntu AArch64 CI (#979)
Also remove previous fixes, they were fixed upstream
2021-02-02 13:29:51 +00:00
WaluigiWare64
ab222ab135
Use libepoxy to load in OpenGL functions (#960)
* Use libepoxy to load in OpenGL functions

Prevents having to load them in manually

* Install libepoxy in the CI

* Do not link OpenGL libraries, libepoxy opens them itself

* Add libepoxy to build instructions
2021-01-26 13:19:32 +00:00
WaluigiWare64
8829b0511c
Change all mentions of qt5 to qt@5 on macOS (#937)
* Change all mentions of qt5 to qt@5 on macOS

* Use temporary workaround to get macOS brew updating

https://github.com/actions/virtual-environments/issues/2322#issuecomment-749211076

* Don't install CMake, it is already installed in the macOS runner
2021-01-13 14:56:06 +01:00
WaluigiWare64
6b8738bb60 Update workflow files 2020-12-19 17:51:23 +00:00
WaluigiWare64
df190b0400
Merge branch 'master' into feature/zip-support 2020-12-19 17:43:53 +00:00
Nadia Holmquist Pedersen
af62c99124
Ubuntu CI cleanups (#842) 2020-12-09 23:08:48 +01:00
WaluigiWare64
7da4550eea
Add support for macOS (#771)
* use shm_open() instead of memfd_create() on macOS

malloc.h isn't a header on macOS

* Change OpenGL headers + create ifdef for DO_PROCLIST

macOS seems to already have the OpenGL functions defined, without the ifdef, it gives "ambiguous references" errors.

* macOS doesn't have ->gregs in uc_mcontext

and it doesn't have REG_RIP either
https://github.com/gperftools/gperftools/blob/master/m4/pc_from_ucontext.m4

* use getpid() to make memory file name unique

* #ifndef __APPLE__ for AF_PACKET and linux/if_packet.h

* Add include and link directories for macOS and link the OpenGL framework

* Add macOS CI

* Use newly added libslirp package from Homebrew

https://github.com/Homebrew/homebrew-core/pull/63412

* Use Apple's Clang instead of GNU GCC on macOS

* Add macOS build instructions to README

* Try to fix macOS undefined symbol

* snprintf doesn't take null terminator into account

* Map new memory on macOS for JIT

* Only use gcc-ar if using GNU Compiler

* re-add fastmem code - whoops!

* Fix style issue - use camelCase not snake_case

* Set Minimum macOS version

* Switch Minimum OS X version to 10.9

* Add macOS libpcap library name

* fix memory leak

* Fix binding keys in macOS

* Allow getting MAC address on macOS

melonDS on Linux uses AF_PACKET, which doesn't exist on macOS. Instead, this commit uses AF_LINK on macOS to get the MAC address.

* Remove unneeded macOS CI dependencies

* Build melonDS app bundle on macOS

Now it is no longer required to install the libraries on macOS, they come with the app bundle.

* fix macOS CI not being able to find macdeployqt

* copy melonDS.app with recursive because it's a folder

* Disable fastmem checkbox on macOS

* Disable fastmem by default in config

* forgot a semicolon

* Don't bundle libraries, causes issues on macOS <10.15

* Update README + allow finding version in Finder on macOS

* Make sure fastmem checkbox stays uncheckable
2020-11-29 17:11:33 +01:00
WaluigiWare64
fbc7648d1a
Fix Ubuntu AArch64 CI - round 3 (#811) 2020-11-11 18:29:25 +01:00
WaluigiWare64
8d70d0926c
Merge branch 'master' into feature/zip-support 2020-10-23 00:39:29 +01:00
WaluigiWare64
4b705556bc
Fix Ubuntu AArch64 CI - again (#767)
* Fix Ubuntu AArch64 CI - again

* Update build-ubuntu-aarch64.yml

* Update build-ubuntu-aarch64.yml

* Update build-ubuntu-aarch64.yml

* Update build-ubuntu-aarch64.yml

* Update build-ubuntu-aarch64.yml
2020-09-24 19:17:39 +02:00
WaluigiWare64
2850dfed15
Fix Ubuntu AArch64 CI (#764) 2020-09-19 18:10:03 +02:00
WaluigiWare64
ba0cbc53ca
Update build-ubuntu.yml 2020-08-26 14:21:34 +01:00
WaluigiWare64
6d71f9c832
Merge branch 'master' into feature/zip-support 2020-08-05 15:06:15 +01:00
Raphaël Zumer
68e310e4ef Deploy Qt libraries with dynamic Windows builds
Also stop using msys-dist.sh with the static CI build.
2020-07-31 16:50:19 -04:00
Nadia Holmquist Pedersen
40a9f41be8
Merge branch 'master' into fix/aarch64-ci 2020-07-27 16:06:53 +02:00
Nadia Holmquist Pedersen
5c08207f35 Do full upgrade to avoid issues when installing ARM dependencies 2020-07-27 15:56:43 +02:00
Nadia Holmquist Pedersen
c547db21e9 Don't download CMake, the package is new enough 2020-07-26 21:52:35 +02:00
Nadia Holmquist Pedersen
c9b9f43fbf Remove unneeded gtk3 package from the Ubuntu build 2020-07-26 21:48:01 +02:00
Nadia Holmquist Pedersen
8a1964a75c Add libslirp to workflows 2020-07-26 21:43:01 +02:00
Nadia Holmquist Pedersen
acb1eec35d
Windows CI: Install MSYS2 with chocolatey 2020-07-25 20:26:36 +02:00
WaluigiWare64
fd4775c3ca
Fix Ubuntu ARM64 libzip dependency 2020-07-22 15:37:30 +01:00
U-RAYYAN-PC\Rayyan
523ff9ff1c Add libzip dependency in the workflow files and to CMakeLists.txt 2020-07-22 14:22:23 +01:00
Nadia Holmquist Pedersen
d69c5df32e Use GCC 10 2020-06-12 03:21:57 +02:00
Nadia Holmquist Pedersen
612d3030f2 Use qtbase5-dev so we pull in less stuff 2020-06-12 03:06:11 +02:00