Commit Graph

71 Commits (master)

Author SHA1 Message Date
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 27ee8d8943 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
Ilya Zhuravlev c4172934e5 Prefer shared cURL library instead of the static one. 2012-12-21 20:35:04 +04:00
sfan5 05b58501f2 Tweak CMake files for cURL 2012-12-18 21:52:56 +04:00
Ilya Zhuravlev 3578e1d4a7 Added ability to fetch media from remote server (using cURL library) 2012-12-16 15:20:18 +04:00
Perttu Ahola 3a9753b85f Add OGG_INCLUDE_DIR to SOUND_INCLUDE_DIRS 2012-03-25 22:07:34 +03:00