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 ()
+
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(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)
set(RADIANT_BIN_DIR ${CMAKE_INSTALL_PREFIX} CACHE INTERNAL "...")
set(RADIANT_DATA_DIR ${CMAKE_INSTALL_PREFIX} CACHE INTERNAL "...")
-if (FHS_INSTALL)
+if (FHS_INSTALL AND NOT BUNDLE_LIBRARIES)
set(RADIANT_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/${RADIANT_BASENAME})
set(RADIANT_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin)
set(RADIANT_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/${RADIANT_BASENAME})
set(GTK_TARGET 2 CACHE STRING "GTK target")
add_definitions(-DGTK_TARGET=${GTK_TARGET})
- if (GTK_TARGET EQUAL 2 AND WIN32)
- add_definitions(-DWORKAROUND_WINDOWS_GTK2_GLWIDGET=1)
+ if (WIN32)
+ add_definitions(-DWORKAROUND_WINDOWS_FLOATING_WINDOW=1)
+
+ if (GTK_TARGET EQUAL 2)
+ add_definitions(-DWORKAROUND_WINDOWS_GTK2_GLWIDGET=1)
+ endif ()
endif ()
endif ()
endif ()
if (BUILD_BINARIES)
+ add_custom_target(binaries ALL)
+
if(APPLE OR ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
link_directories(
/usr/local/lib
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}>"
endif ()
macro (radiant_tool name)
- if (BUNDLE_LIBRARIES AND WIN32)
+ add_dependencies(binaries ${name})
+
+ if (WIN32)
add_executable(${name} ${ARGN} ${PROJECT_SOURCE_DIR}/include/lib.rc)
else ()
add_executable(${name} ${ARGN})
- endif ()
+ endif()
copy_dlls(${name})