Commit Graph

95 Commits

Author SHA1 Message Date
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
2020-12-25 20:56:25 +01:00
Jonathan G Rennison
8b94d92158 CMake: Suppress warning messages when Fcitx is not found 2020-12-15 17:47:57 +00:00
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>
2020-12-15 15:46:39 +01:00
frosch
5d278b62cc Codechange: switch to C++17 on all platforms. 2020-12-14 23:50:50 +01:00
glx22
d1fa6b129c Add: [CMake] Option to only build tools/docs 2020-12-13 22:46:46 +01:00
glx22
6fae0b83d9 Add: [CMake] targets to generate documentation 2020-12-12 15:48:04 +01:00
Jonathan G Rennison
bad2cd0677 CMake: Do not look for fctix on Apple 2020-12-12 00:10:52 +00:00
Owen Rudge
6e689e2038 Fix: FreeType is still required on macOS 2020-12-08 09:24:15 +00:00
Jonathan G Rennison
4da3cfcf56 Merge branch 'master' into jgrpp
# Conflicts:
#	CMakeLists.txt
#	src/bootstrap_gui.cpp
2020-12-07 17:56:44 +00:00
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.
2020-12-06 19:25:46 +00:00
glx22
a06fe8e8a7 Fix: [CMake] cross-compiling requires native tools 2020-12-04 09:49:31 +00:00
Jonathan G Rennison
d85a529f87 Merge branch 'master' into jgrpp 2020-10-14 17:38:23 +01:00
Charles Pigott
85ca1c535e Codechange: Set CMAKE_BUILD_TYPE to default to debug if not otherwise set 2020-09-25 21:50:06 +01:00
Charles Pigott
348c231e12 Codechange: Make codestyle for CMake files consistent for 'control' statements 2020-09-25 14:43:13 +01:00
Jonathan G Rennison
5970c936a6 CMake: Use freetype on Apple
See: #183, #188
2020-09-14 20:51:30 +01:00
Jonathan G Rennison
5b78090a61 Merge branch 'master' into jgrpp
# Conflicts:
#	CMakeLists.txt
#	src/saveload/town_sl.cpp
#	src/screenshot.h
#	src/script/api/ai/ai_date.hpp.sq
#	src/script/api/ai/ai_marine.hpp.sq
#	src/script/api/ai/ai_station.hpp.sq
#	src/script/api/game/game_date.hpp.sq
#	src/script/api/game/game_marine.hpp.sq
#	src/script/api/game/game_station.hpp.sq
#	src/script/api/game/game_window.hpp.sq
#	src/script/api/script_window.hpp
#	src/script/api/template/template_window.hpp.sq
#	src/signal.cpp
#	src/statusbar_gui.cpp
#	src/toolbar_gui.cpp
#	src/viewport.cpp
#	src/viewport_func.h
2020-08-27 18:31:09 +01:00
glx
8794c61f25 Change: rewrote generate_widget in CMake 2020-07-16 00:53:26 +02:00
Jonathan G Rennison
68f216cad6 CMake: Fix compilation on CMake < 3.12
Bump minimum version to 3.6
2020-07-13 21:23:37 +01:00
Jonathan G Rennison
7467051331 Merge branch 'master' into jgrpp
# Conflicts:
#	.gitignore
#	src/network/network_server.cpp
#	src/vehicle_gui.cpp
2020-07-12 12:29:28 +01:00
Michael Lutz
00eccbe298 Add: [CMake] Source group definitions to create file filters in generated project files (like the old MSVC projects). 2020-07-10 19:33:00 +02:00
Jonathan G Rennison
737ced9f50 Merge branch 'master' into jgrpp 2020-07-07 17:28:19 +01:00
Jonathan G Rennison
e39a1d2b6e CMake: Copy bin/ subdirs to build directory 2020-07-04 21:04:16 +01:00
glx22
97592c4093 Add: [CMake] Allow renaming of openttd binary 2020-07-02 21:18:14 +02:00
Jonathan G Rennison
903b0fdd39 CMake: Windows: Add usp10 lib 2020-07-02 00:04:44 +01:00
Jonathan G Rennison
1304d7c8b6 CMake: Add DbgHelp define for MinGW 2020-07-01 00:25:50 +01:00
Jonathan G Rennison
3adeff1883 Merge branch 'master' into jgrpp
# Conflicts:
#	CMakeLists.txt
#	cmake/CompileFlags.cmake
#	src/bridge_gui.cpp
#	src/saveload/afterload.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/saveload/town_sl.cpp
#	src/screenshot.cpp
#	src/screenshot.h
#	src/toolbar_gui.cpp
#	src/town.h
#	src/town_cmd.cpp
2020-06-30 21:43:04 +01:00
Jonathan G Rennison
5075d8cdca CMake: Fix builtins compiler condition 2020-06-30 21:04:20 +01:00
glx22
909c9656ce Fix: [CMake] cross-compiling requires native tools
(cherry picked from commit fdaf0d0b2f82701c8ea1e9a1125415351cf49e57)
2020-06-30 20:56:45 +01:00
Dan Villiom Podlaski Christiansen
7fd7b51593 Fix: don't search for SDL, etc., on macOS 2020-06-30 09:43:00 +01:00
Dan Villiom Podlaski Christiansen
c593893b56 Fix: set Mac deployment target
This silences an awful lot of warnings.
2020-06-30 09:43:00 +01:00
Dan Villiom Podlaski Christiansen
04c050f93e Fix: don't use ICU on macOS 2020-06-30 09:43:00 +01:00
Jonathan G Rennison
33c2150c49 CMake: Add demangle and BFD to MinGW 2020-06-29 12:04:05 +01:00
Jonathan G Rennison
10aab3e3a3 CMake: Add BFD, support new BFD API 2020-06-28 21:57:02 +01:00
Jonathan G Rennison
73edc5aaba CMake: Add ucontext on Mac/OSX 2020-06-28 21:57:02 +01:00
Jonathan G Rennison
9470ad050b CMake: Fix configure defines 2020-06-28 21:57:02 +01:00
Jonathan G Rennison
0fb31fd693 CMake: Add fcitx 2020-06-28 21:57:02 +01:00
Jonathan G Rennison
e05fa5c1c3 CMake: Add builtins 2020-06-28 21:57:02 +01:00
Jonathan G Rennison
39eaa94435 CMake: Add ucontext 2020-06-28 21:57:02 +01:00
Jonathan G Rennison
6b7668dc83 CMake: Add sigaction, sigaltstack, self dbg 2020-06-28 21:57:02 +01:00
Jonathan G Rennison
a8c3ceb3c9 CMake: Add libdl and demangle support 2020-06-28 21:57:02 +01:00
Dan Church
506598a80a Fix: [CMake] Fix install paths using GNUInstallDirs 2020-06-18 21:18:53 +01:00
Frédéric Simonis
fb7723a9d7
Add: [CMake] Always export compile commands (#8199) 2020-06-12 16:33:04 +02:00
Frédéric Simonis
90e849198f Fix: [CMake] Error when SDL2 provides SDL2Config 2020-06-07 13:36:57 +02:00
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.
2020-06-05 19:36:05 +02:00
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.
2020-06-05 19:36:05 +02:00