Commit Graph

87 Commits

Author SHA1 Message Date
Tamás Bálint Misius
5e60b53a3b
Hopefully fix msys2 workflows
Apparently updating msys2 causes it to exit completely, great.
2024-01-20 23:35:53 +01:00
Tamás Bálint Misius
aff12209d3
Use gh cli for managing releases
Rather than my bespoke forks of the unmaintained actions that used to do this.
2024-01-12 17:05:00 +01:00
Tamás Bálint Misius
bc9d43bb10
Migrate mingw builds to msys2 ucrt, update tpt-libs 2024-01-12 17:05:00 +01:00
Tamás Bálint Misius
2f302fa586
Make sure the correct android SDK and platform are installed
Make sure by checking check whether android.jar from the SDK exists.
2024-01-10 08:48:32 +01:00
Tamás Bálint Misius
ba056746b8
Bump macos runner version to 12
macos-11 runners took ages to finish the macos jobs because homebrew built everything from source on them.
2024-01-01 21:06:28 +01:00
Tamás Bálint Misius
fb9cba0d01
Some native clipboard support for some platforms
I was hoping SDL2 would get this functionality eventually, but nope, proper clipboard support is staged for SDL3, which we're not going to see much of for at least a few more months. This will have to do for 98.0. The feature can be disabled at runtime from powder.pref.

Implementation status:

 - windows (via winapi): has the most friendly api so of course the implementation is flawless and uses every available optimization >_>
 - macos (via cocoa): I'm bad at cocoa so this is only as good as absolutely necessary; TODO: on-demand rendering
 - x11 (via xclip): I am NOT implementing icccm2; TODO: remove reliance on external tools
 - wayland (via wl-clipboard): oh god wayland oh why, you're almost as bad as x11; TODO: remove reliance on external tools
 - android: TODO; is there even a point?
 - emscripten: TODO; the tricky bit is that in a browser we can only get clipboard data when the user is giving it to us, so this will require some JS hackery that I'm not mentally prepared for right now; also I think the supported content types are very limited and you can't just define your own

x11 and wayland support are handled by a common backend which delegates clipboard management to xclip-like external programs, such as xclip itself or wl-clipboard, and can load custom command line templates from powder.pref for use with other such programs.
2023-12-13 21:49:35 +01:00
Tamás Bálint Misius
66136c8866
Customize ghactions job names 2023-12-03 18:28:11 +01:00
Tamás Bálint Misius
daed1e7ae0
Deprioritize some ghactions jobs
This means they aren't run every single commit, only if something interesting is going on (non-dev branch, pull request, etc.)
2023-12-03 18:17:28 +01:00
Tamás Bálint Misius
1ff6a2d0ae
Add a --backend=vs job to the ghactions workflow
This also requires patching CREATEPROCESS_MANIFEST_RESOURCE_ID out of powder-res.template.rc because Meson generates a VS config that instructs VS to add its own and this conflicts with ours. TODO: Undo this hack once https://github.com/mesonbuild/meson/pull/12472 makes it into a release.

