]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - CMakeLists.txt
Partial OSX support
[xonotic/netradiant.git] / CMakeLists.txt
index d3026bc19adf8423e44ae74c4929daaa2f4b1016..a39ab7ab8d89c01cbfdd9ddda6de8cc2a05be0bb 100644 (file)
@@ -7,25 +7,30 @@ set(NetRadiant_VERSION_MAJOR 1)
 set(NetRadiant_VERSION_MINOR 5)
 set(NetRadiant_VERSION_PATCH 0)
 set(NetRadiant_VERSION ${NetRadiant_VERSION_MAJOR}.${NetRadiant_VERSION_MINOR}.${NetRadiant_VERSION_PATCH})
-
-set(Q3MAP_VERSION = 2.5.17n)
+set(Q3MAP_VERSION 2.5.17n)
+set(Q3MAP_STREAM_VERSION 1)
 
 set(RADIANT_VERSION_STRING "${NetRadiant_VERSION}n${GIT_VERSION}")
 execute_process(COMMAND git rev-parse --short HEAD
     OUTPUT_VARIABLE GIT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+
 if(GIT_VERSION)
     set(RADIANT_VERSION_STRING "${RADIANT_VERSION_STRING}-git-${GIT_VERSION}")
     set(Q3MAP_VERSION "${Q3MAP_VERSION}-git-${GIT_VERSION}")
+    add_custom_target(version_git ALL
+        COMMAND [ "`git rev-parse --short HEAD`" != "${GIT_VERSION}" ] && ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR}
+        VERBATIM
+    )
 endif()
 
-if(WIN32)
-    set(RADIANT_EXECUTABLE "exe")
+if(CMAKE_EXECUTABLE_SUFFIX)
+    set(RADIANT_EXECUTABLE ${CMAKE_EXECUTABLE_SUFFIX})
 else()
     execute_process(COMMAND uname -m
         OUTPUT_VARIABLE RADIANT_EXECUTABLE OUTPUT_STRIP_TRAILING_WHITESPACE)
 endif()
-set(RADIANT_ABOUTMSG "Custom build" CACHE STRING "About message")
 
+set(RADIANT_ABOUTMSG "Custom build" CACHE STRING "About message")
 message(STATUS "Building ${PROJECT_NAME} ${RADIANT_VERSION_STRING} ${RADIANT_ABOUTMSG}")
 
 
@@ -47,41 +52,31 @@ endif()
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
 
 # Enable Debug by default, can be changed with -D CMAKE_BUILD_TYPE=Release
-if(CMAKE_BUILD_TYPE STREQUAL "")
+if(NOT CMAKE_BUILD_TYPE)
     set(CMAKE_BUILD_TYPE Debug)
+endif()
+if(CMAKE_BUILD_TYPE MATCHES Debug)
     add_definitions(-D_DEBUG=1)
-else()
 endif()
 
-find_package(LibXml2 REQUIRED)
-include_directories(${LIBXML2_INCLUDE_DIR})
-
-find_package(GTK2 REQUIRED)
-include_directories(${GTK2_INCLUDE_DIRS} ${GTK2_GDK_INCLUDE_DIR} ${GTK2_GLIB_INCLUDE_DIR})
-
-find_package(GtkGLExt REQUIRED)
-include_directories(${GTKGL_INCLUDE_DIRS})
-
 find_package(OpenGL REQUIRED)
 
-add_definitions(
-    -DRADIANT_VERSION="${RADIANT_VERSION_STRING}"
-    -DRADIANT_MAJOR_VERSION="${NetRadiant_VERSION_MINOR}"
-    -DRADIANT_MINOR_VERSION="${NetRadiant_VERSION_PATCH}"
-    -DRADIANT_ABOUTMSG="${RADIANT_ABOUTMSG}"
-    -DRADIANT_EXECUTABLE="${RADIANT_EXECUTABLE}"
-)
+add_definitions(-DRADIANT_EXECUTABLE="${RADIANT_EXECUTABLE}")
+
 if(NOT WIN32)
     add_definitions(
         -DPOSIX=1
         -DXWINDOWS=1
     )
+    find_package(X11 REQUIRED)
+    include_directories(${X11_INCLUDE_DIR})
 else()
     add_definitions(
         -D_WIN32
     )
 endif()
 
