* update to SDL 3.2.0
* remove SDL wrap
* fix darwin and windows CI
* update build box, correct msys sdl3 dependency
* port leftovers from renderer backend to SDL3
* remove SDL main dep
the main implementation is now included in a header
* main.c: use SDL_main.h
This needs to be included to work.
* ci: use vcpkg and pkgconf to support SDL3 on MSVC
* ci: use 7z to create zip
* renwindow: create texture and surface suitable for the display
* system: remove trailing whitespace
* renderer: fix trailing whitespace
* system: fix checking the wrong argument
* system: port rmdir and stat to SDL3 API
* system: remove unneeded API level check
* system: fix wrong parameter index
* system: make set_window_hit_test and set_window_bordered accept a window
* docs/system: update docs
* system: restore some comments
* docs/system: add missing documentation for system.text_input
* system: use SDL_setenv_unsafe
* system: add back comment for setenv
* system,renderer: remove unnecessary SDL_ClearError calls
---------
Co-authored-by: takase1121 <20792268+takase1121@users.noreply.github.com>
(cherry picked from commit 2716f14b6903f055f6bdf010a7e4a3d040cf059d)
These are only needed for building the actual project and not for managing resources or setting various flags.
Gets rid of the double `source-only` check and moves it closer to the consumer
(cherry picked from commit 64420f4366a290b3c3f48f0131a8f77312def595)
* resources: update copyright in info.plist
* meson.build: dynamically generate current year
"present" may be misleading.
* resources/macos: remove unecessary newlines
* ci: use latest macos images
* ci/build: clarify the purpose of md5sha1sum
* meson.build: remove hidapi usage
* ci: downgrade macos version for universal build
* scripts: codesign the universal binary with sha1 and sha256
* ci: revert back to macos-14 for universal
* ci/build: remove old comment
Debian and all its derivatives ship a broken Lua 5.4 that is missing some symbols.
To work around broken distros and make development and distribution easier use the wrap by default and add an option to use the system version.
* fix(gitignore): add exclusion for manifest files
* feat(windows): add application manifest
* feat(build): use application manifest on windows
* refactor(build): use genrate_file to generate the manifest
* style(manifest): remove trailing whitespace
Lua provides no offical pkg-config configuration but some systems still have it.
Instead of assuming the System has none, try using the C compiler to find it.
This may give us an incorrect lua version, but its better than nothing at all.
* Update meson.build
- add logic to loop over more lua names (in the future more names might be discovered)
- disable warnings and errors on dependencies
* adding missing includes and checks, correct data types, pointer mess […]
- various functions from string.h were used but never defined
- logic was done across multiple different data types with different signedness, got all of them up to snuff
- give 0 sized array size of 1 (array of size 0 is illegal, but rewriting the code is out of the scope of this commit)
- add preprocessor that marks possibly unused argument as such (does not mean they will get optimized out or anything)
- correctly initialize structs with all data needed
All these were found by generating the project using `meson -Dwarning_level=3 -Dwerror=true`
* remove undefined behavior, correct data types
* Comment manual bit manipulation to be investigated
* check for more edge cases, replace multiple cleanups with goto
* remove system specific includes
Removed dmon, and replaced with logic that works across Linux, Mac, FreeBSD and Windows. Have tested on all platforms, and seems to work.
Co-authored-by: Jan200101 <sentrycraft123@gmail.com>
Only a couple trivial features from meson ~0.50 were being used, and
none of them are really needed:
- configure_file() with the install kwarg has always defaulted to
inferring its value from whether an install_dir was defined. This is
fine, we don't need to set `install: true` in that case. The kwarg was
only even added to meson 0.50 for consistency and to allow
conditionally overriding the file to not install, even when
install_dir is set. This project does not need that feature.
- path building could historically be done with the join_paths()
function. Recent versions of meson (0.49) added cosmetic sugar in the
form of string operator overloading to allow using the division
operator on two strings. By removing this and using the backwards
compatible form, we can support older versions of meson.
- sdl2 dependency lookup with hardcoded config-tool method is very
opinionated about the correct way to look up sdl2, but meson can try
multiple methods if you permit it, and there is no reason to think
that config-tool is the only one that returns correct results.
By removing these features, the minimum can be dropped all the way down
to a version that is available on the oldest supported versions of
Ubuntu (18.04), Debian (oldoldstable / Stretch) and anywhere else of
consequence.
No features of 0.54 are being used, so 0.50 should be perfectly fine.
This drops the minimum requirement down to a version available in the
latest Ubuntu LTS (20.04), which only has 0.53