Commit Graph

73 Commits

Author SHA1 Message Date
Arisotura a83fbb6555 revert half of the change to build flags. it makes Teakra linking shit itself in a pretty bad and weird way.
sorry Nadia
2022-10-12 20:22:39 +02:00
Nadia Holmquist Pedersen c177fae51f Clean up optimization flags
* The way -O3 was set for release builds was accidentally removing
  -DNDEBUG
* -Og seems to mess with debugging with lldb, even though the GCC manual
  page says to use it for debug builds, so remove it
2022-10-09 20:14:27 +02:00
Nadia Holmquist Pedersen 067b44fdfd oh fuck you macos 2022-05-23 15:35:34 +02:00
Nadia Holmquist Pedersen 5f581e82d4 cmake: fix debug flags 2022-05-23 15:33:40 +02: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
Arisotura fe96944fc0 insert wacky commit message 2022-03-08 12:03:16 +01:00
Nadia Holmquist Pedersen b1565ec87a macOS: Bump minimum version to 10.15 2022-03-06 20:06:11 +01:00
Nadia Holmquist Pedersen f21ae77a01 Allow for using LLVM from Homebrew and include its libc++ 2021-09-15 22:13:04 +02:00
Arisotura 9514efe4a0 BAHAHAHAHAHAHAAAAA-+*~+ 2021-09-02 00:16:36 +02:00
RSDuck 6944fdbe78 add support for JIT profiling with VTune 2021-07-24 16:20:03 +02:00
WaluigiWare64 89875204dd Add message when CCache is being used 2021-07-22 16:58:59 +01:00
WaluigiWare64 9b5d5f673c Use CCache if it exists 2021-07-22 16:50:48 +01:00
Nadia Holmquist Pedersen d6036f9225 macOS-related CMake cleanups
* Remove useless explicitly specified link/include directories
* Don't pass -s or -pie to the linker as they aren't needed
2021-05-02 16:32:27 +02:00
Arisotura d77d4ffc13 RELEASE 0.9.2 NOW THEY SAID 2021-04-26 23:24:41 +02:00
WaluigiWare64 7e6cf61b4c Fix static iconv linking on Windows 2021-03-26 18:04:19 +00:00
WaluigiWare64 a08f70e3a5
Set macOS Deployment Target to 10.14 2021-03-12 17:53:50 +00:00
WaluigiWare64 cb34032ac8
Set macOS Deployment Target to 10.13
It's the minimum that the latest Qt 5 supports
2021-03-01 13:12:02 +00:00
nia f8692f85a4
Only use special ar and ranlib command when ENABLE_LTO is ON. (#1018)
This allows melonDS to be built with the standard system toolchain
on NetBSD, see discussion in #1016
2021-02-26 16:54:36 +00:00
WaluigiWare64 43348210f9 Fix some compiler warnings 2021-01-25 14:12:13 +00:00
WaluigiWare64 e8f06b8ac1 Define melonDS version in CMake
Prevents having to update multiple files (melon.rc, melon.plist, version.h) when a new version is released.
2021-01-19 11:39:25 +00:00
RSDuck 473205cab7 fix non static LTO windows build 2020-12-05 21:10:00 +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
Nadia Holmquist Pedersen 14be591ab8
Override CMAKE_AR/CMAKE_RANLIB, fixes flatpak builds, also use lld with clang if found (#828)
* Override CMAKE_AR/CMAKE_RANLIB, fixes flatpak builds, also use lld with clang if found

* Ensure we build with -fPIC/-pie for LTO builds
2020-11-28 17:12:44 +01:00
Nadia Holmquist Pedersen ddf9a5ac27
CMake build fixups (#825)
* CMake build fixups

* Correctly set C/C++ standard
* Specify CXX in project() to get things set up right, also causes it to
link using the C++ compiler which is necessary for LTO builds with Clang
to work right
* Remove Fedora/flatpak build workaround, no longer needed with C++ standard set
* Link libm explicitly if we need to
* Specify -fuse-linker-plugin when building with LTO just in case

* Restore CMAKE_{C,CXX}_STANDRD, oops

* Use C++17
2020-11-23 21:57:36 +01:00
Nadia Holmquist Pedersen 1b0a24a9bd
Fix LTO builds with Clang (#815) 2020-11-14 13:29:47 +01:00
RSDuck ae9694ef8b do what Nadia said 2020-11-09 20:50:29 +01:00
Nadia Holmquist Pedersen ec232a9365
Fix building the Qt frontend with LTO (#802)
* Remove unnecessary -fno-pic/-no-pie, fixes LTO builds

* restore -no-pie because GNOME is derpy
2020-11-06 12:03:02 +01:00
RSDuck 6977302403 make OpenGL renderer a build option
mostly meant for the Switch port
2020-10-01 00:01:05 +02:00
RSDuck 99b34efe2d move ARM64 JIT backend here 2020-06-16 11:57:51 +02:00
RSDuck 86f2be7260 jit: add compile option 2020-06-16 11:54:03 +02:00
Arisotura c45068da0e embed romlist.bin 2020-05-30 00:28:21 +02:00
Arisotura 935f121025 * add options for static linking
* make the vsync checkbox and shit work to some extent (they don't actually function tho)
2020-05-29 21:03:46 +02:00
Arisotura b262313816 actually hook up input to the core
also unbotch CMakeLists.txt
2020-05-19 22:22:21 +02:00
StapleButter d5f1633019 remove LTO 2020-05-19 14:41:11 +02:00
Arisotura 0bdafb6295 finally get this going, I guess 2020-04-25 19:31:19 +02:00
Arisotura d58c9d4b53 blarg 2020-04-25 18:56:39 +02:00
tokumeiwokiboushimasu 6635ded6ec
Fix build error on Fedora 2019-08-28 22:23:26 +09:00
tgsm 5f4f1408b3 cmake: bump minimum version
add_link_options() only exists on cmake >=3.13.
2019-06-09 04:57:36 -04:00
StapleButter ea669190aa fix crash when using -O3.
gcc will try to optimize the memfill with MMX opcodes, but those seem to crash if the memory isn't aligned to a 8-byte boundary.
2019-05-30 18:05:52 +02:00
StapleButter 624e7aeb30 Merge branch 'master' of https://github.com/Arisotura/melonDS
rârp
2019-05-28 19:49:20 +02:00
StapleButter 891ab9fd3c Linux: start getting somewhere with the whole OpenGL shito 2019-05-28 19:48:59 +02:00
Nadia Pedersen 8e783d9360
Remove useless BUILD_SDL2 option 2019-05-26 21:30:45 +02:00
Nadia Holmquist Pedersen b3c3d5f79d Fix CMake policy warning 2019-05-04 19:59:09 +02:00
Nadia Holmquist Pedersen 56969ba0d1 Change CMake minimum version requirement to the one shipped with Ubuntu LTS 2019-05-04 15:32:12 +02:00
Nadia Holmquist Pedersen 5d3462b42c Remove redundant install from CMakeLists.txt 2019-05-01 18:39:50 +02:00
Nadia Holmquist Pedersen b31b5ed66a Revamp build system 2019-05-01 05:16:54 +02:00
Arisotura f08b87b41f * move melon_fopen_local() to Platform.cpp
* make it require that the file already exist (hopefully fixing config saving bug)
* finally axe melon_fopen.cpp
2019-03-27 13:34:26 +01:00
StapleButter f86782cc2e make it compile under Linux.
it shits itself tho.
2019-03-26 01:58:03 +01:00
John-Gee 5d364789af Fixed checking for build type 2019-01-06 06:00:06 -08:00
StapleButter 9eab6618da bûrp 2018-12-30 02:18:58 +01:00