Merge branch 'crunch-submodule' into 'master'
[xonotic/netradiant.git] / README.md
1 NetRadiant
2 ==========
3
4 The open source, cross platform level editor for idtech games (Radiant fork)
5
6 # Getting the Sources
7
8 The latest source is available from the git repository:
9 https://gitlab.com/xonotic/netradiant.git
10
11 The git client can be obtained from the Git website:
12 http://git-scm.org
13
14 To get a copy of the source using the commandline git client:
15 ```
16 git clone --recursive https://gitlab.com/xonotic/netradiant.git
17 cd netradiant
18 ```
19
20 See also https://gitlab.com/xonotic/netradiant/ for a source browser, issues and more.
21
22 # Dependencies
23
24  * OpenGL
25  * LibXml2
26  * GTK2
27  * GtkGLExt
28  * LibJpeg
29  * LibPng
30  * Minizip
31  * ZLib
32
33 ## msys2
34
35 Under MSYS2, the mingw shell must be used
36
37 ### 32 bit:
38
39 ```
40 pacman -S --needed base-devel mingw-w64-i686-{toolchain,cmake,make,gtk2,gtkglext}
41 ```
42
43 ### 64 bit:
44
45 ```
46 pacman -S --needed base-devel mingw-w64-x86_64-{toolchain,cmake,make,gtk2,gtkglext}
47 ```
48
49 ## OS X:
50
51 ```
52 brew install gtkglext
53 brew install Caskroom/cask/xquartz
54 brew link --force gettext
55 ```
56
57 # Submodules
58
59  * Crunch
60
61 If you forgot to add `--recursive` option at `git clone` time, fetch it this way:
62
63
64 ```
65 git submodule update --init --recursive
66 ```
67
68 # Compiling
69
70 This project uses the usual CMake workflow:
71
72 ## Debug
73
74 ```
75 cmake -G "Unix Makefiles" -H. -Bbuild && cmake --build build -- -j$(nproc)
76 ```
77
78 ## Release
79
80 ```
81 cmake -G "Unix Makefiles" -H. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build -- -j$(nproc)
82 ```
83
84 ## More Compilation Details
85
86 options:
87  * `DOWNLOAD_GAMEPACKS=ON`
88    Automatically download the gamepack data during the first compilation
89  * `RADIANT_ABOUTMSG="Custom build"`
90    A message shown in the about dialog
91
92 targets:
93  * `radiant`    Compiles the radiant core binary
94  * `modules`    Compiles all modules (each module has its own target as well)
95  * `plugins`    Compiles all plugins (each plugin has its own target as well)
96  * `game_packs` Downloads the game pack data
97  * `quake3`     Compiles all the Quake3 tools
98    - `q3map2`     Quake3 map compiler
99    - `q3data`
100
101 ## Note about Crunch
102
103 The crnlib used to decode `.crn` files is the one from [Dæmon](http://github.com/DaemonEngine/Daemon) which is just the one by [Unity](https://github.com/Unity-Technologies/crunch/tree/unity) made cross-platform. Since Unity brokes compatibility with [BinomialLLC's legacy tree](https://github.com/BinomialLLC/crunch) it's required to use either crunch from Dæmon or the one from Unity to compress textures that have to be read by radiant or q3map2.