Also start using meson compile in place of ninja in some cases because it integrates better.
2023-12-03 18:17:26 +01:00
Tamás Bálint Misius
a594ae996d
Fix android workflows
Meson 1.3.0 broke parentheses in machine files so we'll be using 1.2.3 for now.
2023-11-23 18:46:33 +01:00
Tamás Bálint Misius
1c1e3aaf5a
Enforce build numbers of official builds in build.sh
Also fix the current build numbers.
2023-10-27 18:11:28 +02:00
Tamás Bálint Misius
7d337ab732
Give emscripten version a starcatcher-compatible name
This means that it can now be taken seriously and handler properly by the starcatcher mod/snapshot service.
2023-10-24 21:23:21 +02:00
Tamás Bálint Misius
f98561d33b
Fix workflows with complicated publish passwords 2023-10-24 20:31:25 +02:00
Tamás Bálint Misius
3b6d607d98
Fix stable/beta ghaction workflows 2023-10-23 18:05:17 +02:00
Tamás Bálint Misius
414f8ba27f
Use curlftpfs for uploading to starcatcher in workflows 2023-10-19 12:51:11 +02:00
Tamás Bálint Misius
a9cbd784f7
Remove snapshot_id
It is now consistently replaced by build_num. The next snapshot will be snapshot-353.
2023-10-19 12:51:11 +02:00
Tamás Bálint Misius
7fc3fb4c15
Sort out version info
The idea is to have the following version information included:

 - 1-component save version
   - 2-component under the hood but the minor component shouldn't ever change again
   - see currentVersionMajor in GameSave.cpp
 - 1-component website API version
   - again, currently 2-component because that's what the website code expects
   - see apiVersion in requestmanager/Common.cpp
 - 2-component display version, entirely cosmetic
   - exposed as meson options display_version_major and display_version_minor
   - see APP_VERSION in Config.template.h
 - 1-component business logic version aka build number
   - exposed as meson option build_num
   - see APP_VERSION in Config.template.h
 - variant id aka mod id, tightly coupled with the build number
   - exposed as meson option mod_id
   - see MOD_ID in Config.template.h
 - display and business logic versions repeated for the upstream
   - exposed as meson options upstream_version_major, upstream_version_minor, and upstream_build_num
   - we'll have to update these alongside display_version_major, display_version_minor, and build_num, but mod owners can just merge our changes
   - see UPSTREAM_VERSION in Config.template.h
 - update channel, makes sense in the context of the variant (and yes, this would later enable mod snapshots)
   - currently not exposed as a meson option but derived from meson options snapshot and mod_id
   - see IDENT_RELTYPE in Config.template.h
 - vcs tag aka git commit hash
   - set by build.sh in ghactions workflows
   - see VCS_TAG in VcsTag.tempalte.h

Rather importantly, the save and website API versions are now allowed to change independently of the display version.

These changes also allowed me to remove the ugly sed hacks in build.sh used to provision some manifest files; they are now provisioned by meson.

Also add version info for windows and android.
2023-10-19 12:51:03 +02:00
Tamás Bálint Misius
d04768fa0e
Give untagged build artifacts a distinct app ID
Their app ID would clash with that of stable otherwise, preventing them from being installed without disrupting stable installs.
2023-10-04 07:55:31 +02:00
Tamás Bálint Misius
b89d29b744
Enable libcurl on android 2023-10-03 18:25:34 +02:00
Tamás Bálint Misius
8385796ca1
Bump android toolchain version to 21 2023-10-03 18:25:34 +02:00
Tamás Bálint Misius
7cb0ac96c9
Emscripten: Enable modularity
This allows multiple instances of the game to be loaded in a single page.

Also stop emitting htmls as a build artifact and require presence of #PowderSessionInfo.
2023-08-22 00:26:34 +02:00
Tamás Bálint Misius
82bd834e05
Emscripten: Add RequestManager 2023-08-22 00:26:32 +02:00
Tamás Bálint Misius
67e41b6705
Emscripten: Add target, update tpt-libs
The code itself is nowhere near being usable in a browser though.
2023-08-22 00:26:31 +02:00
jacob1
18a4407166
Use ubuntu 20.04 for github runners instead of 18.04
18.04's runner only has around a month left to live and the blackout periods are getting longer
2023-02-21 22:46:46 -05:00
Tamás Bálint Misius
6756c27274
Have ghactions check if dynamic windows builds have all their dependencies
Also update tpt-libs to properly fix the bug I fixed very temporarily earlier.
2023-02-05 15:59:31 +01:00
Tamás Bálint Misius
b9c8817386
Group gravity files into their own directory
Also replace non-FFT gravity with "no gravity"; fine for render.
2023-01-27 23:04:27 +01:00
Tamás Bálint Misius
2566506e4b
Provide three levels of install support
Namely: no, yes, and yes and ask at startup.

The install_check option is thus replaced by the can_install option. -Dinstall_check=true maps to -Dcan_install=yes_check, while -Dinstall_check=false maps to -Dcan_install=yes. -Dcan_install=no is new and is recommended for downstream packaging, where -Dinstall_check=false was historically used.

