Under MSYS2, the mingw shell must be used.
-If you use MSYS2 over SSH, add `mingw64` to the path this way (given you compile for 64 bit windows):
+If you use MSYS2 over SSH, add `mingw64` to the path this way (given you compile for 64 bit Windows):
```
export PATH="/mingw64/bin:${PATH}"`
```
-pacman -S --needed base-devel mingw-w64-$(uname -m)-{toolchain,cmake,make,gtk2,gtkglext,libwebp,minizip-git} git
+pacman -S --needed base-devel mingw-w64-$(uname -m)-{ntldd-git,toolchain,cmake,make,gtk2,gtkglext,libwebp,minizip-git} git
```
Explicitely use `mingw-w64-x86_64-` or `mingw-w64-i686-` prefix if you need to target a non-default architecture.
## macOS:
```
-brew install gcc cmake Caskroom/cask/xquartz gtkglext pkgconfig minizip webp coreutils gnu-sed
+brew install gcc cmake gtkglext pkgconfig minizip webp coreutils gnu-sed
brew link --force gettext
```
## Debug
```
-cmake -G "Unix Makefiles" -H. -Bbuild && cmake --build build -- -j$(nproc)
+cmake -G "Unix Makefiles" -H. -Bbuild -DCMAKE_BUILD_TYPE=Debug && cmake --build build -- -j$(nproc)
```
## Release
On macOS you have to add this to the first cmake call:
```
--DCMAKE_C_COMPILER=/usr/local/bin/gcc-9 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++-9 -DOPENGL_INCLUDE_DIR=/opt/X11/include -DOPENGL_gl_LIBRARY=/opt/X11/lib/libGL.dylib
+-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:
```
-cmake -G "Unix Makefiles" -DCMAKE_C_COMPILER=/usr/local/bin/gcc8 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++8
+-DCMAKE_C_COMPILER=/usr/local/bin/gcc8 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++8
```
## Build and installation details
* `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
+* `tools` Compiles all tools (each tool has its own target as well)
+ - `quake2` Compiles all the Quake2 tools: `q2map`, `qdata3`
+ - `heretic2` Compiles all the Heretic2 tools: `q2map`, `h2data`
+ - `quake3` Compiles all the Quake3 tools:
+ * `q3map2` Compiles the quake3 map compiler
+ * `q3data` Compiles the q3data tool
+
+Type `make help` to get an exhaustive list of targets.
### Download details
* `install`
Install files
-Note that because of both the way NetRadiant works and the way bundled library loading works CMake has to do some globbing to detect some of the produced/copied files it has to install. So you have to run cmake again before installing:
-
-```
-cmake -H. -Bbuild && cmake --build build -- install
-```
-
## 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.