]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - README.md
q3map2: use ~/Library/Application Support on Mac
[xonotic/netradiant.git] / README.md
index f43a8b260ef8c6aa32ec07359339ac73efdb53d8..e38b9185de1fa352fa6ed802abcb18e3f2b7e1ff 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,9 +1,11 @@
 NetRadiant
 ==========
 
-The open source, cross platform level editor for idtech games (Radiant fork)
+![NetRadiant logo](setup/data/tools/bitmaps/splash.png)
 
-# Getting the Sources
+The open source, cross platform level editor for idtech games (Radiant fork).
+
+# Getting the sources
 
 The latest source is available from the git repository:
 https://gitlab.com/xonotic/netradiant.git
@@ -11,9 +13,10 @@ https://gitlab.com/xonotic/netradiant.git
 The git client can be obtained from the Git website:
 http://git-scm.org
 
-To get a copy of the source using the commandline git client:
+To get a copy of the source using the command line git client:
+
 ```
-git clone https://gitlab.com/xonotic/netradiant.git
+git clone --recursive https://gitlab.com/xonotic/netradiant.git
 cd netradiant
 ```
 
@@ -21,66 +24,123 @@ See also https://gitlab.com/xonotic/netradiant/ for a source browser, issues and
 
 # Dependencies
 
- * OpenGL
- * LibXml2
- * GTK2
- * GtkGLExt
- * LibJpeg
- * LibPng
- * ZLib
-
-# Compiling
-
-This project uses the usual CMake workflow:
-
-`cmake -H. -Bbuild && cmake --build build -- -j$(nproc)`
-
-## linux
-
-```
-cmake -H. -Bbuild -G "Unix Makefiles"
-```
+* OpenGL
+* LibXml2
+* GTK2
+* GtkGLExt
+* LibJpeg
+* LibPng
+* LibWebp
+* Minizip
+* ZLib
 
 ## msys2
 
-`pacman -S --needed base-devel`
+Under MSYS2, the mingw shell must be used
 
 ### 32 bit:
 
 ```
-pacman -S --needed mingw-w64-i686-{toolchain,cmake,gtk2,gtkglext}
-cmake -H. -Bbuild -G "MSYS Makefiles" -DGTK2_GLIBCONFIG_INCLUDE_DIR=/mingw32/lib/glib-2.0/include -DGTK2_GDKCONFIG_INCLUDE_DIR=/mingw32/lib/gtk-2.0/include
+pacman -S --needed base-devel mingw-w64-i686-{toolchain,cmake,make,gtk2,gtkglexti,libwebp}
 ```
 
 ### 64 bit:
 
 ```
-pacman -S mingw-w64-x86_64-{toolchain,cmake,gtk2,gtkglext}
-cmake -H. -Bbuild -G "MSYS Makefiles" -DGTK2_GLIBCONFIG_INCLUDE_DIR=/mingw64/lib/glib-2.0/include -DGTK2_GDKCONFIG_INCLUDE_DIR=/mingw64/lib/gtk-2.0/include
+pacman -S --needed base-devel mingw-w64-x86_64-{toolchain,cmake,make,gtk2,gtkglext,libwebp}
 ```
 
 ## OS X:
 
 ```
 brew install gtkglext
+brew install webp
 brew install Caskroom/cask/xquartz
 brew link --force gettext
 ```
 
-More Compilation Details
-------------------------
+# Submodules
+
+ * Crunch (optional, disabled by default, only supported with CMake build)
+
+If you have not used `--recursive` option at `git clone` time, you can fetch Crunch this way (run it within the NetRadiant repository):
+
+
+```
+git submodule update --init --recursive
+```
+
+# Compiling
+
+This project uses the usual CMake workflow:
+
+## Debug
+
+```
+cmake -G "Unix Makefiles" -H. -Bbuild && cmake --build build -- -j$(nproc)
+```
+
+## Release
+
+```
+cmake -G "Unix Makefiles" -H. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build -- -j$(nproc)
+```
+
+## Build and installation details
+
+### Compilation details
 
 options:
- * `DOWNLOAD_GAMEPACKS=ON`
-   Automatically download the gamepack data during the first compilation
- * `RADIANT_ABOUTMSG="Custom build"`
+
+* `BUILD_RADIANT=OFF`  
+   Do not build NetRadiant (default: `ON`, build radiant graphical editor)
+* `BUILD_TOOLS=OFF`  
+   Do not build q3map2 and other tools (default: `ON`, build command line tools)
+* `BUILD_CRUNCH=ON`  
+   Enable crunch support (default: `OFF`, disable crunch support)
+* `RADIANT_ABOUTMSG="Custom build"`  
    A message shown in the about dialog
 
 targets:
- * `radiant`    Compiles the radiant core binary
- * `modules`    Compiles all modules (each module has its own target as well)
- * `plugins`    Compiles all plugins (each plugin has its own target as well)
- * `game_packs` Downloads the game pack data
- * `quake3`     Compiles all the Quake3 tools
-   - `q3map2`     Quake3 map compiler
-   - `q3data`
+
+* `radiant`    Compiles the radiant core binary
+* `modules`    Compiles all modules (each module has its own target as well)
+* `plugins`    Compiles all plugins (each plugin has its own target as well)
+* `quake3`     Compiles all the Quake3 tools
+  - `q3map2`   Compiles the quake3 map compiler
+  - `q3data`   Compiles the q3data tool
+
+### Download details
+
+options:
+
+* `DOWNLOAD_GAMEPACKS=OFF`  
+   Do not automatically download the gamepack data during the first compilation (default: `ON`)
+* `GAMEPACKS_LICENSE_LIST=all`  
+   Download all gamepacks whatever the license (default: `free`, download free gamepacks)
+* `GAMEPACKS_NAME_LIST=Xonotic Unvanquished`  
+   Download gamepacks for the given games (default: `none`, do not select more gamepacks to download)
+
+target:
+
+* `game_packs` Downloads the game pack data
+
+Run `./gamepacks-manager -h` to know about available licenses and other available games. Both lists are merged, for example setting `GAMEPACKS_LICENSE_LIST=GPL` and `GAMEPACKS_NAME_LIST=Q3` will install both GPL gamepacks and proprietary Quake 3 one.
+
+### Installation details
+
+options:
+
+* `FHS_INSTALL=ON`  
+  Install files following the Filesystem Hierarchy Standard (bin, lib, share, etc.), also setup XDG mime and application support on POSIX systems (default: `OFF`, install like in 1999)
+* `CMAKE_INSTALL_PREFIX=/usr`  
+  Install system-wide on Posix systems, always set `FHS_INSTALL` to `ON` when doing this (default: install in `install/` directory within source tree)
+
+target:
+
+* `install`  
+  Install files
+
+## Note about Crunch
+
+The crnlib used to decode `.crn` files is the one from [Dæmon](http://github.com/DaemonEngine/Daemon) which is the one by [Unity](https://github.com/Unity-Technologies/crunch/tree/unity) made cross-platform and slightly improved. Since Unity brokes compatibility with [BinomialLLC's legacy tree](https://github.com/BinomialLLC/crunch) it's required to use either the `crunch` tool from Dæmon or the one from Unity to compress textures that have to be read by radiant or q3map2.