Also improve error messages about bad configuration here and there and scatter configuration code in subdirectories, where they can be closer to their areas of effect.
2023-01-27 09:27:33 +01:00
Tamás Bálint Misius
220844521a
Merge hdiutil calls in build.sh
Because for some reason the hdiutil convert step would sometimes fail with "image corrupt" when given an image the hdiutil create step had just previously created. Too cursed for my pay grade; I took the easy way out.
2023-01-27 09:26:40 +01:00
Tamás Bálint Misius
b5f6ec0f6c
Build nolua, nohttp, nogravfft variants on ghactions 2023-01-27 09:26:40 +01:00
Tamás Bálint Misius
9542f98b82
Preprocessor purge round 7: Config.template.h 2023-01-27 09:26:38 +01:00
Tamás Bálint Misius
fcc259e9b9
Update tpt-libs
Also make it easier to test tpt-libs builds locally by making it possible to point build.sh at a local tpt-libs repo and move installation of build dependencies to build.sh.
2023-01-01 19:00:05 +01:00
Tamás Bálint Misius
476be15e77
Get build.sh app constants from prepare.py 2022-12-27 18:41:23 +01:00
Tamás Bálint Misius
6e9b9cd861
Use different app constants for betas and snapshots 2022-12-24 08:41:10 +01:00
Tamás Bálint Misius
762208356a
Bump macos minimum version to 10.13, update tpt-libs
The version bump was made necessary by 7173650df9.
2022-12-23 19:43:07 +01:00
Tamás Bálint Misius
3be884513d
Do macos packaging on ghactions 2022-12-20 08:25:48 +01:00
Tamás Bálint Misius
467049d4dd
Ignore mod_id.txt if the mod ID is set in meson_options.txt
Fixes forward-incompatible behaviour introduced by 0ff08c276f. The idea is to have mod owners migrate from using mod_id.txt to using meson_options.txt, but if prepare.py unconditionally prefers the former, nobody can use the latter.
2022-12-19 20:08:47 +01:00
Tamás Bálint Misius
0ff08c276f
Bring back mod_id.txt
Removed in 59f89f9a46, brought back to minimize discomfort downstream. prepare.py will still default to the mod_id in meson_options.txt if mod_id.txt is deleted though.
2022-12-19 15:42:47 +01:00
Tamás Bálint Misius
dd7178dbc8
Stop setting window icons on windows
Also fix font editor builds on windows and add more font editor builds to the ghactions workflow.

Funny, we don't really need resource.h anymore. The resource compiler does, but we don't.
2022-12-18 19:32:12 +01:00
Tamás Bálint Misius
e5c88f154a
Unify icons 2022-12-18 15:00:08 +01:00
Tamás Bálint Misius
59f89f9a46
Let mods customize app constants
Mainly via meson_options.txt.
2022-12-17 19:45:01 +01:00
Tamás Bálint Misius
2140d6db4b
Clean up the feature line a bit
Also fix the icon name in the desktop file not including the vendor string.
2022-12-17 13:07:07 +01:00
Tamás Bálint Misius
630db0ef6b
Update tpt-libs
Comes with a new SDL2 version that fixes some obscure bug on Linux with nvidia drivers installed which makes TPT unable to start.
2022-11-08 21:16:13 +01:00
Tamás Bálint Misius
9b76c0dfe2
Fix snapshots being configured with ignore_updates=true
By moving appimages to their own build jobs. This required restructuring prepare.py again: release and debug jobs are not configured in pairs anymore.
2022-11-03 08:06:26 +01:00
Tamás Bálint Misius
b568b11927
Explicitly specify appimage destination
Because appimagetool is too smart for its own good.
2022-11-02 06:45:19 +01:00
Tamás Bálint Misius
cf89fb7dfb
Fix starcatcher uploads for real
See previous commit. If this doesn't fix it, I don't know what will. Let's see how long this chain of "Fix starcatcher uploads" commits goes on.
2022-10-30 09:35:46 +01:00
Tamás Bálint Misius
b36a708623
Fix starcatcher uploads
Apparently download-artifact now works the way it should have always been?
2022-10-29 09:39:51 +02:00
Tamás Bálint Misius
a57bb09d02
Target v141 toolset with msvc, update tpt-libs
Also reduce per-host connection count to 1, now that we support HTTP/2.
2022-10-29 08:42:39 +02:00
Tamás Bálint Misius
1f7b01bd9e
Disable update checks for AppImages 2022-10-24 07:01:21 +02:00
Tamás Bálint Misius
3cda085bac
Build x86_64 AppImage 2022-10-22 22:01:04 +02:00
Tamás Bálint Misius
8161c1d71c
Fix font not being given the json dependency
Also make it and render get built as dynamic executables on ghactions, and disable dynamic+LTO, as it seems to be buggy in certain cases and isn't an important case.
2022-10-21 14:52:02 +02:00