]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - README.md
Merge branch 'NateEag-master-patch-12920' into 'master'
[xonotic/netradiant.git] / README.md
index b9f48d8b4efe9aac8161eb40127f3922c4ed75cf..280a61a67fa7d89b39d9f944efe03bea18a613b5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -18,14 +18,14 @@ Prebuilt binaries can be found on the [Download page](https://netradiant.gitlab.
 |System   |Build    |Bundle    |Run      |Build requirements                            |
 |---------|---------|----------|---------|----------------------------------------------|
 |Linux    |**Yes**  |**Yes**   |**Yes**  |_GCC or Clang_                                |
-|FreeBSD  |**Yes**  |_not yet_ |**Yes**  |_GCC or Clang_                                |
+|FreeBSD  |**Yes**  |**Yes**   |**Yes**  |_GCC or Clang_                                |
 |Windows  |**Yes**  |**Yes**   |**Yes**  |_MSYS2/Mingw64 or Mingw32_                    |
 |Wine     |-        |-         |**Yes**  |-                                             |
 |macOS    |**Yes**  |**Yes**   |**Yes**  |_Homebrew, GCC or Clang and builtin GtkGLExt_ |
 
 NetRadiant is known to build and run properly on Linux, FreeBSD and Windows using MSYS2, and build on macOS with Homebrew (some bugs are known though). Windows build is known to work well on wine, which can be used as a fallback on some system.
 
-At this time library bundling is only supported on Linux, Windows/MSYS2, and macOS/Homebrew. Since bundling copies things from the host, a clean build environment has to be used in order to get a clean bundle. Linux bundle does not ship GTK (users are expected to have a working GTK environment with GtkGlExt installed).
+At this time library bundling is supported on Linux, FreeBSD, Windows/MSYS2, and macOS/Homebrew. Since bundling copies things from the host, a clean build environment has to be used in order to get a clean bundle. Linux and FreeBSD bundles do not ship GTK: users are expected to have a working GTK environment with GtkGLExt installed, usually installing GtkGLExt is enough to pull everything that is required.
 
 
 ## Getting the sources
@@ -36,7 +36,7 @@ The latest source is available from the git repository: `https://gitlab.com/xono
 
 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:
+A copy of the source tree can be obtained by using the `git` command line client this way:
 
 ```sh
 git clone --recursive https://gitlab.com/xonotic/netradiant.git
@@ -50,6 +50,8 @@ cd netradiant
 
 To fetch default game packages you'll need Git, Subversion, Wget and `unzip`.
 
+It's possible to build against GTK3 using the `-DGTK_TARGET=3` cmake option, but some problems may be encountered, see [GUI/GTK](https://gitlab.com/xonotic/netradiant/-/issues?label_name[]=GUI%2FGTK3) issues. GTK2 remains recommended for now.
+
 
 ### Ubuntu:
 
@@ -77,17 +79,28 @@ export PATH="/mingw64/bin:${PATH}"
 Install the dependencies this way:
 
 ```sh
-pacman -S --needed base-devel git \
-    mingw-w64-$(uname -m)-{ntldd-git,subversion,unzip,toolchain,cmake,make,gtk2,gtkglext,libwebp,minizip-git}
+pacman -S --needed base-devel git subversion unzip \
+    mingw-w64-$(uname -m)-{ntldd-git,toolchain,cmake,make,gtk2,gtkglext,libwebp,minizip-git}
 ```
 
 Explicitely use `mingw-w64-x86_64-` or `mingw-w64-i686-` prefix instead of `mingw-w64-$(uname -m)` if you need to target a non-default architecture.
 
 
+### FreeBSD:
+
+```sh
+pkg install cmake gtkglext pkgconf minizip webp coreutils gsed git subversion wget unzip
+```
+
+If you plan to build a bundle, you also need to install `patchelf`
+
+
 ### macOS:
 
+Note: some dependencies of gtk+ seems to only be pulled with gtk+3, gtkglext seems to require libffi.
+
 ```sh
-brew install cmake glib gtk+ pkgconfig minizip webp coreutils gnu-sed wget
+brew install cmake glib gobject-introspection libffi gtk+ gtk+3 gtk-doc pkgconfig minizip webp coreutils gnu-sed wget sassc
 brew link --force gettext
 ```
 
@@ -132,7 +145,7 @@ For supported system, bundling dependencies can be done this way:
 ./easy-builder -DBUNDLE_LIBRARIES=ON
 ```
 
-Note: always do bundling on clean system without unrelated software installed.
+Note: Always do bundling on a clean and fresh system without unrelated software installed.
 
 
 ## Advanced compilation
@@ -147,6 +160,7 @@ This project uses the usual CMake workflow:
 ```sh
 cmake -G "Unix Makefiles" -S. -Bbuild -DCMAKE_BUILD_TYPE=Debug
 cmake --build build -- -j$(nproc)
+cmake --install build
 ```
 
 
@@ -155,6 +169,7 @@ cmake --build build -- -j$(nproc)
 ```sh
 cmake -G "Unix Makefiles" -S. -Bbuild -DCMAKE_BUILD_TYPE=Release
 cmake --build build -- -j$(nproc)
+cmake --install build
 ```
 
 Note: macOS users need to build built-in GtkGLExt before building NetRadiant:
@@ -164,6 +179,7 @@ cmake -G "Unix Makefiles" -S. -Bbuild -DCMAKE_BUILD_TYPE=Release
 cmake --build build -- -j$(nproc) builtins
 cmake -G "Unix Makefiles" -S. -Bbuild
 cmake --build build -- -j$(nproc)
+cmake --install build
 ```
 
 
@@ -173,12 +189,14 @@ The initial build will download the gamepacks and build NetRadiant and tools. If
 
 ```sh
 cmake --build build --target binaries -- -j$(nproc)
+cmake --install build
 ```
 
 You should still periodically update gamepacks:
 
 ```sh
 cmake --build build --target gamepacks
+cmake --install build
 ```
 
 
@@ -192,8 +210,6 @@ Options:
   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)"`  
@@ -211,8 +227,6 @@ Targets:
      * `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.
 
@@ -222,9 +236,9 @@ Type `make help` to get an exhaustive list of targets.
 Options:
 
 * `DOWNLOAD_GAMEPACKS=OFF`  
-  Do not automatically download the gamepack data on each compilation and do not install game packs already downloaded (default: `ON`);
+  Do not automatically download the gamepack data on each compilation and do not install already downloaded game packs (default: `ON`);
 * `GAMEPACKS_LICENSE_LIST=all`  
-  Download all gamepacks whatever the license (default: `free`, download free gamepacks, can be set to `none` to only filter by name);
+  Download all gamepacks whatever their license (default: `free`, download free gamepacks, can be set to `none` to only filter by name);
 * `GAMEPACKS_NAME_LIST="Xonotic Unvanquished"`  
   Download gamepacks for the given games (default: `none`, do not select more gamepacks to download).
 
@@ -240,7 +254,7 @@ Run `./gamepacks-manager -h` to know about available licenses and other availabl
 Options:
 
 * `BUNDLE_LIBRARIES=ON`  
-  Bundle libraries, only MSYS2 and Linux are supported at this time (default: `OFF`);
+  Bundle libraries, only Linux, FreeBSD, macOS and MSYS2 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);
@@ -251,8 +265,12 @@ Target:
 
 * `install` Install files.
 
+```sh
+cmake --install build
+```
+
 
-## Additonnal information
+## Additional information
 
 ### About Crunch