NetRadiant
==========
-![NetRadiant logo](setup/data/tools/bitmaps/splash.png)
+[![NetRadiant logo](setup/data/tools/bitmaps/splash.png)](https://netradiant.gitlab.io)
-The open source, cross platform level editor for id Tech-derivated games (has lineage to GtkRadiant).
+The open source, cross platform level editor for id Tech-derivated games, heir of GtkRadiant.
+
+Learn more on NetRadiant website: [netradiant.gitlab.io](https://netradiant.gitlab.io).
+
+
+## Download NetRadiant
+
+Prebuilt binaries can be found on the [Download page](https://netradiant.gitlab.io/page/download/).
## Compatibility matrix
-|System |Build |Bundle |Run |Build requirements |
-|---------|---------|----------|---------|-------------------------------------|
-|Linux |**Yes** |**Yes** |**Yes** |_GCC or Clang_ |
-|FreeBSD |**Yes** |_not yet_ |**Yes** |_GCC_ |
-|Windows |**Yes** |**Yes** |**Yes** |_MSYS2/Mingw64 or Mingw32_ |
-|Wine |- |- |**Yes** |- |
-|macOS |**Yes** |_not yet_ |_mostly_ |_Homebrew, GCC and patched GtkGLExt_ |
+|System |Build |Bundle |Run |Build requirements |
+|---------|---------|----------|---------|----------------------------------------------|
+|Linux |**Yes** |**Yes** |**Yes** |_GCC or Clang_ |
+|FreeBSD |**Yes** |_not yet_ |**Yes** |_GCC or Clang_ |
+|Windows |**Yes** |**Yes** |**Yes** |_MSYS2/Mingw64 or Mingw32_ |
+|Wine |- |- |**Yes** |- |
+|macOS |**Yes** |_not yet_ |_mostly_ |_Homebrew, GCC or Clang and patched GtkGLExt_ |
NetRadiant is known to build and run properly on Linux, FreeBSD and Windows using MSYS2. NetRadiant is known to build on macOS using Homebrew, but can't display things properly without a modified GtkGLExt which is yet to be upstreamed, and issues are known. Windows build is known to work well on wine, which can be used as a fallback on macOS.
## Getting the sources
-Source browser, issues and more can be found on the gitlab project: https://gitlab.com/xonotic/netradiant/
+Source browser, issues and more can be found on the gitlab project: [gitlab.com/xonotic/netradiant](https://gitlab.com/xonotic/netradiant)
The latest source is available from the git repository: `https://gitlab.com/xonotic/netradiant.git`
-The `git` client can be obtained from your distribution repository or from the Git website: http://git-scm.org
+The `git` client can be obtained from your distribution repository or from the Git website: [git-scm.org](http://git-scm.org)
A copy of the source tree can be obtained using the command line `git` client this way:
* OpenGL, LibXml2, GTK2, GtkGLExt, LibJpeg, LibPng, LibWebp, Minizip, ZLib.
-To fetch default game packages you'll need Git, Subversion and `unzip`.
+To fetch default game packages you'll need Git, Subversion, Wget and `unzip`.
### Ubuntu:
If you use MSYS2 over SSH, add `mingw64` to the path this way (given you compile for 64 bit Windows, replace with `mingw32` if you target 32 bit Windows instead):
```sh
-export PATH="/mingw64/bin:${PATH}"`
+export PATH="/mingw64/bin:${PATH}"
```
Install the dependencies this way:
### macOS:
```sh
-brew install gcc cmake gtkglext pkgconfig minizip webp coreutils gnu-sed
+brew install cmake gtkglext pkgconfig minizip webp coreutils gnu-sed wget
brew link --force gettext
```
## Simple compilation
+It is required to first download the sources using `git` (do not use tarballs) and to have dependencies installed, see [Getting the sources](#getting-the-sources) and [Dependencies](#dependencies) above.
+
### Easy builder assistant
-If you have standard needs and use well-known platform and operating system, you may try the provided `easy-builder` script which may be enough for you:
+If you have standard needs and use well-known platform and operating system, you may try the provided `easy-builder` script which may be enough for you, you can run it this way:
```sh
./easy-builder
If everything went right, you'll find your netradiant build in `install/` subdirectory.
-If you need to build a debug build (to get help from a developer, for example), you can do it that way:
+If you need to build a debug build (to get help from a developer, for example), you can do it this way:
```sh
./easy-builder --debug
cmake --build build -- -j$(nproc)
```
-On macOS you have to add this to the first cmake call:
-
-```sh
--DCMAKE_C_COMPILER=/usr/local/bin/gcc-9 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++-9
-```
-
-On FreeBSD you have to add this to the first cmake call:
-
-```sh
--DCMAKE_C_COMPILER=/usr/local/bin/gcc8 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++8
-```
-
-
### Subsequent builds
The initial build will download the gamepacks and build NetRadiant and tools. If you frequently recompile you can skip downloading the gamepacks:
Do not build NetRadiant (default: `ON`, build netradiant graphical editor);
* `BUILD_TOOLS=OFF`
Do not build q3map2 and other tools (default: `ON`, build command line tools);
+* `BUILD_DAEMONMAP=OFF`
+ Do not build daemonmap tool (default: `ON` if submodule is there, buils daemonmap navigation mesh generator);
* `BUILD_CRUNCH=OFF`
Disable crunch support (default: `ON` if submodule is there, enable crunch support);
* `RADIANT_ABOUTMSG="Custom build by $(whoami)"`
Targets:
-* `binaries` Compiles all binaries;
- - `netradiant` Compiles the netradiant editor;
- - `modules` Compiles all modules (each module has its own target as well);
- - `plugins` Compiles all plugins (each plugin has its own target as well);
- - `tools` Compiles all tools (each tool has its own target as well);
- * `quake2` Compiles all the Quake 2 tools: `q2map`, `qdata3`;
- * `heretic2` Compiles all the Heretic2 tools: `q2map`, `h2data`;
- * `quake3` Compiles all the Quake 3 tools:
- - `q3map2` Compiles the quake3 map compiler;
- - `q3data` Compiles the q3data tool.
+* `binaries` Compile all binaries;
+ - `netradiant` Compile the netradiant editor;
+ - `modules` Compile all modules (each module has its own target as well);
+ - `plugins` Compile all plugins (each plugin has its own target as well);
+ - `tools` Compile all tools (each tool has its own target as well);
+ * `quake2` Compile all the Quake 2 tools: `q2map`, `qdata3`;
+ * `heretic2` Compile all the Heretic2 tools: `q2map`, `h2data`;
+ * `quake3` Compile all the Quake 3 tools:
+ - `q3map2` Compile the Quake 3 map compiler;
+ - `q3data` Compile the q3data tool;
+ * `unvanquished` Compile all the Unvanquished tool: `daemonmap`, `q3map3`, `q4data`;
+ - `daemonmap` Compile the daemonmap navigation mesh generator.
Type `make help` to get an exhaustive list of targets.
Options:
* `BUNDLE_LIBRARIES=ON`
- Bundle libraries, only MSYS2 is supported at this time (default: `OFF`);
+ Bundle libraries, only MSYS2 and Linux are supported at this time (default: `OFF`);
* `FHS_INSTALL=ON` (available on POSIX systems)
Install files following the Filesystem Hierarchy Standard (`bin`, `lib`, `share`, etc.)
Also setup XDG mime and application support on Linux-like systems (default: `OFF`, install like in 1999);
* `install` Install files.
-## Additonnal notes
+## Additonnal information
### About Crunch