Commit Graph

47 Commits (eca73a810c19ed5cfb3f24cb5560d0735e19ea00)

Author SHA1 Message Date
Patric Stout eca73a810c Change: rebrand 1.12.0 to 12.0
One question that keeps popping up: "when do we release 2.0?".
NewGRF will force that at least 1.16 will be 2.0, but to not wait
for this, let's drop the "1." and be for ever done with that
conversation.

We are following in the footstep of giants here.
3 years ago
rubidium42 98e653dacc Fix #9386: compilers failing to compile with LTO by using variants instead of new + unique_ptr
With std::variant all memory can be figured out at compile time, so the compiler needs to keep track of fewer elements. It also saves out a unique_ptr and its memory management, over a slight impact for resolving a setting.
3 years ago
glx22 5d05c4919b Codechange: [WIN32] Reduce manual dynamic loading as WinXP is the minimum version 3 years ago
Loïc Guilloux 076f3d26c2
Fix #9329: [CMake] FindVersion.cmake relied on internal cmake variable (#9330) 3 years ago
Patric Stout bcd7a7aafe
Codechange: rename _SQ64 into POINTER_IS_64BIT (#9313) 3 years ago
milek7 36bcd2956a Fix: Building on Haiku 3 years ago
Loïc Guilloux e162d0a55c
Fix: [MinGW] Reapply 48fd7b27 to fix launch on Windows 7 x64 (#9225) 3 years ago
Loïc Guilloux 2985277bec
Fix d4f0b6f4: [CMake] CMAKE_PROJECT_VERSION_XXX are not in CMake 3.9 (#9154) 3 years ago
Loïc Guilloux d4f0b6f434
Fix: [CMake] Auto-fill version details in rev.cpp and ottres.rc (#9066) 3 years ago
Loïc Guilloux 39b4a8e67e
Change: [CMake] Improve 'In-source build' error message (#8955) 3 years ago
Loïc Guilloux 799eb31ff1
Change: [CMake] Copy AI/GS compatibility files to build dir (#8906) 3 years ago
glx22 35a228f78f Add: [CMake] Install menu and media files 3 years ago
glx22 1d79f55a46 Fix: [CMake] Skip detection for unused libs for dedicated builds 3 years ago
glx22 54fb4c04e3 Fix: [CMake] libpng header/library mismatch for macos 3 years ago
Patric Stout dc7ba33b51
Fix: don't link to OpenGL with SDL2 as backend; SDL2 dynamically loads it (#8745)
Although for developers this doesn't change anything, for our
linux-generic binary it changes everything. Without this, the
OpenGL dynamic library is dragged in as dependency, and as it
depends on X11, that will be dragged in too. This is not
something we prefer to have, as that won't run on as many
machines as it could.

SDL2 doesn't depend on OpenGL directly, as it tries to load it
in on runtime. If found, it would work in exactly the same way
as if we would link to OpenGL ourselves. As such, this is
the best of both worlds: our linux-generics have less linked
dependencies, and developers won't notice any difference.

As a side-effect, if someone uses linux-generic on a machine
that does not have any OpenGL package installed, it will
gracefully fall back to the default backend of SDL instead.
3 years ago
Michael Lutz ef478ade64 Add: [Win32] Video driver that uses OpenGL to transfer the video buffer to the screen. 3 years ago
milek7 b749d6f1cb Fix: Allow building with Allegro and without SDL on Linux 3 years ago
Michael Lutz 6755ff63e1 Add: [OSX] Native font rendering without using FreeType. 3 years ago
Michael Lutz 43326d11d8 Change: [OSX] Use a layer-backed view to speed up drawing. 3 years ago
Owen Rudge 395e015282 Change: Convert .md to .rtf for Windows/Mac packages 3 years ago
glx22 2cbfcd2327 Change: [CMake] Bump minimum version to 3.9 3 years ago
Loïc Guilloux f7ac2969ef
Fix: [CMake] Restore 'games' as default install bindir (#8629) 3 years ago
glx22 99448eedca Fix: [CMake] os/windows/openttd.manifest is not a generated file 3 years ago
Patric Stout 05df7996a4
Feature: [Actions / CMake] support for generic linux builds (#8641)
These bundles can be opened on any "modern" Linux machine with
a driver that SDL2 supports.

Machines needs at least glibc 2.15, which was released 10 years ago.
It is build with CentOS 7 as base, and only assumes the following
libraries are available on the system:
- libc
- libdl
- libgcc_s
- libpthread
- librt
- libstdc++

All other libraries the game depends on are bundled together with
the game, so users don't need any library installed to use this
bundle. The downside of course is that this increases the binary
size a bit: 30 MiB of libraries are in this bundle.

RPATH is used to make ld-linux find the folder libraries are
stored in; however, system libraries are always used before these,
in the assumption libraries on the user system are more up-to-date.

Using -DOPTION_PACKAGE_DEPENDENCIES=ON switches on packaging
of libraries in the "lib" folder. This requires CMake 3.16 to
be installed; otherwise it will fail.
3 years ago
Michael Lutz a61a741683 Change: [OSX] Compiling the Cocoa/Quartz video driver cannot be disabled anymore. 3 years ago
Charles Pigott 3dfee979a7 Codechange: Drop libxdg-basedir dependency in favour of finding the directories ourselves 3 years ago
Patric Stout e0b953b804 Fix: [Emscripten] compile with exceptions enabled, as our AIs depend on it
Also parts of the saveload code does, and some other places. This
does slow down builds, but for most computers this will not be
measurable. At least, the ones I had access to I could not find
a difference in FPS, mainly as that is heavily limited by the Hz
of the screens of the computer.

Either way, it is better to have a full functional game than a
fast one in my opinion
3 years ago
Patric Stout d15dc9f40f Add: support for emscripten (play-OpenTTD-in-the-browser)
Emscripten compiles to WASM, which can be loaded via
HTML / JavaScript. This allows you to play OpenTTD inside a
browser.

Co-authored-by: milek7 <me@milek7.pl>
3 years ago
frosch 5d278b62cc Codechange: switch to C++17 on all platforms. 3 years ago
glx22 d1fa6b129c Add: [CMake] Option to only build tools/docs 3 years ago
glx22 6fae0b83d9 Add: [CMake] targets to generate documentation 3 years ago
Owen Rudge 6e689e2038 Fix: FreeType is still required on macOS 3 years ago
Patric Stout ad47ebc1a8 Change: don't encourage the use of LZO
LZO was used before the first version we track in our version
control system, which dates back to Aug 2004. Somewhere before
that time a few savegames / scenarios exist which use LZO. No
other savegame / scenario does since then. Let's not encourage
people to install something that ancient.

There are no scenarios on BaNaNaS that require LZO.
3 years ago
glx22 a06fe8e8a7 Fix: [CMake] cross-compiling requires native tools 3 years ago
Charles Pigott 85ca1c535e Codechange: Set CMAKE_BUILD_TYPE to default to debug if not otherwise set 4 years ago
Charles Pigott 348c231e12 Codechange: Make codestyle for CMake files consistent for 'control' statements 4 years ago
glx 8794c61f25 Change: rewrote generate_widget in CMake 4 years ago
Michael Lutz 00eccbe298 Add: [CMake] Source group definitions to create file filters in generated project files (like the old MSVC projects). 4 years ago
glx22 97592c4093 Add: [CMake] Allow renaming of openttd binary 4 years ago
Dan Villiom Podlaski Christiansen 7fd7b51593 Fix: don't search for SDL, etc., on macOS 4 years ago
Dan Villiom Podlaski Christiansen c593893b56 Fix: set Mac deployment target
This silences an awful lot of warnings.
4 years ago
Dan Villiom Podlaski Christiansen 04c050f93e Fix: don't use ICU on macOS 4 years ago
Dan Church 506598a80a Fix: [CMake] Fix install paths using GNUInstallDirs 4 years ago
Frédéric Simonis fb7723a9d7
Add: [CMake] Always export compile commands (#8199) 4 years ago
Frédéric Simonis 90e849198f Fix: [CMake] Error when SDL2 provides SDL2Config 4 years ago
Patric Stout b7643b1d36 Add: create bundles via CPack
CPack works closely together with CMake to do the right thing in
terms of bundling (called 'package'). This generates all the
packaging we need, and some more.
4 years ago
Patric Stout 56d54cf60e Add: introduce CMake for project management
CMake works on all our supported platforms, like MSVC, Mingw, GCC,
Clang, and many more. It allows for a single way of doing things,
so no longer we need shell scripts and vbs scripts to work on all
our supported platforms.

Additionally, CMake allows to generate project files for like MSVC,
KDevelop, etc.

This heavily reduces the lines of code we need to support multiple
platforms from a project perspective.

Addtiionally, this heavily improves our detection of libraries, etc.
4 years ago