Remove <gtk/gtk.h> from gtkutil/entry.h
[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 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 ### 32 bit:
36
37 ```
38 pacman -S --needed base-devel mingw-w64-i686-{toolchain,cmake,make,gtk2,gtkglext}
39 ```
40
41 ### 64 bit:
42
43 ```
44 pacman -S --needed base-devel mingw-w64-x86_64-{toolchain,cmake,make,gtk2,gtkglext}
45 ```
46
47 ## OS X:
48
49 ```
50 brew install gtkglext
51 brew install Caskroom/cask/xquartz
52 brew link --force gettext
53 ```
54
55 # Compiling
56
57 This project uses the usual CMake workflow:
58
59 ## Debug
60
61 `cmake -G "Unix Makefiles" -H. -Bbuild && cmake --build build -- -j$(nproc)`
62
63 ## Release
64
65 `cmake -G "Unix Makefiles" -H. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build -- -j$(nproc)`
66
67 ## MSYS2
68
69 Under MSYS2, the mingw shell must be used with the following additional flags:
70
71 ```
72 cmake -G "MSYS Makefiles" \
73     -DGTK2_GLIBCONFIG_INCLUDE_DIR=/mingw64/lib/glib-2.0/include \
74     -DGTK2_GDKCONFIG_INCLUDE_DIR=/mingw64/lib/gtk-2.0/include \
75     -H. -Bbuild
76 ```
77
78 ## More Compilation Details
79
80 options:
81  * `DOWNLOAD_GAMEPACKS=ON`
82    Automatically download the gamepack data during the first compilation
83  * `RADIANT_ABOUTMSG="Custom build"`
84    A message shown in the about dialog
85
86 targets:
87  * `radiant`    Compiles the radiant core binary
88  * `modules`    Compiles all modules (each module has its own target as well)
89  * `plugins`    Compiles all plugins (each plugin has its own target as well)
90  * `game_packs` Downloads the game pack data
91  * `quake3`     Compiles all the Quake3 tools
92    - `q3map2`     Quake3 map compiler
93    - `q3data`