summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2021-06-26Fix #9386: compilers failing to compile with LTO by using variants instead ↵rubidium42
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.
2021-06-10Codechange: [WIN32] Reduce manual dynamic loading as WinXP is the minimum ↵glx22
version
2021-06-10Fix #9329: [CMake] FindVersion.cmake relied on internal cmake variable (#9330)Loïc Guilloux
2021-05-30Codechange: rename _SQ64 into POINTER_IS_64BIT (#9313)Patric Stout
2021-05-24Fix: Building on Haikumilek7
2021-05-09Fix: [MinGW] Reapply 48fd7b27 to fix launch on Windows 7 x64 (#9225)Loïc Guilloux
2021-05-01Fix d4f0b6f4: [CMake] CMAKE_PROJECT_VERSION_XXX are not in CMake 3.9 (#9154)Loïc Guilloux
2021-04-20Fix: [CMake] Auto-fill version details in rev.cpp and ottres.rc (#9066)Loïc Guilloux
2021-04-06Change: [CMake] Improve 'In-source build' error message (#8955)Loïc Guilloux
2021-04-02Change: [CMake] Copy AI/GS compatibility files to build dir (#8906)Loïc Guilloux
2021-03-09Add: [CMake] Install menu and media filesglx22
2021-03-04Fix: [CMake] Skip detection for unused libs for dedicated buildsglx22
2021-02-27Fix: [CMake] libpng header/library mismatch for macosglx22
2021-02-27Fix: don't link to OpenGL with SDL2 as backend; SDL2 dynamically loads it ↵Patric Stout
(#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.
2021-02-22Add: [Win32] Video driver that uses OpenGL to transfer the video buffer to ↵Michael Lutz
the screen.
2021-02-21Fix: Allow building with Allegro and without SDL on Linuxmilek7
2021-02-14Add: [OSX] Native font rendering without using FreeType.Michael Lutz
2021-02-13Change: [OSX] Use a layer-backed view to speed up drawing.Michael Lutz
2021-02-08Change: Convert .md to .rtf for Windows/Mac packagesOwen Rudge
2021-02-07Change: [CMake] Bump minimum version to 3.9glx22
2021-02-07Fix: [CMake] Restore 'games' as default install bindir (#8629)Loïc Guilloux
2021-02-05Fix: [CMake] os/windows/openttd.manifest is not a generated fileglx22
2021-02-05Feature: [Actions / CMake] support for generic linux builds (#8641)Patric Stout
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.
2021-01-03Change: [OSX] Compiling the Cocoa/Quartz video driver cannot be disabled ↵Michael Lutz
anymore.
2021-01-02Codechange: Drop libxdg-basedir dependency in favour of finding the ↵Charles Pigott
directories ourselves
2020-12-25Fix: [Emscripten] compile with exceptions enabled, as our AIs depend on itPatric Stout
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
2020-12-15Add: support for emscripten (play-OpenTTD-in-the-browser)Patric Stout
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>
2020-12-14Codechange: switch to C++17 on all platforms.frosch
2020-12-13Add: [CMake] Option to only build tools/docsglx22
2020-12-12Add: [CMake] targets to generate documentationglx22
2020-12-08Fix: FreeType is still required on macOSOwen Rudge
2020-12-06Change: don't encourage the use of LZOPatric Stout
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.
2020-12-04Fix: [CMake] cross-compiling requires native toolsglx22
2020-09-25Codechange: Set CMAKE_BUILD_TYPE to default to debug if not otherwise setCharles Pigott
2020-09-25Codechange: Make codestyle for CMake files consistent for 'control' statementsCharles Pigott
2020-07-16Change: rewrote generate_widget in CMakeglx
2020-07-10Add: [CMake] Source group definitions to create file filters in generated ↵Michael Lutz
project files (like the old MSVC projects).
2020-07-02Add: [CMake] Allow renaming of openttd binaryglx22
2020-06-30Fix: don't search for SDL, etc., on macOSDan Villiom Podlaski Christiansen
2020-06-30Fix: set Mac deployment targetDan Villiom Podlaski Christiansen
This silences an awful lot of warnings.
2020-06-30Fix: don't use ICU on macOSDan Villiom Podlaski Christiansen
2020-06-18Fix: [CMake] Fix install paths using GNUInstallDirsDan Church
2020-06-12Add: [CMake] Always export compile commands (#8199)Frédéric Simonis
2020-06-07Fix: [CMake] Error when SDL2 provides SDL2ConfigFrédéric Simonis
2020-06-05Add: create bundles via CPackPatric Stout
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.
2020-06-05Add: introduce CMake for project managementPatric Stout
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.