Commit Graph

256 Commits (69af0e8f269f7c6743dfb3b08be6a39590234ef0)

Author SHA1 Message Date
Patric Stout ba67f39db6
Codechange: vendor the nlohmann-json library (#11290) 10 months ago
Loïc Guilloux 21bd5fb991
Fix: [CI] preview flow can't install latest version of npm (#11265) 10 months ago
Peter Nelson e8015e497d Codechange: Use begin/end of nwidget parts of begin/length.
This simplifies processing nwidget parts as, unlike the remaining length, the pointer to the end of the list never changes. This is the same principle as we use(d) for tracking end instead of length for C-style strings.

And this removes 160~ instances of the lengthof() macro.
10 months ago
Patric Stout 2f96ccc18a
Add: [CI] Create and store breakpad symbols for releases (#11247)
Additionally, also store PDB and exe files on the Symbol Server
for easier debugging with MSVC.
10 months ago
Patric Stout a3d631ffed
Change: make nlohmann a mandatory library to build OpenTTD (#11235) 10 months ago
Patric Stout 13b76b0243
Fix: [CI] don't install breakpad on arm64-windows-static, as it is not supported (yet) (#11242) 10 months ago
Patric Stout 110dd0e6c1
Fix: [CI] Allow release-flow to run in forks (while skipping survey-key) (#11241) 10 months ago
Jonathan G Rennison c804442005 Release: Remove ubuntu 18.04, debian buster. Add debian bookworm 10 months ago
Patric Stout f120d2beb8
Add: use breakpad to create crash.dmp on MacOS / Linux too (#11202)
Normally only the Windows platform could create a crash.dmp, making
analysing crash-reports from MacOS / Linux rather tricky.
10 months ago
Rubidium 73d7052732 Add: unit test functionality using catch2
(cherry picked from commit 43a7e54067)
11 months ago
Jonathan G Rennison 5a062bd5b2 Workflow: Add zstd to github release workflow 11 months ago
Jonathan G Rennison 6fa3620222 CMake: Change -ffile-prefix-map to be enabled by an option
Use in github release workflows
11 months ago
Andy 06b2d9b1cc
Doc: 'game_changelog.hpp' not 'gs_changelog.hpp' in GitHub PR template (#11147) 12 months ago
glx22 9cdf86a411 Add: workflow and script for checking ini_key issues in WindowDesc entries 12 months ago
Patric Stout 7ef6e99083
Fix: [CI] actually use the GitHub Apps token to trigger "Publish Docs" (#11128) 12 months ago
Patric Stout dadcade81c
Fix: [CI] preview for one PR could cancel the preview of another (#11121) 12 months ago
Patric Stout 323dd619bb
Change: [CI] rework preview flow and use Cloudflare Pages to publish (#11116) 12 months ago
Loïc Guilloux 5f2246eabf
Fix 021c45c: [CMake] detection and use of nlohmann-json for emscripten (#11113) 12 months ago
Patric Stout 83b6512032
Fix d5a72193: [CI] downloading single artifact doesn't add folder to it (#11107) 1 year ago
Patric Stout 4c9c164ddc
Fix d5a72193: [CI] GOG and Steam also depend on the source itself (#11095) 1 year ago
Patric Stout d5a72193e7
Change: [CI] upload releases to new CDN (#11093) 1 year ago
Jonathan G Rennison d09b504bc5 Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/ci-build.yml
#	.github/workflows/release-linux.yml
#	.github/workflows/release-macos.yml
#	.github/workflows/release-source.yml
#	.github/workflows/release.yml
#	CMakeLists.txt
#	COMPILING.md
#	src/ai/ai_core.cpp
#	src/ai/ai_gui.cpp
#	src/bridge_gui.cpp
#	src/company_gui.cpp
#	src/console_cmds.cpp
#	src/core/CMakeLists.txt
#	src/core/smallmap_type.hpp
#	src/disaster_vehicle.h
#	src/effectvehicle_base.h
#	src/fontcache.cpp
#	src/game/game_core.cpp
#	src/game/game_gui.cpp
#	src/gamelog.cpp
#	src/gamelog_internal.h
#	src/group_gui.cpp
#	src/linkgraph/linkgraph.h
#	src/misc.cpp
#	src/network/core/config.h
#	src/network/core/udp.cpp
#	src/network/network_chat_gui.cpp
#	src/network/network_content_gui.cpp
#	src/network/network_gui.cpp
#	src/newgrf.cpp
#	src/newgrf_gui.cpp
#	src/newgrf_profiling.cpp
#	src/newgrf_profiling.h
#	src/object_gui.cpp
#	src/openttd.cpp
#	src/openttd.h
#	src/order_gui.cpp
#	src/os/windows/font_win32.cpp
#	src/rail_gui.cpp
#	src/road.cpp
#	src/road_gui.cpp
#	src/saveload/afterload.cpp
#	src/saveload/saveload.h
#	src/script/api/script_controller.cpp
#	src/script/api/script_roadtypelist.cpp
#	src/script/script_config.cpp
#	src/script/script_config.hpp
#	src/script/script_instance.cpp
#	src/script/script_scanner.cpp
#	src/script/squirrel.cpp
#	src/script/squirrel_helper.hpp
#	src/settings_gui.cpp
#	src/settings_internal.h
#	src/settings_type.h
#	src/table/settings/network_private_settings.ini
#	src/timetable_gui.cpp
#	src/vehicle.cpp
#	src/vehicle_base.h
#	src/window_gui.h
1 year ago
Patric Stout b67ff36a13 Fix: [CI] enable audio (alsa / jack / pulse) for generic Linux builds (#11051)
SDL needs to see the header files when compiling to enable those
drivers runtime. It doesn't actually link against them: it just
needs to see the headers.

(cherry picked from commit ff050ea1d9)
1 year ago
Patric Stout ff050ea1d9
Fix: [CI] enable audio (alsa / jack / pulse) for generic Linux builds (#11051)
SDL needs to see the header files when compiling to enable those
drivers runtime. It doesn't actually link against them: it just
needs to see the headers.
1 year ago
Jonathan G Rennison b6f5cd40e6 Github: Disable survey key request for now 1 year ago
Jonathan G Rennison 77b3c5726b Github: Re-add changes to upstream release workflows 1 year ago
Jonathan G Rennison 4f7cb1e498 Github: Change release workflows to match upstream 1 year ago
Owen Rudge 5a7098cb41 Change: [Actions] Use notarytool for notarization instead of gon 1 year ago
Jonathan G Rennison d9e7d2a7fd MacOS: Fix OSX deployment target in CMake and ci-build 1 year ago
Jonathan G Rennison ce3707fbbf MacOS: Bump deployment target to 10.13 1 year ago
Jonathan G Rennison 2ed248a61d Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/ci-build.yml
#	.github/workflows/release-linux.yml
#	src/aircraft_cmd.cpp
#	src/airport_gui.cpp
#	src/articulated_vehicles.cpp
#	src/build_vehicle_gui.cpp
#	src/company_gui.cpp
#	src/genworld_gui.cpp
#	src/gfx_layout.cpp
#	src/misc_gui.cpp
#	src/newgrf.cpp
#	src/newgrf_config.h
#	src/newgrf_engine.cpp
#	src/news_gui.cpp
#	src/order_gui.cpp
#	src/roadveh_cmd.cpp
#	src/saveload/saveload.h
#	src/saveload/vehicle_sl.cpp
#	src/ship_cmd.cpp
#	src/statusbar_gui.cpp
#	src/table/settings/network_private_settings.ini
#	src/table/settings/network_settings.ini
#	src/toolbar_gui.cpp
#	src/train_cmd.cpp
#	src/vehicle_gui.cpp
1 year ago
Jonathan G Rennison d6b8fc9fe8 Github: Fix CI build checkout with workflow dispatch ref 1 year ago
Jonathan G Rennison 6091d7470c Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release-macos.yml
#	src/company_gui.cpp
#	src/linkgraph/linkgraph.cpp
#	src/newgrf_debug_gui.cpp
#	src/strgen/strgen_base.cpp
#	src/timetable_gui.cpp
1 year ago
Jonathan G Rennison fd4d4d341d Merge branch 'master' into jgrpp
# Conflicts:
#	src/animated_tile.cpp
#	src/cargopacket.h
#	src/cheat_gui.cpp
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/date.cpp
#	src/disaster_vehicle.cpp
#	src/dock_gui.cpp
#	src/economy.cpp
#	src/engine.cpp
#	src/error_gui.cpp
#	src/fontcache/spritefontcache.cpp
#	src/game/game_gui.cpp
#	src/game/game_text.cpp
#	src/gfx.cpp
#	src/graph_gui.cpp
#	src/highscore_gui.cpp
#	src/industry_cmd.cpp
#	src/lang/dutch.txt
#	src/lang/english_AU.txt
#	src/lang/english_US.txt
#	src/lang/finnish.txt
#	src/lang/french.txt
#	src/lang/italian.txt
#	src/lang/portuguese.txt
#	src/lang/russian.txt
#	src/lang/turkish.txt
#	src/lang/vietnamese.txt
#	src/main_gui.cpp
#	src/misc_gui.cpp
#	src/network/network_gui.cpp
#	src/network/network_server.cpp
#	src/newgrf.cpp
#	src/newgrf.h
#	src/newgrf_generic.cpp
#	src/news_gui.cpp
#	src/openttd.cpp
#	src/os/unix/unix.cpp
#	src/os/windows/font_win32.cpp
#	src/os/windows/win32.cpp
#	src/rail_gui.cpp
#	src/road_gui.cpp
#	src/saveload/afterload.cpp
#	src/saveload/misc_sl.cpp
#	src/saveload/oldloader_sl.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/script/script_gui.cpp
#	src/settings_table.cpp
#	src/signs_gui.cpp
#	src/smallmap_gui.cpp
#	src/smallmap_gui.h
#	src/spritecache.cpp
#	src/spritecache.h
#	src/spriteloader/grf.cpp
#	src/station_cmd.cpp
#	src/statusbar_gui.cpp
#	src/stdafx.h
#	src/strgen/strgen_base.cpp
#	src/subsidy.cpp
#	src/table/settings/difficulty_settings.ini
#	src/texteff.cpp
#	src/timetable_cmd.cpp
#	src/timetable_gui.cpp
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/town_gui.cpp
#	src/townname.cpp
#	src/vehicle.cpp
#	src/waypoint_cmd.cpp
#	src/widgets/dropdown.cpp
#	src/window.cpp
1 year ago
Patric Stout 7634553d22 Feature: opt-in survey when exiting a game
On first start-up, the game will ask if you want to participate
in our automated survey. You have to opt-in, and can easily opt-out
(via the Options) at any time.

When opt-in, whenever you exit a game, a JSON blob will be send
to the survey server hosted by OpenTTD. This JSON blob contains
information that gives a global picture of the game just played:
- What settings were used
- How many humans vs AIs
- How long the game has been played
- Basic information about the OS / CPU

All this information is kept very generic, so there is no
chance we send private information to our survey server.
Nothing in the JSON blob could identify you as a person; it
mostly tells about the game played. At any time you can see
what the JSON blob includes, by pressing the "Preview Survey
Results" button in-game.
1 year ago
Patric Stout 021c45c4f6 Add: [CMake] JSON library (nlohmann) 1 year ago
Loïc Guilloux 7e74232e56
Change: [Actions] Use -fuse-ld=lld and Ninja for MinGW (#10785)
And some miscellaneous things while touching the file
1 year ago
Rubidium 192ed55462 Change: disable precompiled headers on Linux (GCC - Dedicated) target to ensure those still build 1 year ago
Patric Stout 62f9bdb939
Fix: [CI] no need to build unit-tests for releases (#10759)
We don't run them anyway. And LTO can be darn slow.
1 year ago
Patric Stout fbad57ecf7
Change: [CI] update emscripten and liblzma to the latest version (#10757) 1 year ago
Patric Stout 81d4fa6999 Feature: drop ICU-lx in favour of directly interfacing with harfbuzz
This means we have RTL support again with ICU 58+. It makes use of:
- ICU for bidi-itemization
- ICU for script-itemization
- OpenTTD for style-itemization
- harfbuzz for shaping
1 year ago
Patric Stout 73bdd4bdd7
Fix: [CI] typo in Windows release jobname (#10742) 1 year ago
Patric Stout a255b61514
Change: [CI] Use a custom name for matrix runs (#10723)
By default, GitHub adds all arguments of the matrix between ().
This is fine sometimes, but in other times it becomes a very
lengthy line.

With this commit, we decide what is between those (), making it
a lot more readable.
1 year ago
Owen Rudge 173ed81dbe Change: [Actions] Upgrade import-codesign-certs dependency in macOS build workflow 1 year ago
SamuXarick f8b5661d28 Change: Allow GS access to ScriptGroup functions 1 year ago
Rubidium 43a7e54067 Add: unit test functionality using catch2 1 year ago
Jonathan G Rennison 3d1b0af8f6 Merge branch 'master' into jgrpp
# Conflicts:
#	src/newgrf_debug_gui.cpp
#	src/object_cmd.cpp
#	src/object_gui.cpp
1 year ago
Tyler Trahan 3611082f8e
Codechange: [CodeQL] Disable CodeQL check on trivial switch statements (#10537) 1 year ago
Jonathan G Rennison 25ed7c2b53 Merge branch 'master' into jgrpp
# Conflicts:
#	src/music.cpp
#	src/script/api/script_company.cpp
#	src/script/api/script_event_types.cpp
#	src/script/api/script_group.cpp
#	src/script/api/script_object.cpp
#	src/script/api/script_road.cpp
1 year ago
Rubidium 2fffde0891 Add: workflow and script for checking missing mode enforcements 1 year ago
Jonathan G Rennison 2ea1766677 Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/commit-checker.yml
#	src/industry_cmd.cpp
#	src/industry_gui.cpp
#	src/landscape.cpp
#	src/linkgraph/linkgraph_gui.cpp
#	src/order_base.h
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/saveload/afterload.cpp
#	src/saveload/league_sl.cpp
#	src/saveload/saveload.h
#	src/script/api/script_object.hpp
#	src/script/squirrel_helper.hpp
#	src/settings_table.cpp
#	src/station_cmd.cpp
#	src/table/settings.h.preamble
#	src/tree_cmd.cpp
#	src/tree_map.h
#	src/vehicle.cpp
#	src/waypoint_cmd.cpp
1 year ago
Jonathan G Rennison ae7c86c49d Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release-linux.yml
#	.github/workflows/release-macos.yml
#	src/industry_cmd.cpp
#	src/industry_cmd.h
#	src/network/core/http_curl.cpp
#	src/network/core/tcp_http.cpp
#	src/network/core/tcp_http.h
#	src/network/network_content.h
#	src/script/api/script_goal.cpp
#	src/script/api/script_industry.cpp
#	src/script/api/script_league.cpp
#	src/script/api/script_story_page.cpp
#	src/script/api/script_town.cpp
#	src/train.h
#	src/train_cmd.cpp
1 year ago
Patric Stout 6fcc8727f5 Change: [Actions] cancel previous run if pushing new PR
Lately we had a few times that people pushed to their PR branch
a few times to make small changes. Sadly, this triggers all CIs
every time, which takes ~20 minutes. As we are limited in the
amount of runners we get assigned to us, this means all other CI,
even for other repositories within OpenTTD, are delayed too.

We can avoid this by simply cancelling old runs when a new PR is
pushed. There is a downside: sometimes people already push a new
commit, but still want to know if the old one passed. That will
no longer be possible with this change.
1 year ago
Jonathan G Rennison e644f34bf8 Github: Change CMake type to Release for MacOS release builds 1 year ago
Jonathan G Rennison 2a330961d4 Github: Change CMake options for Linux release builds
Change CMake type to Release
Enable LTO and debug section compression
1 year ago
Loïc Guilloux ad6cd18cb4 Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS (#10488)
(cherry picked from commit 27cbb81df5)
1 year ago
Loïc Guilloux 27cbb81df5
Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS (#10488) 1 year ago
Patric Stout 16352559f2
Change: release with (much) newer versions of dependencies for Generic Linux (#10484) 1 year ago
Jonathan G Rennison 2b4b2f605d Github: Enable workflow_dispatch for codeql 1 year ago
frosch 274bcf8d80 Fix 64523709: rpm uses different package names than deb. 1 year ago
Patric Stout 64523709bf
Add: use https:// for content-service connections (#10448)
This requires the use of WinHTTP (for Windows) or libcurl (for all
others except Emscripten). Emscripten does not support http(s)
calls currently.

On Linux it requires ca-certificates to be installed, so the HTTPS
certificate can be validated. It is really likely this is installed
on any modern machine, as most connections these days are HTTPS.

(On MacOS and Windows the certificate store is filled by default)

Reminder: in case the http(s):// connection cannot be established,
OpenTTD falls back to a custom TCP-based connection to fetch the
content from the content-service. Emscripten will always do this.
1 year ago
Patric Stout be0d65d978 Add: [Actions] upload releases to GOG automatically 1 year ago
Patric Stout 146bd74077 Change: [Actions] release Windows Store files to CDN
Currently they had a name that the rest of our system cannot
deal with correctly. "cert.pfx" is also not very descriptive from
a system as a whole.

As such, we now name it like any other file, so it can be published
safely to the CDN.
1 year ago
Patric Stout 425ba82676 Change: [Actions] split GitHub workflows into several smaller ones 1 year ago
Patric Stout 9fd88af537 Remove: [Actions] Ubuntu/Debian release binaries (instead, use the Generic) 1 year ago
Jonathan G Rennison 1bfd96c7f2 Merge branch 'master' into jgrpp
# Conflicts:
#	src/3rdparty/fmt/core.h
#	src/command_type.h
#	src/console_cmds.cpp
#	src/core/overflowsafe_type.hpp
#	src/landscape.cpp
#	src/network/network.cpp
#	src/newgrf_object.h
#	src/object_cmd.cpp
#	src/order_gui.cpp
#	src/saveload/vehicle_sl.cpp
#	src/script/api/script_industrytype.cpp
#	src/script/api/script_object.hpp
#	src/script/api/script_town.cpp
#	src/table/object_land.h
#	src/timetable_cmd.cpp
#	src/tree_cmd.cpp
#	src/vehicle_gui.cpp
#	src/window.cpp
1 year ago
rubidium42 5e6dac6fd4 Add: enable CodeQL code scanning
As a replacement to the now deprecated LGTM(.com)
1 year ago
Jonathan G Rennison 0310fb0cdc Merge branch 'master' into jgrpp
# Conflicts:
#	src/lang/czech.txt
#	src/lang/galician.txt
#	src/lang/german.txt
#	src/order_cmd.cpp
#	src/saveload/afterload.cpp
#	src/ship.h
#	src/vehicle.cpp
2 years ago
Loïc Guilloux 8f350c9ae6
Fix: [Actions] preview_build failure due to git upgrade (#10323) 2 years ago
Jonathan G Rennison a1f6aaa58f Merge branch 'master' into jgrpp
# Conflicts:
#	src/lang/korean.txt
#	src/saveload/afterload.cpp
#	src/saveload/ai_sl.cpp
#	src/saveload/game_sl.cpp
#	src/script/script_instance.cpp
2 years ago
clienthax 25f247047d
Update: emsdk to 3.1.28 and lzma (for emsdk) to 5.4.0 (#10234)
Co-authored-by: Patric Stout <truebrain@openttd.org>
2 years ago
Czcibor Bohusz-Dobosz 7425660b3e
Change: Set minimum macOS version to 10.13 (#10253) 2 years ago
Michael Lutz c4e655b1d4
Remove: [Actions] Ubuntu Bionic and Debian Buster from release workflow. (#10115) 2 years ago
Jonathan G Rennison 38571cf0da Merge branch 'master' into jgrpp
# Conflicts:
#	src/landscape.cpp
#	src/lang/frisian.txt
#	src/lang/korean.txt
#	src/lang/russian.txt
2 years ago
glx22 87d1bd895a Fix f6530f3c2: [Actions] set-output was not correctly converted 2 years ago
glx22 8ffe59373f Update: [Actions] use annotation-check v3 2 years ago
Loïc Guilloux f6530f3c2d
Codechange: [Actions] set-output is deprecated (#10089) 2 years ago
Jonathan G Rennison 1e7ca9f71a Merge branch 'master' into jgrpp 2 years ago
Patric Stout 15f4d7c04c
Remove: [GitHub] old configuration file for stale-bot (#9998)
This bot was deactivated months (years?) ago.
2 years ago
Jonathan G Rennison 142a5a95ec Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release.yml
#	src/goal_cmd.h
#	src/industry_cmd.cpp
2 years ago
Aaron Katzin 2fe8a257ac
Add: [Actions] Ubuntu Jammy Jellyfish (22.04) build for releases (#9881) 2 years ago
Jonathan G Rennison 13557d868a Disable uninitialised warnings for MSYS/MinGW CI build 2 years ago
Jonathan G Rennison 5b7db9d849 Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/ci-build.yml
#	.github/workflows/commit-checker.yml
#	src/command.cpp
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/crashlog.cpp
#	src/economy.cpp
#	src/lang/english.txt
#	src/lang/german.txt
#	src/lang/korean.txt
#	src/misc_gui.cpp
#	src/newgrf_config.cpp
#	src/openttd.cpp
#	src/settings_gui.cpp
#	src/ship_cmd.cpp
#	src/table/settings/gui_settings.ini
2 years ago
Frazer Smith 9bdc1e8f04 Update: bump peter-evans/repository-dispatch from 1 to 2 2 years ago
Frazer Smith 19b838dd60 Update: bump actions/download-artifact from 2 to 3 2 years ago
Frazer Smith 9162ac9d37 Update: bump actions/checkout from 2 to 3 2 years ago
Frazer Smith 2a2f80bb71 Update: bump actions/cache from 2 to 3 2 years ago
Frazer Smith 33dabc42bb Update: bump actions/upload-artifact from 2 to 3 2 years ago
Owen Rudge 5a6ea11ead Feature: [Actions] Package builds for the Windows Store automatically 2 years ago
Jonathan G Rennison 34af4844d1 Merge branch 'master' into jgrpp 2 years ago
Patric Stout 8537fa7206
Fix: [Actions] Remove Ubuntu:groovy from release pipeline (#9845)
It no longer exists upstream. Let's focus on LTS only for now.
2 years ago
Owen Rudge 1bfbcff71e Change: [Actions] Switch back to primary source for 'gon' in macOS build job
This reverts commit 7a97a33598.
2 years ago
Owen Rudge 7a97a33598 Fix: [Actions] Switch source for 'gon' in macOS build job 2 years ago
Loïc Guilloux 1a17b6c8f6
Change: [Actions] Remove VS2017 and restore VS2019 for CI (#9835) 2 years ago
Jonathan G Rennison 16e4b84a2f Github: Disable installing gon in OSX release build 2 years ago
Jonathan G Rennison e5ae88e8ea Github: Disable import windows signing cert in release workflow 2 years ago
Jonathan G Rennison 3645bcfe62 Github: Disable auto-running of release workflow 2 years ago
Jonathan G Rennison 1c7f6b97a5 Update Github release file to fix compile and distro issues 3 years ago
Jonathan G Rennison 0691b25e17 Merge branch 'master' into jgrpp
# Conflicts:
#	src/saveload/afterload.cpp
3 years ago
Patric Stout 0cbe94256e
Change: [Emscripten] update to 2.0.34 and use Release over RelWithDebInfo (#9696)
It turns out that having "-g" in the compile-statement causes
Emscripten to pick -g3, which makes for very big binaries. This
is very likely not your intention when building Emscripten, as
smaller really is better.

For comparison, with RelWithDebInfo the binary is ~80MB. With
Release it is ~7.4MB.
3 years ago