1 cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
3 project(NetRadiant C CXX)
5 #CMake 3.0+ would allow this in project()
6 set(NetRadiant_VERSION_MAJOR 1)
7 set(NetRadiant_VERSION_MINOR 5)
8 set(NetRadiant_VERSION_PATCH 0)
9 set(NetRadiant_VERSION ${NetRadiant_VERSION_MAJOR}.${NetRadiant_VERSION_MINOR}.${NetRadiant_VERSION_PATCH})
11 set(Q3MAP_VERSION = 2.5.17n)
13 set(RADIANT_VERSION_STRING "${NetRadiant_VERSION}n${GIT_VERSION}")
14 execute_process(COMMAND git rev-parse --short HEAD
15 OUTPUT_VARIABLE GIT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
17 set(RADIANT_VERSION_STRING "${RADIANT_VERSION_STRING}-git-${GIT_VERSION}")
18 set(Q3MAP_VERSION "${Q3MAP_VERSION}-git-${GIT_VERSION}")
22 set(RADIANT_EXECUTABLE "exe")
24 execute_process(COMMAND uname -m
25 OUTPUT_VARIABLE RADIANT_EXECUTABLE OUTPUT_STRIP_TRAILING_WHITESPACE)
27 set(RADIANT_ABOUTMSG "Custom build" CACHE STRING "About message")
29 message(STATUS "Building ${PROJECT_NAME} ${RADIANT_VERSION_STRING} ${RADIANT_ABOUTMSG}")
32 set(CMAKE_CXX_STANDARD 11)
33 set(CMAKE_CXX_STANDARD_REQUIRED ON)
34 # For some reason the above flags don't really work...
35 if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR CMAKE_COMPILER_IS_GNUCXX)
36 include(CheckCXXCompilerFlag)
37 check_cxx_compiler_flag(--std=c++${CMAKE_CXX_STANDARD} STD_CXX)
39 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++${CMAKE_CXX_STANDARD}")
41 message(SEND_ERROR "Requires C++${CMAKE_CXX_STANDARD} or better")
44 message(WARNING "Unrecognized compiler: ${CMAKE_CXX_COMPILER_ID}, make sure it supports C++${CMAKE_CXX_STANDARD}")
47 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
49 # Enable Debug by default, can be changed with -D CMAKE_BUILD_TYPE=Release
50 if(CMAKE_BUILD_TYPE STREQUAL "")
51 set(CMAKE_BUILD_TYPE Debug)
52 add_definitions(-D_DEBUG=1)
56 find_package(LibXml2 REQUIRED)
57 include_directories(${LIBXML2_INCLUDE_DIR})
59 find_package(GTK2 REQUIRED)
60 include_directories(${GTK2_INCLUDE_DIRS} ${GTK2_GDK_INCLUDE_DIR} ${GTK2_GLIB_INCLUDE_DIR})
62 find_package(GtkGLExt REQUIRED)
63 include_directories(${GTKGL_INCLUDE_DIRS})
65 find_package(OpenGL REQUIRED)
68 -DRADIANT_VERSION="${RADIANT_VERSION_STRING}"
69 -DRADIANT_MAJOR_VERSION="${NetRadiant_VERSION_MINOR}"
70 -DRADIANT_MINOR_VERSION="${NetRadiant_VERSION_PATCH}"
71 -DRADIANT_ABOUTMSG="${RADIANT_ABOUTMSG}"
72 -DRADIANT_EXECUTABLE="${RADIANT_EXECUTABLE}"
97 include/idatastream.cpp
103 include/ifilesystem.cpp
104 include/ifilesystem.h
105 include/ifiletypes.cpp
111 include/iglrender.cpp
125 include/ireference.cpp
129 include/iscenegraph.cpp
130 include/iscenegraph.h
131 include/iscriplib.cpp
133 include/iselection.cpp
139 include/itextstream.cpp
140 include/itextstream.h
141 include/itextures.cpp
149 include/modelskin.cpp
151 include/moduleobserver.cpp
152 include/moduleobserver.h
153 include/modulesystem.cpp
154 include/modulesystem.h
157 include/namespace.cpp
159 include/preferencesystem.cpp
160 include/preferencesystem.h
161 include/qerplugin.cpp
163 include/renderable.cpp
165 include/selectable.cpp
167 include/stream_version.h
170 include/windowobserver.cpp
171 include/windowobserver.h
173 include_directories(include)
175 add_subdirectory(libs)
176 include_directories(libs)
177 add_subdirectory(contrib)
178 add_subdirectory(plugins)
185 radiant/brush_primit.cpp
186 radiant/brush_primit.h
187 radiant/brushmanip.cpp
189 radiant/brushmodule.cpp
190 radiant/brushmodule.h
191 radiant/brushnode.cpp
193 radiant/brushtokens.cpp
194 radiant/brushtokens.h
199 radiant/camwindow.cpp
201 radiant/clippertool.cpp
202 radiant/clippertool.h
213 radiant/eclass_def.cpp
215 radiant/eclass_doom3.cpp
216 radiant/eclass_doom3.h
217 radiant/eclass_fgd.cpp
219 radiant/eclass_xml.cpp
223 radiant/entityinspector.cpp
224 radiant/entityinspector.h
225 radiant/entitylist.cpp
227 radiant/environment.cpp
228 radiant/environment.h
233 radiant/filetypes.cpp
237 radiant/findtexturedialog.cpp
238 radiant/findtexturedialog.h
243 radiant/groupdialog.cpp
244 radiant/groupdialog.h
255 radiant/mainframe.cpp
263 radiant/nullmodel.cpp
269 radiant/patchdialog.cpp
270 radiant/patchdialog.h
271 radiant/patchmanip.cpp
273 radiant/patchmodule.cpp
274 radiant/patchmodule.h
277 radiant/pluginapi.cpp
279 radiant/pluginmanager.cpp
280 radiant/pluginmanager.h
281 radiant/pluginmenu.cpp
283 radiant/plugintoolbar.cpp
284 radiant/plugintoolbar.h
287 radiant/preferencedictionary.cpp
288 radiant/preferencedictionary.h
289 radiant/preferences.cpp
290 radiant/preferences.h
295 radiant/referencecache.cpp
296 radiant/referencecache.h
299 radiant/renderstate.cpp
300 radiant/renderstate.h
302 radiant/scenegraph.cpp
306 radiant/selection.cpp
314 radiant/stacktrace.cpp
316 radiant/surfacedialog.cpp
317 radiant/surfacedialog.h
320 radiant/textureentry.cpp
321 radiant/textureentry.h
324 radiant/texwindow.cpp
328 radiant/treemodel.cpp
340 radiant/windowobservers.cpp
341 radiant/windowobservers.h
348 add_executable(radiant WIN32 radiant/radiant.rc ${RADIANTLIST})
349 target_link_libraries(radiant