Commit Graph

75 Commits

Author SHA1 Message Date
a5268beb14 test 2023-11-04 14:14:07 +01:00
sfan5
8cccd75e81
Android build via CMake (#13528)
* the thing

* the thing 2
2023-05-26 15:21:23 +02:00
DS
0f496f1ed2
Always build locale files in CMAKE_SOURCE_DIR if building RUN_IN_PLACE (#13272) 2023-03-27 20:02:48 +02:00
sfan5
e8ee4cb40d Defer searching for libintl to CMake
resolves #12800
2022-10-13 23:02:11 +02:00
sfan5
16a30556df Formally drop support for building with upstream Irrlicht
It stopped working with (at least) the last commit.
2022-05-23 22:50:58 +02:00
ShadowNinja
7993909fab Spacing fixes 2022-04-08 14:55:21 +01:00
sfan5
ad7c72c164 Remove direct OpenGL(ES) dependency
IrrlichtMt now provides this for us (see last commit)
fixes #12041
2022-03-09 22:37:34 +01:00
sfan5
70dafcf5da Check for required libzstd APIs in cmake
It's very unlikely that anyone uses a zstd version this old, but if they do fail early.
2021-09-01 22:20:38 +02:00
lhofhansl
d1624a5521
Switch MapBlock compression to zstd (#10788)
* Add zstd support.
* Rearrange serialization order
* Compress entire mapblock

Co-authored-by: sfan5 <sfan5@live.de>
2021-08-31 17:32:31 -07:00
JosiahWI
cf136914cf
Take advantage of IrrlichtMt CMake target (#11287)
With the CMake changes to IrrlichtMt, it's now possible to use a target for IrrlichtMt.
Besides greatly improving the ease of setting up IrrlichtMt for users building the client, it removes the need for Minetest's CMake to include transitive dependencies such as image libraries, cleaning it up a tiny bit. The PR works by finding the IrrlichtMt package and linking to the target it provides. If the package isn't found and it isn't building the client, it will still fall back to using just the headers of old Irrlicht or IrrlichtMt.
2021-07-27 19:11:27 +02:00
sfan5
46f42e15c4 Fix check that given IRRLICHT_LIBRARY exists 2021-06-05 13:36:52 +02:00
sfan5
2c53f03c18 Remove unused version detection from FindLuaJIT.cmake 2021-05-30 11:40:14 +02:00
sfan5
734fb2c811
Add helpful error messages if Irrlicht library / include dir are set incorrectly (#11232) 2021-04-28 08:38:18 +02:00
sfan5
52c0384bd1 Fix ignored OpenGLES2 include path and cmake warning 2021-04-16 23:39:16 +02:00
sfan5
6a26d6d15a Adjust build config for Irrlicht changes (again) 2021-03-26 20:58:45 +01:00
sfan5
bb1c4badfb Clean up cmake DLL installation and other minor things 2021-03-12 20:55:51 +01:00
sfan5
91c9313c87 Switch Irrlicht dependency to our own fork
-> https://github.com/minetest/irrlicht
2021-03-09 21:53:17 +01:00
sfan5
dcb30a593d Set ENABLE_SYSTEM_JSONCPP to TRUE by default 2021-03-07 14:26:09 +01:00
orbea
a368e7e793
cmake: Silence warnings. (#9750)
Fixes https://github.com/minetest/minetest/issues/9734
2020-04-28 16:34:18 +02:00
William Breathitt Gray
706b6aad06 Fix find_path for newer jsoncpp installations
The upstream JsonCpp project has renamed the `json/features.h` file to
`json/json_features.h`. This patch fixes the JsonCpp installation search
by looking for `json/allocator.h` which has not been renamed on newer
versions of JsonCpp.

Fixes: https://github.com/minetest/minetest/issues/9119
2019-11-17 11:39:49 +01:00
Unknown
dea5a152b2 Find LuaJIT headers on vcpkg
luajit headers were moved into a subdirectory to avoid conflicts with plain lua
2019-08-18 18:25:00 +02:00
sfan5
d0246cfdcc Clean up FindOpenGLES2.cmake 2019-08-04 16:12:52 +02:00
adrido
bd6f1cca9d Add compatibility to vcpkg buildsystem (#8317) 2019-06-10 02:56:55 +01:00
Leonid Bobrov
339341ba4e DragonFly BSD is somewhat identical to FreeBSD (#8159) 2019-02-03 09:53:54 +01:00
Leonid Bobrov
ae8ae6c906 Fix libgmp detection (#7488) 2018-06-26 10:00:33 +02:00
rubenwardy
50c33d9638
Fix luajit include not being found 2018-05-08 19:06:55 +01:00
miqlas
a95e0d1876 Initial Haiku support (#6568)
* Iitial Haiku support
2017-10-30 08:17:43 +01:00
Loic Blot
ff4fef570e
Fix cmake library default build problem since moving to lib/
Also make Lua library check a cmake module
2017-04-07 23:56:02 +02:00
Loïc Blot
86b1542181 Update embedded jsoncpp from unk version to 0.10.6 + move libs to lib/ instead of src/ (#5473)
* Update embedded jsoncpp from unk version to 0.10.6

0.10.6 is last release without c++11

* Make jsoncpp more compliant with its amalgamate

Jsoncpp cpp file should be upper, make the library like it does in amalgamate

* Reorganization: move minetest embedded libs outside of source tree to /lib

* Fix a dead grep in LINT
2017-04-02 10:51:50 +02:00
Rogier-5
4503b5097f Fixes for compiling with a newer (system) jsoncpp (#4429)
* Move included json code to jsoncpp subdirectory

This is needed to avoid having to specify the minetest src directory
as a system include when fixing the json includes.

* Fix json includes

They used "", so that the compiler searches the project's directory
first. The result was that when compiling with a system jsoncpp,
the project's own version of json.h was still included, instead of
the system version.

The includes now use <>, so a system location, or one specified with
'-Ilocation' is searched only.

* Fix for jsoncpp deprecated function warning

When compiling with a newer version of jsoncpp (and
ENABLE_SYSTEM_JSONCPP=true), jsoncpp emits a warning
about a deprecated function that minetest uses.
2016-08-10 12:10:00 +02:00
sfan5
decbd396df Really fix ncurses lookup on Arch Linux
Commit 27ee8d8943080a5dd735c9faa47c726604bafdff forgot to add the paths
without ncursesw/ to the find_path() call
2016-05-16 12:43:50 +02:00
David Knapp
27ee8d8943 Fix ncurses lookup on Arch Linux
Arch Linux doesn't put it's ncursesw includes inside an ncursesw
directory.  This script ends up setting USE_CURSES as true, but
doesn't pick up any of the headers.

https://bugs.archlinux.org/task/13994
2016-04-08 02:11:45 -04:00
Ferdinand Thiessen
70ece71ee4 Improve LuaJIT detection
On openSUSE luajit is not detected correctly.
This is because openSUSE is using a lua version suffix, like other Linux distributions do it also.
So the include directory is:
include/luajit-5_1-2.0
2015-12-05 23:31:09 +01:00
est31
5e507c9829 Add server side ncurses terminal
This adds a chat console the server owner can use for administration
or to talk with players.
It runs in its own thread, which makes the user interface immune to
the server's lag, behaving just like a client, except timeout.
As it uses the same console code as the f10 console, things like nick
completion or a scroll buffer basically come for free.
The terminal itself is written in a general way so that adding a
client version later on is just about implementing an interface.

Fatal errors are printed after the console exists and the ncurses
terminal buffer gets cleaned up with endwin(), so that the error still
remains visible.

The server owner can chose their username their entered text will
have in chat and where players can send PMs to.
Once the username is secured with a password to prevent anybody to
take over the server, the owner can execute admin tasks over the
console.

This change includes a contribution by @kahrl who has improved ncurses
library detection.
2015-11-06 08:51:14 +01:00
Igor Gnatenko
88a44122ab FindJson: use PATH_SUFFIXES jsoncpp to find incdir
For example, on Fedora systems jsoncpp headers is installed in `/usr/include/jsoncpp`.
2015-09-26 21:43:01 +02:00
est31
181f7baa45 Add LibGMP
Uses system provided libgmp if found, if not it falls back to mini-gmp.
2015-05-11 17:48:33 +02:00
ShadowNinja
1be2d32fd5 Make Git version detection use VERSION_STRING instead of tags
This fixes the problem where 0.4.12-dev versions were erroneously shown as
0.4.11-dev because the tag was added on a separate branch.  It also fixes a
similar issue when builders didn't fetch new tags when updating.

This also removes the number-of-commits-since-tag field, since it's
incompatible with this.  Said field doesn't seem to be useful anyway if you
have the commit hash.
2015-05-05 17:13:05 +02:00
est31
5704fb36d2 Better version detection for shallow clones 2015-05-03 16:47:22 +02:00
ShadowNinja
393722a9e3 Fix typo in OpenGL ES 2 CMake file 2015-03-27 15:10:27 -04:00
ShadowNinja
93fcab952b Clean up and tweak build system
* Combine client and server man pages.
  * Update unit test options and available databases in man page.
  * Add `--worldname` to man page.
  * Fix a bunch of places where `"Minetest"` was used directly instead of `PROJECT_NAME`.
  * Disable server build by default on all operating systems.
  * Make `ENABLE_FREETYPE` not fail if FreeType isn't found.
  * Enable LevelDB, Redis, and FreeType detection by default.
  * Remove the `VERSION_PATCH_ORIG` hack.
  * Add option to search for and use system JSONCPP.
  * Remove broken LuaJIT version detection.
  * Rename `DISABLE_LUAJIT` to `ENABLE_LUAJIT`.
  * Rename `minetest_*` variables in `version.{h,cpp}` to `g_*`.
  * Clean up style of CMake files.
2015-03-27 15:00:48 -04:00
est31
c31c87adb5 Fix cmake po detection bug
Previously, cmake po detection would treat the "timestamp" file created by building for android as own language directory.
2015-03-23 13:43:18 +10:00
Markus Koschany
47d9b4d9aa Improve FindIrrlicht.cmake module
Linux distributions prefer to link against a shared version of the Irrlicht
engine instead of using embedded code copies of the same. Search for this
shared version first and use that but fall back to the static version if it
does not exist.

This also fixes https://github.com/minetest/minetest/issues/2163
2015-02-21 18:21:10 +01:00
ShadowNinja
a3db918f78 Remove included SQLite3 2015-01-08 16:34:42 -05:00
Martin Doege
c410e9182d OS X compatibility fixes 2014-06-29 17:27:33 +02:00
sapier
533785ec9a Add CURL_DLL search to show up CURL_DLL in cmake gui and don't silently ignore missing CURL_DLL 2013-11-17 02:28:39 -05:00
Kahrl
8bc7ea61b9 Show git hash in version string at top left corner of window 2013-09-28 21:30:17 +02:00
kwolekr
d308352dbd Always use builtin JThread library 2013-09-15 23:00:01 -04:00
proller
10c03e1a9d build with ogles2 driver 2013-03-16 22:37:50 -04:00
proller
dd8593f2d6 fix link if system json lib exists 2013-03-05 23:54:07 -05:00
proller
ee07c3f7cf new auto masterserver 2013-02-22 02:04:53 +04:00