+configure_file("${CMAKE_SOURCE_DIR}/include/version.cpp.in" "${CMAKE_BINARY_DIR}/version.cpp")
 set(INCLUDELIST
     include/aboutmsg.h
     include/cullable.cpp
@@ -170,215 +165,15 @@ set(INCLUDELIST
     include/windowobserver.cpp
     include/windowobserver.h
 )
-include_directories(include)
 
 add_subdirectory(libs)
-include_directories(libs)
-
-macro(radiant_plugin name)
-       message(STATUS "Found Plugin ${name}")
-       add_library(${name} MODULE ${ARGN})
-endmacro()
 
 add_subdirectory(contrib)
 add_subdirectory(plugins)
 
-set(RADIANTLIST
-    radiant/autosave.cpp
-    radiant/autosave.h
-    radiant/brush.cpp
-    radiant/brush.h
-    radiant/brush_primit.cpp
-    radiant/brush_primit.h
-    radiant/brushmanip.cpp
-    radiant/brushmanip.h
-    radiant/brushmodule.cpp
-    radiant/brushmodule.h
-    radiant/brushnode.cpp
-    radiant/brushnode.h
-    radiant/brushtokens.cpp
-    radiant/brushtokens.h
-    radiant/brushxml.cpp
-    radiant/brushxml.h
-    radiant/build.cpp
-    radiant/build.h
-    radiant/camwindow.cpp
-    radiant/camwindow.h
-    radiant/clippertool.cpp
-    radiant/clippertool.h
-    radiant/commands.cpp
-    radiant/commands.h
-    radiant/console.cpp
-    radiant/console.h
-    radiant/csg.cpp
-    radiant/csg.h
-    radiant/dialog.cpp
-    radiant/dialog.h
-    radiant/eclass.cpp
-    radiant/eclass.h
-    radiant/eclass_def.cpp
-    radiant/eclass_def.h
-    radiant/eclass_doom3.cpp
-    radiant/eclass_doom3.h
-    radiant/eclass_fgd.cpp
-    radiant/eclass_fgd.h
-    radiant/eclass_xml.cpp
-    radiant/eclass_xml.h
-    radiant/entity.cpp
-    radiant/entity.h
-    radiant/entityinspector.cpp
-    radiant/entityinspector.h
-    radiant/entitylist.cpp
-    radiant/entitylist.h
-    radiant/environment.cpp
-    radiant/environment.h
-    radiant/error.cpp
-    radiant/error.h
-    radiant/feedback.cpp
-    radiant/feedback.h
-    radiant/filetypes.cpp
-    radiant/filetypes.h
-    radiant/filters.cpp
-    radiant/filters.h
-    radiant/findtexturedialog.cpp
-    radiant/findtexturedialog.h
-    radiant/glwidget.cpp
-    radiant/glwidget.h
-    radiant/grid.cpp
-    radiant/grid.h
-    radiant/groupdialog.cpp
-    radiant/groupdialog.h
-    radiant/gtkdlgs.cpp
-    radiant/gtkdlgs.h
-    radiant/gtkmisc.cpp
-    radiant/gtkmisc.h
-    radiant/help.cpp
-    radiant/help.h
-    radiant/image.cpp
-    radiant/image.h
-    radiant/main.cpp
-    radiant/main.h
-    radiant/mainframe.cpp
-    radiant/mainframe.h
-    radiant/map.cpp
-    radiant/map.h
-    radiant/mru.cpp
-    radiant/mru.h
-    radiant/multimon.cpp
-    radiant/multimon.h
-    radiant/nullmodel.cpp
-    radiant/nullmodel.h
-    radiant/parse.cpp
-    radiant/parse.h
-    radiant/patch.cpp
-    radiant/patch.h
-    radiant/patchdialog.cpp
-    radiant/patchdialog.h
-    radiant/patchmanip.cpp
-    radiant/patchmanip.h
-    radiant/patchmodule.cpp
-    radiant/patchmodule.h
-    radiant/plugin.cpp
-    radiant/plugin.h
-    radiant/pluginapi.cpp
-    radiant/pluginapi.h
-    radiant/pluginmanager.cpp
-    radiant/pluginmanager.h
-    radiant/pluginmenu.cpp
-    radiant/pluginmenu.h
-    radiant/plugintoolbar.cpp
-    radiant/plugintoolbar.h
-    radiant/points.cpp
-    radiant/points.h
-    radiant/preferencedictionary.cpp
-    radiant/preferencedictionary.h
-    radiant/preferences.cpp
-    radiant/preferences.h
-    radiant/qe3.cpp
-    radiant/qe3.h
-    radiant/qgl.cpp
-    radiant/qgl.h
-    radiant/referencecache.cpp
-    radiant/referencecache.h
-    radiant/renderer.cpp
-    radiant/renderer.h
-    radiant/renderstate.cpp
-    radiant/renderstate.h
-    radiant/resource.h
-    radiant/scenegraph.cpp
-    radiant/scenegraph.h
-    radiant/select.cpp
-    radiant/select.h
-    radiant/selection.cpp
-    radiant/selection.h
-    radiant/server.cpp
-    radiant/server.h
-    radiant/shaders.cpp
-    radiant/shaders.h
-    radiant/sockets.cpp
-    radiant/sockets.h
-    radiant/stacktrace.cpp
-    radiant/stacktrace.h
-    radiant/surfacedialog.cpp
-    radiant/surfacedialog.h
-    radiant/texmanip.cpp
-    radiant/texmanip.h
-    radiant/textureentry.cpp
-    radiant/textureentry.h
-    radiant/textures.cpp
-    radiant/textures.h
-    radiant/texwindow.cpp
-    radiant/texwindow.h
-    radiant/timer.cpp
-    radiant/timer.h
-    radiant/treemodel.cpp
-    radiant/treemodel.h
-    radiant/undo.cpp
-    radiant/undo.h
-    radiant/url.cpp
-    radiant/url.h
-    radiant/view.cpp
-    radiant/view.h
-    radiant/watchbsp.cpp
-    radiant/watchbsp.h
-    radiant/winding.cpp
-    radiant/winding.h
-    radiant/windowobservers.cpp
-    radiant/windowobservers.h
-    radiant/xmlstuff.cpp
-    radiant/xmlstuff.h
-    radiant/xywindow.cpp
-    radiant/xywindow.h
-)
+add_subdirectory(radiant build)
 
-add_executable(radiant WIN32 radiant/radiant.rc ${RADIANTLIST})
-target_link_libraries(radiant
-    ${CMAKE_DL_LIBS}
-    ${LIBXML2_LIBRARIES}
-    ${GTK2_LIBRARIES}
-    ${OPENGL_gl_LIBRARY}
-    cmdlib
-    container
-    ddslib
-    debugging
-    gtkutil
-    ${GTKGL_LIBRARIES}
-    l_net
-#    math
-    mathlib
-    md5lib
-    memory
-    modulesystem
-    os
-    picomodel
-    profile
-    script
-    signal
-    splines
-    stream
-    string
-    xmllib
-)
+add_subdirectory(tools)
 
 if(NOT (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR))
     # Copy data files from sources to the build directory