-cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
project(NetRadiant C CXX)
+if (EXISTS "${PROJECT_SOURCE_DIR}/libs/crunch/inc/crn_decomp.h")
+ set(DEFAULT_BUILD_CRUNCH ON CACHE INTERNAL "...")
+else ()
+ set(DEFAULT_BUILD_CRUNCH OFF CACHE INTERNAL "...")
+endif ()
+
+if (EXISTS "${PROJECT_SOURCE_DIR}/tools/unvanquished/daemonmap/tools/quake3/q3map2/main.c")
+ set(DEFAULT_BUILD_DAEMONMAP ON CACHE INTERNAL "...")
+else ()
+ set(DEFAULT_BUILD_DAEMONMAP OFF CACHE INTERNAL "...")
+endif ()
+
option(BUILD_RADIANT "Build the GUI" ON)
option(BUILD_TOOLS "Build the tools" ON)
-option(BUILD_CRUNCH "Build Crunch image support" OFF)
+option(BUILD_CRUNCH "Build Crunch image support" ${DEFAULT_BUILD_CRUNCH})
+option(BUILD_DAEMONMAP "Build daemonmap navigation mesh generator" ${DEFAULT_BUILD_DAEMONMAP})
option(DOWNLOAD_GAMEPACKS "Download game packs" ON)
option(USE_WERROR "Build with -Werror -pedantic-errors" OFF)
option(FHS_INSTALL "Install according to Filesystem Hierarchy Standard" OFF)
endif ()
endif ()
+option(BUILTIN_GTKGLEXT "Builtin GtkGLExt" OFF)
+if (BUILTIN_GTKGLEXT)
+ include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)
+
+ execute_process(COMMAND pkg-config --libs gdk-2.0 gtk+-2.0 glib-2.0 gl
+ OUTPUT_VARIABLE GTKGLEXT_LDFLAGS
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ set(GTKGLEXT_LDFLAGS "-lm ${GTKGLEXT_LDFLAGS}")
+
+ ExternalProject_Add(gtkglext
+ GIT_REPOSITORY https://gitlab.gnome.org/illwieckz/gtkglext.git
+ GIT_TAG fixes
+ BUILD_IN_SOURCE ON
+ CONFIGURE_COMMAND NOCONFIGURE=1 ./autogen.sh
+ CONFIGURE_COMMAND && ./configure --prefix "${CMAKE_BINARY_DIR}/external"
+ BUILD_COMMAND $(MAKE) LDFLAGS=${GTKGLEXT_LDFLAGS}
+ INSTALL_COMMAND $(MAKE) install
+ )
+endif ()
+
#-----------------------------------------------------------------------
# Defs
#-----------------------------------------------------------------------
include_directories("${PROJECT_SOURCE_DIR}/include")
include_directories("${PROJECT_SOURCE_DIR}/libs")
- if (WIN32 AND NOT CMAKE_CROSSCOMPILING)
- set(BUNDLE_LIBRARIES_DEFAULT ON)
- else ()
- set(BUNDLE_LIBRARIES_DEFAULT OFF)
- endif ()
+ if (WIN32 OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+ set(BUNDLING_SUPPORTED ON)
+ endif()
- option(BUNDLE_LIBRARIES "Bundle libraries" ${BUNDLE_LIBRARIES_DEFAULT})
+ if (BUNDLING_SUPPORTED)
+ if(WIN32 AND NOT CMAKE_CROSSCOMPILING)
+ set(BUNDLE_LIBRARIES_DEFAULT ON)
+ else ()
+ set(BUNDLE_LIBRARIES_DEFAULT OFF)
+ endif ()
+
+ option(BUNDLE_LIBRARIES "Bundle libraries" ${BUNDLE_LIBRARIES_DEFAULT})
+ endif ()
- if (BUNDLE_LIBRARIES)
+ if (BUNDLE_LIBRARIES AND BUNDLING_SUPPORTED)
add_subdirectory(bundle)
set(FHS_INSTALL OFF CACHE PATH "Disabled because of BUNDLE_LIBRARIES" FORCE)
endif ()
macro (copy_dlls target)
- if (BUNDLE_LIBRARIES)
+ if (BUNDLE_LIBRARIES AND BUNDLING_SUPPORTED)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND "${PROJECT_SOURCE_DIR}/library-bundler"
"register" "${PROJECT_BINARY_DIR}" "$<TARGET_FILE:${target}>"
#-----------------------------------------------------------------------
if (BUILD_BINARIES)
- if (CMAKE_EXECUTABLE_SUFFIX)
- string(REGEX REPLACE "^[.]" "" RADIANT_EXECUTABLE ${CMAKE_EXECUTABLE_SUFFIX})
- endif ()
-
macro (radiant_tool name)
add_dependencies(binaries ${name})
- if (BUNDLE_LIBRARIES AND WIN32)
+ if (WIN32)
add_executable(${name} ${ARGN} ${PROJECT_SOURCE_DIR}/include/lib.rc)
else ()
add_executable(${name} ${ARGN})
- endif ()
+ endif()
copy_dlls(${name})
if (BUILD_RADIANT)
add_subdirectory(radiant)
- set_target_properties(${RADIANT_BASENAME} PROPERTIES
- COMPILE_DEFINITIONS RADIANT_EXECUTABLE="${RADIANT_EXECUTABLE}"
- )
endif ()
endif ()
docs
DESTINATION ${RADIANT_DATA_DIR}
)
+
+ install(FILES
+ setup/data/tools/global.xlink
+ DESTINATION ${RADIANT_DATA_DIR}
+ )
endif ()
if (DOWNLOAD_GAMEPACKS)