2019-10-29 18:53:46 +00:00
cmake_minimum_required( VERSION 3.1.0 )
2019-09-22 21:15:46 +00:00
include(precompiled_headers)
if( COMMAND cmake_policy )
cmake_policy( SET CMP0003 NEW )
endif()
include( CheckCXXSourceCompiles )
include( CheckFunctionExists )
include( CheckCXXCompilerFlag )
include( CheckIncludeFile )
include( CheckIncludeFiles )
include( CheckLibraryExists )
include( FindPkgConfig )
2019-09-22 23:28:18 +00:00
if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
2019-09-22 21:15:46 +00:00
option( NO_STRIP "Do not strip Release or MinSizeRel builds" )
# At least some versions of Xcode fail if you strip with the linker
# instead of the separate strip utility.
if( APPLE )
set( NO_STRIP ON )
endif()
endif()
2021-11-14 14:03:50 +00:00
# Build does not work with signed chars! Also set a stricter warning level, but silence the pointless and annoying parts of level 4 (Intentionally only for C++! The C code we use is too old and would warn too much)
2019-10-16 21:09:02 +00:00
if (MSVC)
2021-12-24 11:08:50 +00:00
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /J /W4 /wd4100 /wd4127 /wd4131 /wd4201 /wd4210 /wd4244 /wd4245 /wd4324 /wd4389 /wd4505 /wd4706 /wd4458 /wd4459" )
2021-11-14 14:03:50 +00:00
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4189" ) # "unused initialized local variable" - useful warning that creates too much noise in external or macro based code. Can be enabled for cleanup passes on the code.
2020-01-06 01:41:47 +00:00
else()
2020-01-07 00:11:19 +00:00
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funsigned-char -Wno-missing-braces -Wno-char-subscripts -Wno-unused-variable" )
2019-10-16 21:09:02 +00:00
endif()
2022-10-22 17:43:55 +00:00
option( DYN_OPENAL "Dynamically load OpenAL" ON )
2019-09-22 21:15:46 +00:00
if( APPLE )
option( OSX_COCOA_BACKEND "Use native Cocoa backend instead of SDL" ON )
endif()
2019-12-27 12:37:39 +00:00
target_architecture(TARGET_ARCHITECTURE)
message(STATUS "Architecture is ${TARGET_ARCHITECTURE}")
2019-11-19 20:35:35 +00:00
2020-12-11 15:10:58 +00:00
if ( ${TARGET_ARCHITECTURE} MATCHES "arm64" )
set (ARM64 aarch64)
endif()
2019-10-17 18:29:58 +00:00
# Right now only 64 bit is supported.
2019-12-27 12:37:39 +00:00
if( ${TARGET_ARCHITECTURE} MATCHES "x86_64" )
2022-10-20 20:24:25 +00:00
set( X64 64 )
2019-11-19 20:35:35 +00:00
endif()
2019-09-22 21:15:46 +00:00
2019-12-27 12:37:39 +00:00
if( X64 OR ${TARGET_ARCHITECTURE} MATCHES "i386" )
2019-09-22 21:15:46 +00:00
add_definitions( -DARCH_IA32 )
endif()
2019-12-27 12:37:39 +00:00
if( NOT PROJECT_LIBRARIES )
set( PROJECT_LIBRARIES "" )
2019-09-22 21:15:46 +00:00
endif()
if( WIN32 )
if( X64 )
set( WIN_TYPE Win64 )
set( XBITS x64 )
else()
set( WIN_TYPE Win32 )
set( XBITS x86 )
endif()
add_definitions( -D_WIN32 )
2019-10-17 18:29:58 +00:00
set( DX_dinput8_LIBRARY dinput8 )
2019-09-22 21:15:46 +00:00
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES
2019-09-22 21:15:46 +00:00
wsock32
winmm
"${DX_dinput8_LIBRARY}"
ole32
user32
gdi32
comctl32
comdlg32
ws2_32
setupapi
oleaut32
2020-01-06 01:41:47 +00:00
dbghelp
2021-05-21 23:06:33 +00:00
legacy_stdio_definitions )
2020-01-06 01:41:47 +00:00
2019-09-22 23:28:18 +00:00
if( NOT DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} DelayImp )
2019-09-22 21:15:46 +00:00
endif()
2019-09-22 23:28:18 +00:00
if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
2019-09-22 21:15:46 +00:00
if( DX_dxguid_LIBRARY )
2019-12-27 12:37:39 +00:00
list( APPEND PROJECT_LIBRARIES "${DX_dxguid_LIBRARY}" )
2019-09-22 21:15:46 +00:00
endif()
endif()
else()
if( APPLE )
set( NO_GTK ON )
set( DYN_GTK OFF )
# Prevent inclusion of fp.h and FixMath.h from Carbon framework
# Declarations from these files are not used but cause the following conflicts:
# - redefinition of 'FixedToFloat' and 'FloatToFixed' macros
# - redefinition of 'pi' as different kind of symbol
add_definitions( -D__FP__ -D__FIXMATH__ )
else()
option( NO_GTK "Disable GTK+ dialogs (Not applicable to Windows)" )
option( DYN_GTK "Load GTK+ at runtime instead of compile time" ON )
# Use GTK+ for the IWAD picker, if available.
if( NOT NO_GTK )
pkg_check_modules( GTK3 gtk+-3.0 )
if( GTK3_FOUND )
if( NOT DYN_GTK )
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${GTK3_LIBRARIES} )
2019-09-22 21:15:46 +00:00
endif()
include_directories( ${GTK3_INCLUDE_DIRS} )
link_directories( ${GTK3_LIBRARY_DIRS} )
else()
pkg_check_modules( GTK2 gtk+-2.0 )
if( GTK2_FOUND )
if( NOT DYN_GTK )
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${GTK2_LIBRARIES} )
2019-09-22 21:15:46 +00:00
endif()
include_directories( ${GTK2_INCLUDE_DIRS} )
link_directories( ${GTK2_LIBRARY_DIRS} )
else()
set( NO_GTK ON )
endif()
endif()
endif()
endif()
2021-05-21 23:06:33 +00:00
if ( NOT WIN32 )
option( NO_SDL_JOYSTICK "Disable SDL joystick support (Not applicable to Windows)" OFF )
if ( NO_SDL_JOYSTICK )
add_definitions( -DNO_SDL_JOYSTICK=1 )
endif()
endif()
2019-09-22 21:15:46 +00:00
if( NO_GTK )
add_definitions( -DNO_GTK )
elseif( DYN_GTK )
add_definitions( -DDYN_GTK=1 )
else()
add_definitions( -DDYN_GTK=0 )
endif()
# Non-Windows version also needs SDL except native OS X backend
if( NOT APPLE OR NOT OSX_COCOA_BACKEND )
find_package( SDL2 REQUIRED )
include_directories( "${SDL2_INCLUDE_DIR}" )
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} "${SDL2_LIBRARY}" )
2019-09-22 21:15:46 +00:00
endif()
find_path( FPU_CONTROL_DIR fpu_control.h )
if( FPU_CONTROL_DIR )
include_directories( ${FPU_CONTROL_DIR} )
add_definitions( -DHAVE_FPU_CONTROL )
endif()
endif()
if( NOT NO_OPENAL )
if ( NOT DYN_OPENAL ) # DYN_OPENAL uses local copies of the headers.
find_package( OpenAL )
mark_as_advanced(CLEAR OPENAL_INCLUDE_DIR)
if( OPENAL_INCLUDE_DIR )
include_directories( ${OPENAL_INCLUDE_DIR} )
mark_as_advanced(CLEAR OPENAL_LIBRARY)
if( OPENAL_LIBRARY )
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${OPENAL_LIBRARY} ${PROJECT_LIBRARIES} )
2019-09-22 21:15:46 +00:00
else()
set( NO_OPENAL ON )
endif()
else()
set( NO_OPENAL ON )
endif()
else()
add_definitions( -DDYN_OPENAL )
endif()
endif()
if( NO_OPENAL )
add_definitions( -DNO_OPENAL=1 )
endif()
# Decide on SSE setup
if( X64 )
set( HAVE_MMX 1 )
else( X64 )
endif( X64 )
CHECK_CXX_SOURCE_COMPILES("#include <ppl.h>
int main() { concurrency::parallel_for(0, 1, 1, [](int) { } ); }"
HAVE_PARALLEL_FOR)
if( NOT HAVE_PARALLEL_FOR )
CHECK_CXX_SOURCE_COMPILES("#include <dispatch/dispatch.h>
int main() { dispatch_apply(1, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(size_t) { }); }"
HAVE_DISPATCH_APPLY)
endif()
# Set up flags for MSVC
if (MSVC)
set( CMAKE_CXX_FLAGS "/MP ${CMAKE_CXX_FLAGS}" )
endif (MSVC)
# Set up flags for GCC
2019-09-22 23:28:18 +00:00
if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
2019-09-22 21:15:46 +00:00
if( PROFILE )
set( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -pg" )
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg" )
set( CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -pg" )
set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -pg" )
endif()
2020-01-20 09:09:44 +00:00
#set( REL_CXX_FLAGS "-fno-rtti" )
2019-09-22 21:15:46 +00:00
if( NOT PROFILE AND NOT APPLE )
# On OS X frame pointers are required for exception handling, at least with Clang
set( REL_CXX_FLAGS "${REL_CXX_FLAGS} -fomit-frame-pointer" )
endif()
set( CMAKE_CXX_FLAGS_RELEASE "${REL_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}" )
set( CMAKE_CXX_FLAGS_MINSIZEREL "${REL_CXX_FLAGS} ${CMAKE_CXX_FLAGS_MINSIZEREL}" )
set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${REL_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" )
# Support for the GCC/Clang sanitizers.
set( WITH_ASAN 0 CACHE BOOL "Enable the Address Sanitizer")
if( NOT CMAKE_COMPILER_IS_GNUCXX )
set( WITH_MSAN 0 CACHE BOOL "Enable the Memory Sanitizer")
endif( NOT CMAKE_COMPILER_IS_GNUCXX )
set( WITH_UBSAN 0 CACHE BOOL "Enable the Undefined Behavior Sanitizer")
if( WITH_MSAN )
if ( WITH_ASAN OR WITH_UBSAN )
message( SEND_ERROR "You can't use MSAN with either ASAN or UBSAN." )
endif ( WITH_ASAN OR WITH_UBSAN )
endif( WITH_MSAN )
set( SANITIZER_FLAG "" )
if( WITH_ASAN )
set( SANITIZER_FLAG "-fsanitize=address" )
if ( WITH_UBSAN )
set( SANITIZER_FLAG "${SANITIZER_FLAG},undefined" )
endif( WITH_UBSAN )
elseif( WITH_MSAN )
set( SANITIZER_FLAG "-fsanitize=memory" )
elseif( WITH_UBSAN )
set( SANITIZER_FLAG "-fsanitize=undefined" )
endif( WITH_ASAN )
set( CMAKE_CXX_FLAGS "${SANITIZER_FLAG} ${CMAKE_CXX_FLAGS}" )
set( CMAKE_C_FLAGS "${SANITIZER_FLAG} ${CMAKE_C_FLAGS}" )
set( CMAKE_EXE_LINKER_FLAGS "${SANITIZER_FLAG} ${CMAKE_EXE_LINKER_FLAGS}" )
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.5")
set( CMAKE_C_FLAGS "-Wno-unused-result ${CMAKE_C_FLAGS}" )
set( CMAKE_CXX_FLAGS "-Wno-unused-result ${CMAKE_CXX_FLAGS}" )
endif()
2020-10-25 12:26:40 +00:00
if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
2019-09-22 21:15:46 +00:00
if( APPLE OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "3.6" )
set( CMAKE_CXX_FLAGS "-Wno-inconsistent-missing-override ${CMAKE_CXX_FLAGS}" )
endif()
endif()
set( CMAKE_C_FLAGS "-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wno-missing-field-initializers -ffp-contract=off ${CMAKE_C_FLAGS}" )
set( CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wno-missing-field-initializers -ffp-contract=off ${CMAKE_CXX_FLAGS}" )
if( NOT X64 AND NOT CAN_DO_MFPMATH )
2020-10-25 12:26:40 +00:00
set( CMAKE_C_FLAGS "-DNO_SSE ${CMAKE_C_FLAGS}" )
2019-09-22 21:15:46 +00:00
set( CMAKE_CXX_FLAGS "-DNO_SSE ${CMAKE_CXX_FLAGS}" )
endif()
# Remove extra warnings when using the official DirectX headers.
# Also, TDM-GCC 4.4.0 no longer accepts glibc-style printf formats as valid,
# which is a royal pain. The previous version I had been using was fine with them.
# MinGW: switch to the Windows Unicode API.
if( WIN32 )
set( CMAKE_CXX_FLAGS "-Wno-unknown-pragmas -Wno-comment -Wno-format ${CMAKE_CXX_FLAGS}" )
set( CMAKE_CXX_FLAGS "-D_UNICODE -DUNICODE ${CMAKE_CXX_FLAGS}" )
set( CMAKE_CXX_FLAGS "-D_WIN32_WINNT=0x0600 ${CMAKE_CXX_FLAGS}" )
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -municode" )
endif()
# Detect FreeBSD and add flags
if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" )
endif()
2021-12-30 09:30:21 +00:00
2020-10-25 12:26:40 +00:00
if(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ljemalloc")
endif()
2019-09-22 21:15:46 +00:00
if( NOT NO_STRIP )
set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s" )
set (CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -s" )
endif()
endif()
# Check for thread_local keyword, it's optional at the moment
2020-01-06 01:41:47 +00:00
#CHECK_CXX_SOURCE_COMPILES("thread_local int i; int main() { i = 0; }"
# HAVE_THREAD_LOCAL)
2019-09-22 21:15:46 +00:00
2020-01-06 01:41:47 +00:00
#if( NOT HAVE_THREAD_LOCAL )
# message( SEND_ERROR "C++ compiler doesn't support thread_local storage duration specifier" )
#endif()
2019-09-22 21:15:46 +00:00
# Check for functions that may or may not exist.
2021-05-21 23:06:33 +00:00
require_stricmp()
require_strnicmp()
2019-09-22 21:15:46 +00:00
if( NOT MSVC )
add_definitions( -D__forceinline=inline )
endif()
if( UNIX )
CHECK_LIBRARY_EXISTS( rt clock_gettime "" CLOCK_GETTIME_IN_RT )
if( NOT CLOCK_GETTIME_IN_RT )
CHECK_FUNCTION_EXISTS( clock_gettime CLOCK_GETTIME_EXISTS )
if( NOT CLOCK_GETTIME_EXISTS )
message( STATUS "Could not find clock_gettime. Timing statistics will not be available." )
add_definitions( -DNO_CLOCK_GETTIME )
endif()
else()
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} rt )
2019-09-22 21:15:46 +00:00
endif()
endif()
# Flags
# Update gitinfo.h
add_custom_target( revision_check ALL
2020-04-11 22:16:14 +00:00
COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_SOURCE_DIR}/tools/updaterevision/UpdateRevision.cmake" source/gitinfo.h
2019-09-22 21:15:46 +00:00
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
2020-04-11 22:04:02 +00:00
)
2019-09-22 21:15:46 +00:00
2019-12-26 13:16:00 +00:00
# required libraries
2019-09-22 21:15:46 +00:00
2021-12-11 16:08:40 +00:00
2022-03-18 08:17:46 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} "${ZLIB_LIBRARIES}" "${JPEG_LIBRARIES}" "${BZIP2_LIBRARIES}" "${CMAKE_DL_LIBS}" "${TESS_LIBRARIES}" "${DRPC_LIBRARIES}")
2019-09-22 21:15:46 +00:00
if (HAVE_VULKAN)
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} "glslang" "SPIRV" "OGLCompiler")
2019-09-22 21:15:46 +00:00
endif()
2020-02-09 12:26:51 +00:00
# ZMUSIC
2020-02-09 14:48:07 +00:00
if( MSVC )
find_package( ZMusic )
else()
2020-04-13 08:28:31 +00:00
find_package( ZMusic REQUIRED )
2020-02-09 14:48:07 +00:00
endif()
2020-12-11 15:10:58 +00:00
message("Building for target architecture: ${TARGET_ARCHITECTURE}")
2020-02-09 12:26:51 +00:00
if( MSVC AND NOT ZMUSIC_FOUND )
# Use prebuilt library
set( ZMUSIC_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../bin/windows/zmusic" )
set( ZMUSIC_INCLUDE_DIR ${ZMUSIC_ROOT_PATH}/include )
2021-05-22 17:23:47 +00:00
set( ZMUSIC_LIBRARIES zmusiclite )
2020-02-09 12:26:51 +00:00
if( X64 )
link_directories( ${ZMUSIC_ROOT_PATH}/64bit )
2021-05-21 23:06:33 +00:00
elseif( ARM64 )
2020-12-11 15:10:58 +00:00
link_directories( ${ZMUSIC_ROOT_PATH}/arm64 )
2020-02-09 12:26:51 +00:00
else()
link_directories( ${ZMUSIC_ROOT_PATH}/32bit )
endif()
set( ZMUSIC_FOUND TRUE )
endif()
2021-05-21 23:06:33 +00:00
2020-01-28 09:04:48 +00:00
# VPX
if( MSVC AND NOT VPX_FOUND )
# Use prebuilt library
2021-05-21 23:06:33 +00:00
set( VPX_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../bin/Windows/vpx" )
2020-01-28 09:04:48 +00:00
set( VPX_INCLUDE_DIR ${VPX_ROOT_PATH}/include )
2022-06-06 09:45:02 +00:00
set( VPX_LIBRARIES libvpx )
if ( NOT ARM64 )
set (VPX_LIBRARIES ${VPX_LIBRARIES} libcompat-to-msvc )
endif()
2020-12-11 15:10:58 +00:00
if( ARM64 )
link_directories( ${VPX_ROOT_PATH}/lib/arm64 )
elseif( X64 )
2020-01-28 09:04:48 +00:00
link_directories( ${VPX_ROOT_PATH}/lib/64 )
else()
link_directories( ${VPX_ROOT_PATH}/lib/32 )
# Workaround for "error LNK2026: module unsafe for SAFESEH image."
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO" )
endif()
set( VPX_FOUND TRUE )
endif()
if( VPX_FOUND )
add_definitions( "-DUSE_LIBVPX=1" )
include_directories( "${VPX_INCLUDE_DIR}" )
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${VPX_LIBRARIES} )
2020-11-08 08:00:20 +00:00
else()
message( SEND_ERROR "Could not find libvpx" )
2020-01-28 09:04:48 +00:00
endif()
2022-03-18 08:17:46 +00:00
include_directories( "${ZLIB_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${GDTOA_INCLUDE_DIR}" "${TESS_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}" )
2020-01-28 09:04:48 +00:00
2019-09-22 21:15:46 +00:00
if (WIN32)
2020-01-28 09:04:48 +00:00
include_directories( "platform/win32" )
2019-09-22 21:15:46 +00:00
endif()
if( ${HAVE_VM_JIT} )
add_definitions( -DHAVE_VM_JIT )
include_directories( "${ASMJIT_INCLUDE_DIR}" )
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} "${ASMJIT_LIBRARIES}")
2019-09-22 21:15:46 +00:00
endif()
2020-04-23 20:58:02 +00:00
# Start defining source files for ZDoom
set( PLAT_WIN32_SOURCES
platform/win32/i_steam.cpp
common/platform/win32/hardware.cpp
common/platform/win32/i_input.cpp
common/platform/win32/i_keyboard.cpp
common/platform/win32/i_mouse.cpp
common/platform/win32/i_dijoy.cpp
common/platform/win32/i_rawps2.cpp
common/platform/win32/i_xinput.cpp
common/platform/win32/i_main.cpp
2022-06-06 09:45:02 +00:00
common/platform/win32/i_mainwindow.cpp
2020-04-23 20:58:02 +00:00
common/platform/win32/i_system.cpp
common/platform/win32/i_specialpaths.cpp
common/platform/win32/st_start.cpp
common/platform/win32/gl_sysfb.cpp
common/platform/win32/base_sysfb.cpp
common/platform/win32/win32basevideo.cpp
common/platform/win32/win32glvideo.cpp
2022-08-03 11:27:48 +00:00
)
2019-09-22 21:15:46 +00:00
2020-04-23 20:58:02 +00:00
if (HAVE_VULKAN)
set (PLAT_WIN32_SOURCES ${PLAT_WIN32_SOURCES} common/platform/win32/win32vulkanvideo.cpp )
endif()
2021-12-30 09:30:21 +00:00
2020-12-11 15:10:58 +00:00
# todo: implement an actual crash catcher for ARM
# for now this is purely experimental
if (NOT ${TARGET_ARCHITECTURE} MATCHES "arm" )
set (PLAT_WIN32_SOURCES ${PLAT_WIN32_SOURCES} common/platform/win32/i_crash.cpp )
endif()
if (MSVC AND ${TARGET_ARCHITECTURE} MATCHES "arm")
2021-01-02 12:52:50 +00:00
set (PLAT_WIN32_SOURCES ${PLAT_WIN32_SOURCES} common/platform/win32/i_crash_arm.cpp )
2020-12-11 15:10:58 +00:00
add_definitions( -DNO_SSE -D__ARM__ -DRAPIDJSON_ENDIAN=RAPIDJSON_LITTLEENDIAN)
endif()
2020-01-06 01:35:27 +00:00
set( PLAT_POSIX_SOURCES
2020-04-23 19:18:40 +00:00
platform/posix/i_steam.cpp
2020-04-23 20:58:02 +00:00
common/platform/posix/i_system_posix.cpp )
2020-01-06 01:35:27 +00:00
set( PLAT_SDL_SOURCES
2020-04-23 20:58:02 +00:00
common/platform/posix/sdl/crashcatcher.c
common/platform/posix/sdl/hardware.cpp
common/platform/posix/sdl/i_gui.cpp
common/platform/posix/sdl/i_input.cpp
common/platform/posix/sdl/i_joystick.cpp
common/platform/posix/sdl/i_main.cpp
common/platform/posix/sdl/i_system.cpp
common/platform/posix/sdl/sdlglvideo.cpp
common/platform/posix/sdl/st_start.cpp )
2020-01-06 01:35:27 +00:00
set( PLAT_UNIX_SOURCES
2020-04-23 20:58:02 +00:00
common/platform/posix/unix/i_specialpaths.cpp
common/platform/posix/unix/gtk_dialogs.cpp )
2020-01-06 01:35:27 +00:00
set( PLAT_OSX_SOURCES
2020-04-23 20:58:02 +00:00
common/platform/posix/osx/iwadpicker_cocoa.mm
common/platform/posix/osx/i_specialpaths.mm
2020-01-26 14:39:10 +00:00
platform/posix/osx/raze.icns )
2020-01-06 01:35:27 +00:00
set( PLAT_COCOA_SOURCES
2020-04-23 20:58:02 +00:00
common/platform/posix/cocoa/i_input.mm
common/platform/posix/cocoa/i_joystick.cpp
common/platform/posix/cocoa/i_main.mm
common/platform/posix/cocoa/i_system.mm
common/platform/posix/cocoa/i_video.mm
common/platform/posix/cocoa/st_console.mm
common/platform/posix/cocoa/st_start.mm )
2019-09-22 21:15:46 +00:00
if( WIN32 )
2020-04-23 20:58:02 +00:00
set( SYSTEM_SOURCES_DIR common/platform/win32 )
2019-09-22 21:15:46 +00:00
set( SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} )
set( OTHER_SYSTEM_SOURCES ${PLAT_POSIX_SOURCES} ${PLAT_SDL_SOURCES} ${PLAT_OSX_SOURCES} ${PLAT_COCOA_SOURCES} ${PLAT_UNIX_SOURCES} )
2019-09-22 23:28:18 +00:00
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} platform/win32/gameres.rc )
2019-09-22 21:15:46 +00:00
elseif( APPLE )
if( OSX_COCOA_BACKEND )
2020-04-23 20:58:02 +00:00
set( SYSTEM_SOURCES_DIR common/platform/posix common/platform/posix/cocoa )
2019-09-22 21:15:46 +00:00
set( SYSTEM_SOURCES ${PLAT_COCOA_SOURCES} )
set( OTHER_SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} ${PLAT_SDL_SOURCES} ${PLAT_UNIX_SOURCES} )
else()
2020-04-23 20:58:02 +00:00
set( SYSTEM_SOURCES_DIR common/platform/posix common/platform/posix/sdl )
2019-09-22 21:15:46 +00:00
set( SYSTEM_SOURCES ${PLAT_SDL_SOURCES} )
2020-04-23 20:58:02 +00:00
set( PLAT_OSX_SOURCES ${PLAT_OSX_SOURCES} common/platform/posix/sdl/i_system.mm )
2019-09-22 21:15:46 +00:00
set( OTHER_SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} ${PLAT_COCOA_SOURCES} ${PLAT_UNIX_SOURCES} )
endif()
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} ${PLAT_POSIX_SOURCES} ${PLAT_OSX_SOURCES} )
2020-01-06 01:35:27 +00:00
set_source_files_properties( platform/posix/osx/${PROJECT_NAME}.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources )
2020-04-23 20:58:02 +00:00
set_source_files_properties( common/platform/posix/osx/iwadpicker_cocoa.mm PROPERTIES COMPILE_FLAGS -fobjc-exceptions )
2019-09-22 21:15:46 +00:00
else()
2020-04-23 20:58:02 +00:00
set( SYSTEM_SOURCES_DIR common/platform/posix common/platform/posix/sdl )
2019-09-22 21:15:46 +00:00
set( SYSTEM_SOURCES ${PLAT_POSIX_SOURCES} ${PLAT_SDL_SOURCES} ${PLAT_UNIX_SOURCES} )
set( OTHER_SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} ${PLAT_OSX_SOURCES} ${PLAT_COCOA_SOURCES} )
endif()
2020-05-24 19:19:33 +00:00
if( HAVE_MMX )
add_definitions( -DHAVE_MMX=1 )
set( SYSTEM_SOURCES ${SYSTEM_SOURCES}
common/textures/hires/hqnx_asm/hq2x_asm.cpp
common/textures/hires/hqnx_asm/hq3x_asm.cpp
common/textures/hires/hqnx_asm/hq4x_asm.cpp
common/textures/hires/hqnx_asm/hqnx_asm_Image.cpp)
2021-05-21 23:06:33 +00:00
if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
2020-05-24 19:19:33 +00:00
set_source_files_properties(
common/textures/hires/hqnx_asm/hq2x_asm.cpp
common/textures/hires/hqnx_asm/hq3x_asm.cpp
common/textures/hires/hqnx_asm/hq4x_asm.cpp
common/textures/hires/hqresize.cpp
PROPERTIES COMPILE_FLAGS "-mmmx" )
2021-05-21 23:06:33 +00:00
endif( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
2020-05-24 19:19:33 +00:00
endif( HAVE_MMX )
2019-09-22 21:15:46 +00:00
if( HAVE_PARALLEL_FOR )
add_definitions( -DHAVE_PARALLEL_FOR=1 )
elseif( HAVE_DISPATCH_APPLY )
add_definitions( -DHAVE_DISPATCH_APPLY=1 )
else()
option( NO_OPENMP "Disable usage of OpenMP" OFF )
if( NOT NO_OPENMP )
include( FindOpenMP )
if( OPENMP_FOUND )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
endif( OPENMP_FOUND )
endif( NOT NO_OPENMP )
endif()
2020-04-07 22:19:49 +00:00
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zcc-parse.c ${CMAKE_CURRENT_BINARY_DIR}/zcc-parse.h
COMMAND lemon -C${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/frontend/zcc-parse.lemon
DEPENDS lemon ${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/frontend/zcc-parse.lemon )
2019-09-22 21:15:46 +00:00
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sc_man_scanner.h
2020-04-11 22:04:02 +00:00
COMMAND re2c --no-generation-date -s -o ${CMAKE_CURRENT_BINARY_DIR}/sc_man_scanner.h ${CMAKE_CURRENT_SOURCE_DIR}/common/engine/sc_man_scanner.re
DEPENDS re2c ${CMAKE_CURRENT_SOURCE_DIR}/common/engine/sc_man_scanner.re )
2020-01-06 01:41:47 +00:00
2019-09-22 21:15:46 +00:00
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
#option( SEND_ANON_STATS "Enable sending of anonymous hardware statistics" ON )
#if( NOT SEND_ANON_STATS )
# add_definitions( -DNO_SEND_STATS )
#endif()
# Project files should be aware of the header files. We can GLOB these since
# there's generally a new cpp for every header so this file will get changed
file( GLOB HEADER_FILES
build/include/*.h
2020-04-11 21:38:30 +00:00
core/*.h
core/2d/*.h
core/utility/*.h
core/utility/rapidjson/*.h
core/console/*.h
core/music/*.h
core/menu/*.h
core/input/*.h
2021-03-15 18:05:08 +00:00
core/rendering/*.h
core/rendering/scene/*.h
2021-12-30 09:30:21 +00:00
2020-04-12 06:19:19 +00:00
common/audio/sound/thirdparty/*.h
common/audio/sound/*.h
2020-04-12 06:08:31 +00:00
common/audio/music/*.h*
2020-05-25 15:11:32 +00:00
common/2d/*.h
2020-04-12 06:08:31 +00:00
common/console/*.h
2021-05-21 23:34:00 +00:00
common/cutscenes/*.h
2020-04-11 21:50:43 +00:00
common/utility/*.h
2020-04-11 22:04:02 +00:00
common/engine/*.h
2020-04-23 20:58:02 +00:00
common/menu/*.h
2020-10-28 18:27:12 +00:00
common/statusbar/*.h
2020-04-05 20:51:53 +00:00
common/fonts/*.h
2020-04-06 14:10:54 +00:00
common/objects/*.h
2020-04-11 21:54:33 +00:00
common/filesystem/*.h
2020-04-23 20:58:02 +00:00
common/platform/posix/cocoa/*.h
common/platform/posix/sdl/*.h
common/platform/win32/*.h
2020-05-30 22:01:00 +00:00
common/models/*.h
2020-04-11 22:04:02 +00:00
common/textures/*.h
2022-06-06 09:45:02 +00:00
common/startscreen/*.h
2020-05-24 19:19:33 +00:00
common/textures/hires/hqnx/*.h
common/textures/hires/hqnx_asm/*.h
common/textures/hires/xbr/*.h
2020-04-11 21:50:43 +00:00
common/thirdparty/*.h
common/thirdparty/rapidjson/*.h
2020-04-06 19:10:07 +00:00
common/thirdparty/math/*h
2021-05-21 23:06:33 +00:00
common/thirdparty/libsmackerdec/include/*.h
2020-04-25 22:01:04 +00:00
common/rendering/*.h
2020-04-10 20:17:29 +00:00
common/rendering/gl_load/*.h
2020-06-11 16:40:53 +00:00
common/rendering/hwrenderer/*.h
2020-04-25 22:01:04 +00:00
common/rendering/hwrenderer/data/*.h
2020-05-31 08:53:11 +00:00
common/rendering/vulkan/*.h
common/rendering/vulkan/system/*.h
common/rendering/vulkan/renderer/*.h
common/rendering/vulkan/shaders/*.h
common/rendering/vulkan/textures/*.h
2020-04-06 19:10:07 +00:00
common/scripting/core/*h
common/scripting/vm/*h
common/scripting/jit/*h
common/scripting/interface/*.h
2020-04-07 18:14:24 +00:00
common/scripting/backend/*.h
2020-04-07 22:19:49 +00:00
common/scripting/frontend/*.h
2021-01-10 19:31:32 +00:00
games/duke/src/*.h
games/blood/src/*.h
games/sw/src/*.h
games/exhumed/src/*.h
2020-04-11 21:50:43 +00:00
2019-09-22 21:15:46 +00:00
build/src/*.h
2019-12-22 19:55:47 +00:00
platform/win32/*.h
2020-01-26 14:40:43 +00:00
platform/posix/*.h
2019-09-22 21:15:46 +00:00
thirdparty/include/*.h
thirdparty/include/*.hpp
2019-11-07 19:31:16 +00:00
thirdparty/imgui/*.h
2020-04-11 21:38:30 +00:00
core/textures/*.h
core/textures/formats/*.h
2019-09-22 21:15:46 +00:00
)
# These files will be flagged as "headers" so that they appear in project files
# without being compiled.
set( NOT_COMPILED_SOURCE_FILES
${OTHER_SYSTEM_SOURCES}
2019-10-23 23:20:58 +00:00
sc_man_scanner.h
2020-04-11 22:04:02 +00:00
common/engine/sc_man_scanner.re
2020-04-07 22:19:49 +00:00
common/scripting/frontend/zcc-parse.lemon
zcc-parse.c
zcc-parse.h
2020-04-23 20:58:02 +00:00
common/platform/win32/zutil.natvis
2021-10-30 07:34:38 +00:00
common/rendering/vulkan/thirdparty/vk_mem_alloc/vk_mem_alloc.natvis
2021-05-09 07:05:42 +00:00
2021-01-10 19:31:32 +00:00
# Blood
games/blood/src/actor.cpp
games/blood/src/ai.cpp
games/blood/src/aibat.cpp
games/blood/src/aibeast.cpp
games/blood/src/aiboneel.cpp
games/blood/src/aiburn.cpp
games/blood/src/aicaleb.cpp
games/blood/src/aicerber.cpp
games/blood/src/aicult.cpp
games/blood/src/aigarg.cpp
games/blood/src/aighost.cpp
games/blood/src/aigilbst.cpp
games/blood/src/aihand.cpp
games/blood/src/aihound.cpp
games/blood/src/aiinnoc.cpp
games/blood/src/aipod.cpp
games/blood/src/airat.cpp
games/blood/src/aispid.cpp
games/blood/src/aitchern.cpp
games/blood/src/aiunicult.cpp
games/blood/src/aizomba.cpp
games/blood/src/aizombf.cpp
games/blood/src/animatesprite.cpp
games/blood/src/asound.cpp
games/blood/src/barf.cpp
games/blood/src/blood.cpp
games/blood/src/callback.cpp
games/blood/src/choke.cpp
games/blood/src/controls.cpp
games/blood/src/db.cpp
games/blood/src/dude.cpp
games/blood/src/d_menu.cpp
games/blood/src/endgame.cpp
games/blood/src/eventq.cpp
games/blood/src/fire.cpp
games/blood/src/fx.cpp
games/blood/src/gameutil.cpp
games/blood/src/gib.cpp
games/blood/src/globals.cpp
games/blood/src/hudsprites.cpp
games/blood/src/inifile.cpp
games/blood/src/levels.cpp
games/blood/src/loadsave.cpp
games/blood/src/messages.cpp
games/blood/src/mirrors.cpp
games/blood/src/misc.cpp
games/blood/src/nnexts.cpp
2022-08-10 21:36:16 +00:00
games/blood/src/nnsprinsect.cpp
2021-01-10 19:31:32 +00:00
games/blood/src/osdcmd.cpp
games/blood/src/player.cpp
games/blood/src/prediction.cpp
games/blood/src/preload.cpp
games/blood/src/qav.cpp
games/blood/src/sbar.cpp
games/blood/src/sectorfx.cpp
games/blood/src/seq.cpp
games/blood/src/sfx.cpp
games/blood/src/sound.cpp
games/blood/src/tile.cpp
games/blood/src/triggers.cpp
games/blood/src/view.cpp
games/blood/src/warp.cpp
games/blood/src/weapon.cpp
2021-12-30 09:30:21 +00:00
2021-01-10 19:31:32 +00:00
# Duke
games/duke/src/actors.cpp
games/duke/src/actors_d.cpp
games/duke/src/actors_lava.cpp
games/duke/src/actors_r.cpp
games/duke/src/animatesprites_d.cpp
games/duke/src/animatesprites_r.cpp
games/duke/src/bowling.cpp
games/duke/src/ccmds.cpp
games/duke/src/cheats.cpp
games/duke/src/dispatch.cpp
games/duke/src/d_menu.cpp
games/duke/src/flags_d.cpp
games/duke/src/flags_r.cpp
games/duke/src/game.cpp
games/duke/src/gamedef.cpp
games/duke/src/gameexec.cpp
games/duke/src/gameloop.cpp
games/duke/src/gamevar.cpp
games/duke/src/game_misc.cpp
games/duke/src/global.cpp
games/duke/src/hudweapon_d.cpp
games/duke/src/hudweapon_r.cpp
games/duke/src/input.cpp
games/duke/src/noise.cpp
games/duke/src/player.cpp
games/duke/src/player_d.cpp
games/duke/src/player_r.cpp
games/duke/src/player_w.cpp
games/duke/src/prediction.cpp
games/duke/src/premap.cpp
games/duke/src/premap_d.cpp
games/duke/src/premap_r.cpp
games/duke/src/render.cpp
games/duke/src/savegame.cpp
games/duke/src/sbar.cpp
games/duke/src/sectors.cpp
games/duke/src/sectors_d.cpp
games/duke/src/sectors_r.cpp
games/duke/src/sounds.cpp
games/duke/src/spawn.cpp
games/duke/src/spawn_d.cpp
games/duke/src/spawn_r.cpp
2022-02-20 23:12:51 +00:00
games/duke/src/vmexports.cpp
2021-12-30 09:30:21 +00:00
2021-01-10 19:31:32 +00:00
# Shadow Warrior
games/sw/src/actor.cpp
games/sw/src/ai.cpp
games/sw/src/break.cpp
games/sw/src/bunny.cpp
games/sw/src/cache.cpp
games/sw/src/cheats.cpp
games/sw/src/colormap.cpp
games/sw/src/coolg.cpp
games/sw/src/coolie.cpp
games/sw/src/copysect.cpp
games/sw/src/draw.cpp
games/sw/src/d_menu.cpp
games/sw/src/eel.cpp
games/sw/src/game.cpp
games/sw/src/girlninj.cpp
games/sw/src/goro.cpp
games/sw/src/hornet.cpp
games/sw/src/input.cpp
games/sw/src/interpso.cpp
games/sw/src/inv.cpp
games/sw/src/jsector.cpp
games/sw/src/jweapon.cpp
games/sw/src/lava.cpp
games/sw/src/light.cpp
games/sw/src/mclip.cpp
games/sw/src/menus.cpp
games/sw/src/miscactr.cpp
games/sw/src/morph.cpp
games/sw/src/network.cpp
games/sw/src/ninja.cpp
games/sw/src/osdcmds.cpp
games/sw/src/panel.cpp
games/sw/src/player.cpp
games/sw/src/predict.cpp
games/sw/src/quake.cpp
games/sw/src/ripper.cpp
games/sw/src/ripper2.cpp
games/sw/src/rooms.cpp
games/sw/src/rotator.cpp
games/sw/src/save.cpp
games/sw/src/saveable.cpp
games/sw/src/sbar.cpp
games/sw/src/scrip2.cpp
games/sw/src/sector.cpp
games/sw/src/serp.cpp
games/sw/src/skel.cpp
games/sw/src/skull.cpp
games/sw/src/slidor.cpp
games/sw/src/sounds.cpp
games/sw/src/spike.cpp
games/sw/src/sprite.cpp
games/sw/src/sumo.cpp
games/sw/src/text.cpp
games/sw/src/track.cpp
games/sw/src/vator.cpp
games/sw/src/vis.cpp
games/sw/src/wallmove.cpp
games/sw/src/warp.cpp
games/sw/src/weapon.cpp
games/sw/src/zilla.cpp
games/sw/src/zombie.cpp
2021-12-30 09:30:21 +00:00
2021-01-10 19:31:32 +00:00
# Exhumed
games/exhumed/src/2d.cpp
games/exhumed/src/anims.cpp
games/exhumed/src/anubis.cpp
games/exhumed/src/bubbles.cpp
games/exhumed/src/bullet.cpp
games/exhumed/src/cd.cpp
games/exhumed/src/cheats.cpp
games/exhumed/src/d_menu.cpp
games/exhumed/src/enginesubs.cpp
games/exhumed/src/exhumed.cpp
games/exhumed/src/fish.cpp
games/exhumed/src/gameloop.cpp
games/exhumed/src/grenade.cpp
games/exhumed/src/gun.cpp
games/exhumed/src/init.cpp
games/exhumed/src/input.cpp
games/exhumed/src/items.cpp
games/exhumed/src/lavadude.cpp
games/exhumed/src/light.cpp
games/exhumed/src/lighting.cpp
games/exhumed/src/lion.cpp
games/exhumed/src/map.cpp
games/exhumed/src/menu.cpp
games/exhumed/src/move.cpp
games/exhumed/src/movie.cpp
games/exhumed/src/mummy.cpp
games/exhumed/src/object.cpp
games/exhumed/src/osdcmds.cpp
games/exhumed/src/player.cpp
games/exhumed/src/queen.cpp
games/exhumed/src/ra.cpp
games/exhumed/src/ramses.cpp
games/exhumed/src/random.cpp
games/exhumed/src/rat.cpp
games/exhumed/src/rex.cpp
games/exhumed/src/roach.cpp
games/exhumed/src/runlist.cpp
games/exhumed/src/save.cpp
games/exhumed/src/scorp.cpp
games/exhumed/src/sequence.cpp
games/exhumed/src/set.cpp
games/exhumed/src/snake.cpp
games/exhumed/src/sound.cpp
games/exhumed/src/spider.cpp
games/exhumed/src/status.cpp
games/exhumed/src/switch.cpp
games/exhumed/src/view.cpp
games/exhumed/src/wasp.cpp
2021-12-30 09:30:21 +00:00
2019-09-22 21:15:46 +00:00
)
2020-04-06 21:32:29 +00:00
set( VM_JIT_SOURCES
common/scripting/jit/jit.cpp
common/scripting/jit/jit_runtime.cpp
common/scripting/jit/jit_call.cpp
common/scripting/jit/jit_flow.cpp
common/scripting/jit/jit_load.cpp
common/scripting/jit/jit_math.cpp
common/scripting/jit/jit_move.cpp
common/scripting/jit/jit_store.cpp
)
2019-09-22 21:15:46 +00:00
2022-09-25 10:26:37 +00:00
# Enable fast math for some sources where performance matters (or where the PCH must not be used.)
2019-09-22 21:15:46 +00:00
set( FASTMATH_SOURCES
2020-04-10 20:17:29 +00:00
common/rendering/gl_load/gl_load.c
2020-05-24 19:19:33 +00:00
common/textures/hires/hqnx/init.cpp
common/textures/hires/hqnx/hq2x.cpp
common/textures/hires/hqnx/hq3x.cpp
common/textures/hires/hqnx/hq4x.cpp
common/textures/hires/xbr/xbrz.cpp
common/textures/hires/xbr/xbrz_old.cpp
2020-04-11 21:50:43 +00:00
common/utility/matrix.cpp
2019-09-22 21:15:46 +00:00
)
2021-12-30 09:30:21 +00:00
2020-05-31 08:53:11 +00:00
#Vulkan stuff must go into a separate list because it needs to be disabled for some platforms
set (VULKAN_SOURCES
common/rendering/vulkan/system/vk_device.cpp
common/rendering/vulkan/system/vk_swapchain.cpp
common/rendering/vulkan/system/vk_builders.cpp
common/rendering/vulkan/system/vk_framebuffer.cpp
2022-07-02 08:09:59 +00:00
common/rendering/vulkan/system/vk_commandbuffer.cpp
common/rendering/vulkan/system/vk_hwbuffer.cpp
common/rendering/vulkan/system/vk_buffer.cpp
2020-05-31 08:53:11 +00:00
common/rendering/vulkan/renderer/vk_renderstate.cpp
common/rendering/vulkan/renderer/vk_renderpass.cpp
common/rendering/vulkan/renderer/vk_streambuffer.cpp
common/rendering/vulkan/renderer/vk_postprocess.cpp
2022-07-02 08:09:59 +00:00
common/rendering/vulkan/renderer/vk_pprenderstate.cpp
common/rendering/vulkan/renderer/vk_descriptorset.cpp
common/rendering/vulkan/renderer/vk_raytrace.cpp
2020-05-31 08:53:11 +00:00
common/rendering/vulkan/shaders/vk_shader.cpp
2022-07-02 08:09:59 +00:00
common/rendering/vulkan/shaders/vk_ppshader.cpp
2020-05-31 08:53:11 +00:00
common/rendering/vulkan/textures/vk_samplers.cpp
common/rendering/vulkan/textures/vk_hwtexture.cpp
2022-07-02 08:09:59 +00:00
common/rendering/vulkan/textures/vk_pptexture.cpp
2020-05-31 08:53:11 +00:00
common/rendering/vulkan/textures/vk_imagetransition.cpp
2022-07-02 08:09:59 +00:00
common/rendering/vulkan/textures/vk_renderbuffers.cpp
common/rendering/vulkan/textures/vk_texture.cpp
2020-05-31 08:53:11 +00:00
common/rendering/vulkan/thirdparty/volk/volk.c
common/rendering/vulkan/thirdparty/vk_mem_alloc/vk_mem_alloc.cpp
)
2019-09-22 21:15:46 +00:00
2021-09-18 11:03:36 +00:00
if (HAVE_GLES2)
set (GLES_SOURCES
common/rendering/gles/gles_system.cpp
common/rendering/gles/gles_renderer.cpp
common/rendering/gles/gles_framebuffer.cpp
common/rendering/gles/gles_renderstate.cpp
common/rendering/gles/gles_renderbuffers.cpp
common/rendering/gles/gles_postprocess.cpp
common/rendering/gles/gles_postprocessstate.cpp
common/rendering/gles/gles_buffers.cpp
common/rendering/gles/gles_hwtexture.cpp
common/rendering/gles/gles_shader.cpp
common/rendering/gles/gles_shaderprogram.cpp
common/rendering/gles/gles_samplers.cpp
common/rendering/gles/glad/src/glad.c
)
set (FASTMATH_SOURCES ${FASTMATH_SOURCES} ${GLES_SOURCES})
endif()
2020-05-31 08:53:11 +00:00
if (HAVE_VULKAN)
set (FASTMATH_SOURCES ${FASTMATH_SOURCES} ${VULKAN_SOURCES})
endif()
2020-09-20 19:15:16 +00:00
set (FASTMATH_SOURCES ${FASTMATH_SOURCES})
2019-09-22 21:15:46 +00:00
set (PCH_SOURCES
2019-11-26 20:25:45 +00:00
2022-03-18 08:17:46 +00:00
common/thirdparty/richpresence.cpp
2019-09-22 21:15:46 +00:00
thirdparty/src/md4.cpp
2020-01-06 01:41:47 +00:00
2019-09-22 21:15:46 +00:00
# Todo: Split out the license-safe code from this.
build/src/clip.cpp
build/src/mdsprite.cpp
2020-01-06 01:41:47 +00:00
2022-01-23 08:54:49 +00:00
core/actorinfo.cpp
core/zcc_compile_raze.cpp
2022-02-20 23:12:51 +00:00
core/vmexports.cpp
2022-01-23 08:54:49 +00:00
core/thingdef_data.cpp
2022-01-23 09:54:56 +00:00
core/thingdef_properties.cpp
2021-12-04 21:04:16 +00:00
core/actorlist.cpp
2020-09-06 10:44:58 +00:00
core/automap.cpp
2020-09-02 22:29:17 +00:00
core/cheats.cpp
2020-07-04 08:22:20 +00:00
core/cheathandler.cpp
2020-04-11 21:38:30 +00:00
core/rts.cpp
2020-05-17 06:51:49 +00:00
core/ct_chat.cpp
2020-08-29 21:24:18 +00:00
core/d_net.cpp
core/d_protocol.cpp
2020-08-29 22:55:49 +00:00
core/mainloop.cpp
2020-04-11 21:38:30 +00:00
core/gameconfigfile.cpp
core/gamecvars.cpp
core/gamecontrol.cpp
2021-04-11 06:40:18 +00:00
core/gamehud.cpp
2021-02-16 10:36:08 +00:00
core/gamefuncs.cpp
2020-10-11 14:33:43 +00:00
core/gameinput.cpp
2021-05-01 20:52:28 +00:00
core/g_mapinfo.cpp
2020-11-25 22:22:13 +00:00
core/interpolate.cpp
2020-04-11 21:38:30 +00:00
core/inputstate.cpp
2020-09-13 11:01:44 +00:00
core/maphack.cpp
2020-07-07 11:19:09 +00:00
core/mapinfo.cpp
2020-09-22 19:44:33 +00:00
core/maploader.cpp
2020-04-11 21:38:30 +00:00
core/searchpaths.cpp
2020-06-20 07:46:41 +00:00
core/screenjob.cpp
2020-04-11 21:38:30 +00:00
core/initfs.cpp
core/statistics.cpp
core/secrets.cpp
core/savegamehelp.cpp
2021-04-11 07:59:55 +00:00
core/precache.cpp
2022-01-12 22:33:44 +00:00
core/psky.cpp
2020-04-11 21:38:30 +00:00
core/quotes.cpp
core/screenshot.cpp
2021-03-19 22:11:23 +00:00
core/sectorgeometry.cpp
2021-05-30 21:00:06 +00:00
core/razefont.cpp
2020-04-12 06:07:48 +00:00
core/raze_music.cpp
2020-04-12 06:09:38 +00:00
core/raze_sound.cpp
2020-06-07 11:06:18 +00:00
core/palette.cpp
2020-06-14 17:20:04 +00:00
core/zcompile.cpp
2020-10-28 15:56:00 +00:00
core/statusbar2.cpp
2020-10-04 18:03:14 +00:00
core/gi.cpp
2021-04-20 22:49:26 +00:00
core/defparser.cpp
2020-04-11 21:38:30 +00:00
2021-03-18 13:49:36 +00:00
core/rendering/hw_entrypoint.cpp
2021-04-02 16:20:07 +00:00
core/rendering/hw_models.cpp
2021-04-05 11:55:36 +00:00
core/rendering/hw_voxels.cpp
2021-04-05 18:00:21 +00:00
core/rendering/hw_palmanager.cpp
2021-12-16 05:10:59 +00:00
core/rendering/hw_sections.cpp
2021-12-28 15:59:01 +00:00
core/rendering/hw_vertexmap.cpp
2021-03-15 18:05:08 +00:00
core/rendering/scene/hw_clipper.cpp
2021-03-15 22:46:03 +00:00
core/rendering/scene/hw_walls.cpp
2021-12-28 18:33:27 +00:00
core/rendering/scene/hw_walls_vertex.cpp
2021-03-18 20:50:02 +00:00
core/rendering/scene/hw_flats.cpp
2021-03-26 19:28:44 +00:00
core/rendering/scene/hw_sprites.cpp
2021-03-18 09:19:13 +00:00
core/rendering/scene/hw_drawlistadd.cpp
2021-03-15 17:55:56 +00:00
core/rendering/scene/hw_drawlist.cpp
core/rendering/scene/hw_drawinfo.cpp
2021-03-18 11:32:31 +00:00
core/rendering/scene/hw_bunchdrawer.cpp
2021-03-21 17:41:23 +00:00
core/rendering/scene/hw_portal.cpp
2021-03-21 18:36:55 +00:00
core/rendering/scene/hw_skyportal.cpp
2021-03-21 21:48:01 +00:00
core/rendering/scene/hw_sky.cpp
2022-01-08 11:42:15 +00:00
core/rendering/scene/hw_setcolor.cpp
core/rendering/scene/hw_lighting.cpp
2021-03-15 18:05:08 +00:00
2022-01-17 02:26:13 +00:00
core/r_data/gldefs.cpp
2020-10-25 11:47:07 +00:00
core/console/c_notifybuffer.cpp
2020-04-11 21:38:30 +00:00
core/console/d_event.cpp
2020-04-12 06:19:19 +00:00
common/audio/sound/i_sound.cpp
common/audio/sound/oalsound.cpp
common/audio/sound/s_environment.cpp
common/audio/sound/s_sound.cpp
2020-10-04 16:59:51 +00:00
common/audio/sound/s_reverbedit.cpp
2020-04-12 06:08:31 +00:00
common/audio/music/music_midi_base.cpp
common/audio/music/music.cpp
common/audio/music/i_music.cpp
common/audio/music/i_soundfont.cpp
common/audio/music/music_config.cpp
2020-05-25 15:11:32 +00:00
common/2d/v_2ddrawer.cpp
common/2d/v_drawtext.cpp
common/2d/v_draw.cpp
2022-04-25 09:13:55 +00:00
common/2d/wipe.cpp
2021-03-13 00:21:38 +00:00
common/thirdparty/gain_analysis.cpp
2020-04-11 21:50:43 +00:00
common/thirdparty/sfmt/SFMT.cpp
2022-06-06 09:45:02 +00:00
common/startscreen/startscreen.cpp
common/startscreen/startscreen_heretic.cpp
common/startscreen/startscreen_hexen.cpp
common/startscreen/startscreen_strife.cpp
common/startscreen/startscreen_generic.cpp
common/startscreen/endoom.cpp
2020-04-05 20:51:53 +00:00
common/fonts/singlelumpfont.cpp
common/fonts/singlepicfont.cpp
common/fonts/specialfont.cpp
common/fonts/font.cpp
common/fonts/hexfont.cpp
common/fonts/v_font.cpp
2020-05-25 15:11:32 +00:00
common/fonts/v_text.cpp
2020-05-24 19:19:33 +00:00
common/textures/hw_ihwtexture.cpp
common/textures/hw_material.cpp
2020-04-11 22:04:02 +00:00
common/textures/bitmap.cpp
2020-04-11 22:17:01 +00:00
common/textures/m_png.cpp
2020-05-24 19:19:33 +00:00
common/textures/texture.cpp
2020-05-25 21:59:07 +00:00
common/textures/gametexture.cpp
2020-05-23 21:53:38 +00:00
common/textures/image.cpp
2020-05-24 19:19:33 +00:00
common/textures/imagetexture.cpp
2020-05-24 14:11:10 +00:00
common/textures/texturemanager.cpp
2020-05-24 19:19:33 +00:00
common/textures/multipatchtexturebuilder.cpp
common/textures/skyboxtexture.cpp
2020-04-05 20:51:53 +00:00
common/textures/animtexture.cpp
2020-05-31 08:53:11 +00:00
common/textures/v_collection.cpp
2020-06-28 12:41:44 +00:00
common/textures/animlib.cpp
2020-05-23 22:15:38 +00:00
common/textures/formats/automaptexture.cpp
common/textures/formats/brightmaptexture.cpp
common/textures/formats/buildtexture.cpp
2020-05-23 21:53:38 +00:00
common/textures/formats/ddstexture.cpp
2020-05-23 22:15:38 +00:00
common/textures/formats/flattexture.cpp
2020-05-24 19:19:33 +00:00
common/textures/formats/fontchars.cpp
2020-05-23 22:15:38 +00:00
common/textures/formats/imgztexture.cpp
2020-05-23 21:53:38 +00:00
common/textures/formats/jpegtexture.cpp
2020-05-23 22:15:38 +00:00
common/textures/formats/md5check.cpp
common/textures/formats/multipatchtexture.cpp
common/textures/formats/patchtexture.cpp
2020-05-23 21:53:38 +00:00
common/textures/formats/pcxtexture.cpp
common/textures/formats/pngtexture.cpp
2020-05-23 22:15:38 +00:00
common/textures/formats/rawpagetexture.cpp
2022-06-06 09:45:02 +00:00
common/textures/formats/startuptexture.cpp
2020-05-23 22:15:38 +00:00
common/textures/formats/emptytexture.cpp
common/textures/formats/shadertexture.cpp
2020-05-23 21:53:38 +00:00
common/textures/formats/tgatexture.cpp
common/textures/formats/stbtexture.cpp
2020-06-28 12:41:44 +00:00
common/textures/formats/anmtexture.cpp
2022-06-06 09:45:02 +00:00
common/textures/formats/startscreentexture.cpp
2020-05-24 19:19:33 +00:00
common/textures/hires/hqresize.cpp
2020-05-30 22:01:00 +00:00
common/models/models_md3.cpp
common/models/models_md2.cpp
common/models/models_voxel.cpp
common/models/models_ue1.cpp
common/models/models_obj.cpp
2022-10-20 20:24:25 +00:00
common/models/models_iqm.cpp
2020-05-30 22:01:00 +00:00
common/models/model.cpp
common/models/voxels.cpp
2020-04-11 22:11:50 +00:00
common/console/c_commandline.cpp
common/console/c_buttons.cpp
common/console/c_bind.cpp
common/console/c_enginecmds.cpp
common/console/c_consolebuffer.cpp
common/console/c_cvars.cpp
common/console/c_dispatch.cpp
2020-10-10 22:08:07 +00:00
common/console/c_commandbuffer.cpp
2020-10-25 12:26:40 +00:00
common/console/c_console.cpp
2020-10-25 11:47:07 +00:00
common/console/c_notifybufferbase.cpp
2020-10-10 22:08:07 +00:00
common/console/c_tabcomplete.cpp
2020-04-11 22:11:50 +00:00
common/console/c_expr.cpp
2021-05-21 23:34:00 +00:00
common/cutscenes/playmve.cpp
common/cutscenes/movieplayer.cpp
common/cutscenes/screenjob.cpp
2020-04-11 21:50:43 +00:00
common/utility/engineerrors.cpp
common/utility/i_module.cpp
2022-10-02 18:33:18 +00:00
common/utility/gitinfo.cpp
2020-04-11 21:50:43 +00:00
common/utility/m_alloc.cpp
common/utility/utf8.cpp
common/utility/palette.cpp
common/utility/files.cpp
common/utility/files_decompress.cpp
common/utility/memarena.cpp
common/utility/cmdlib.cpp
common/utility/configfile.cpp
common/utility/i_time.cpp
common/utility/m_argv.cpp
common/utility/s_playlist.cpp
common/utility/zstrformat.cpp
2020-04-11 22:04:02 +00:00
common/utility/name.cpp
2020-05-31 08:53:11 +00:00
common/utility/r_memory.cpp
2020-09-27 08:27:30 +00:00
common/thirdparty/base64.cpp
2020-04-11 21:50:43 +00:00
common/thirdparty/md5.cpp
common/thirdparty/superfasthash.cpp
2021-05-21 23:06:33 +00:00
common/thirdparty/libsmackerdec/src/BitReader.cpp
common/thirdparty/libsmackerdec/src/FileStream.cpp
common/thirdparty/libsmackerdec/src/HuffmanVLC.cpp
common/thirdparty/libsmackerdec/src/LogError.cpp
common/thirdparty/libsmackerdec/src/SmackerDecoder.cpp
2020-04-11 21:54:33 +00:00
common/filesystem/filesystem.cpp
common/filesystem/ancientzip.cpp
common/filesystem/file_7z.cpp
common/filesystem/file_grp.cpp
common/filesystem/file_lump.cpp
common/filesystem/file_rff.cpp
common/filesystem/file_wad.cpp
common/filesystem/file_zip.cpp
common/filesystem/file_pak.cpp
common/filesystem/file_whres.cpp
2020-09-19 08:07:53 +00:00
common/filesystem/file_ssi.cpp
2020-04-11 21:54:33 +00:00
common/filesystem/file_directory.cpp
common/filesystem/resourcefile.cpp
2020-05-31 08:53:11 +00:00
common/engine/cycler.cpp
2020-06-14 16:57:55 +00:00
common/engine/d_event.cpp
2020-10-05 18:28:19 +00:00
common/engine/date.cpp
2020-04-08 16:53:47 +00:00
common/engine/stats.cpp
2020-04-11 22:04:02 +00:00
common/engine/sc_man.cpp
2020-04-11 22:18:12 +00:00
common/engine/palettecontainer.cpp
2020-04-11 22:11:50 +00:00
common/engine/stringtable.cpp
2020-08-29 21:24:18 +00:00
common/engine/i_net.cpp
2020-04-12 06:21:50 +00:00
common/engine/i_interface.cpp
common/engine/renderstyle.cpp
common/engine/v_colortables.cpp
2020-04-07 16:04:35 +00:00
common/engine/serializer.cpp
2020-06-11 07:15:44 +00:00
common/engine/m_joy.cpp
2020-04-07 18:14:24 +00:00
common/engine/m_random.cpp
2020-11-12 07:58:10 +00:00
common/objects/autosegs.cpp
2020-04-06 14:10:54 +00:00
common/objects/dobject.cpp
common/objects/dobjgc.cpp
common/objects/dobjtype.cpp
2020-10-05 18:28:19 +00:00
common/menu/joystickmenu.cpp
common/menu/menu.cpp
common/menu/messagebox.cpp
common/menu/optionmenu.cpp
common/menu/resolutionmenu.cpp
common/menu/menudef.cpp
2020-10-07 16:32:57 +00:00
common/menu/savegamemanager.cpp
2020-10-28 18:27:12 +00:00
common/statusbar/base_sbar.cpp
2022-06-06 09:45:02 +00:00
2020-04-28 21:11:33 +00:00
common/rendering/v_framebuffer.cpp
common/rendering/v_video.cpp
2020-05-31 08:53:11 +00:00
common/rendering/r_thread.cpp
2020-04-25 22:01:04 +00:00
common/rendering/r_videoscale.cpp
2020-06-11 16:40:53 +00:00
common/rendering/hwrenderer/hw_draw2d.cpp
2020-05-31 08:41:59 +00:00
common/rendering/hwrenderer/data/hw_clock.cpp
common/rendering/hwrenderer/data/hw_skydome.cpp
2020-04-26 21:17:54 +00:00
common/rendering/hwrenderer/data/flatvertices.cpp
common/rendering/hwrenderer/data/hw_viewpointbuffer.cpp
common/rendering/hwrenderer/data/hw_modelvertexbuffer.cpp
common/rendering/hwrenderer/data/hw_cvars.cpp
common/rendering/hwrenderer/data/hw_vrmodes.cpp
common/rendering/hwrenderer/data/hw_lightbuffer.cpp
2022-10-20 20:24:25 +00:00
common/rendering/hwrenderer/data/hw_bonebuffer.cpp
2020-04-26 21:17:54 +00:00
common/rendering/hwrenderer/data/hw_aabbtree.cpp
common/rendering/hwrenderer/data/hw_shadowmap.cpp
common/rendering/hwrenderer/data/hw_shaderpatcher.cpp
2022-01-17 12:21:00 +00:00
common/rendering/hwrenderer/postprocessing/hw_postprocessshader.cpp
2020-04-25 22:01:04 +00:00
common/rendering/hwrenderer/postprocessing/hw_postprocess.cpp
common/rendering/hwrenderer/postprocessing/hw_postprocess_cvars.cpp
2022-01-21 03:31:31 +00:00
common/rendering/hwrenderer/postprocessing/hw_postprocessshader_ccmds.cpp
2020-04-10 20:17:29 +00:00
common/rendering/gl_load/gl_interface.cpp
2020-05-31 08:41:59 +00:00
common/rendering/gl/gl_renderer.cpp
common/rendering/gl/gl_stereo3d.cpp
common/rendering/gl/gl_framebuffer.cpp
2020-04-26 21:17:54 +00:00
common/rendering/gl/gl_renderstate.cpp
common/rendering/gl/gl_renderbuffers.cpp
common/rendering/gl/gl_postprocess.cpp
common/rendering/gl/gl_postprocessstate.cpp
2020-05-28 21:48:50 +00:00
common/rendering/gl/gl_debug.cpp
2020-04-26 21:17:54 +00:00
common/rendering/gl/gl_buffers.cpp
2020-05-28 23:03:01 +00:00
common/rendering/gl/gl_hwtexture.cpp
2020-05-28 21:48:50 +00:00
common/rendering/gl/gl_samplers.cpp
2020-04-26 21:17:54 +00:00
common/rendering/gl/gl_shader.cpp
common/rendering/gl/gl_shaderprogram.cpp
2020-04-07 16:04:35 +00:00
common/scripting/core/dictionary.cpp
2020-04-07 18:14:24 +00:00
common/scripting/core/dynarrays.cpp
2020-04-06 19:10:07 +00:00
common/scripting/core/symbols.cpp
common/scripting/core/types.cpp
common/scripting/core/scopebarrier.cpp
common/scripting/core/vmdisasm.cpp
2020-04-07 22:19:49 +00:00
common/scripting/core/imports.cpp
2020-04-06 19:10:07 +00:00
common/scripting/vm/vmexec.cpp
common/scripting/vm/vmframe.cpp
common/scripting/interface/stringformat.cpp
2020-06-14 16:57:55 +00:00
common/scripting/interface/vmnatives.cpp
2020-04-07 22:19:49 +00:00
common/scripting/frontend/ast.cpp
common/scripting/frontend/zcc_compile.cpp
common/scripting/frontend/zcc_parser.cpp
2020-04-07 18:14:24 +00:00
common/scripting/backend/vmbuilder.cpp
common/scripting/backend/codegen.cpp
2020-04-11 21:50:43 +00:00
2020-10-04 19:57:35 +00:00
2020-04-08 16:53:47 +00:00
2020-04-11 21:38:30 +00:00
core/textures/buildtiles.cpp
2020-12-04 21:29:25 +00:00
core/textures/skytexture.cpp
2020-11-10 19:12:46 +00:00
core/textures/hightile.cpp
2020-04-11 21:38:30 +00:00
core/music/s_advsound.cpp
2020-10-04 19:57:35 +00:00
core/menu/loadsavemenu.cpp
2021-12-26 12:09:45 +00:00
core/menu/usermap.cpp
2020-10-04 16:31:48 +00:00
core/menu/razemenu.cpp
2021-12-30 09:30:21 +00:00
2021-01-04 10:45:50 +00:00
#Duke is split because Duke and RR need different constants.
games/duke/all.cpp
games/duke/all_d.cpp
games/duke/all_r.cpp
2021-01-10 19:31:32 +00:00
games/exhumed/all.cpp
games/blood/all.cpp
games/sw/all.cpp
2021-12-30 09:30:21 +00:00
2019-09-22 21:15:46 +00:00
)
2020-04-06 21:32:29 +00:00
if( ${HAVE_VM_JIT} )
set( PCH_SOURCES ${PCH_SOURCES} ${VM_JIT_SOURCES} )
else()
set( NOT_COMPILED_SOURCE_FILES ${NOT_COMPILED_SOURCE_FILES} ${VM_JIT_SOURCES} )
endif()
2020-01-27 11:45:19 +00:00
macro( use_precompiled_header )
if( MSVC )
enable_precompiled_headers( "${ARGV0}/g_pch.h" PCH_SOURCES )
else()
# Temporary solution for compilers other than MSVC
set_source_files_properties( ${PCH_SOURCES} PROPERTIES COMPILE_FLAGS "-include g_pch.h" )
endif()
endmacro()
use_precompiled_header(".")
2019-09-22 21:15:46 +00:00
2019-12-27 12:52:15 +00:00
add_executable( ${PROJECT_NAME} WIN32 MACOSX_BUNDLE
2019-09-22 21:15:46 +00:00
${HEADER_FILES}
${NOT_COMPILED_SOURCE_FILES}
${SYSTEM_SOURCES}
${FASTMATH_SOURCES}
${PCH_SOURCES}
2020-04-11 21:50:43 +00:00
common/utility/x86.cpp
common/thirdparty/strnatcmp.c
common/utility/zstring.cpp
common/utility/findfile.cpp
common/thirdparty/math/asin.c
common/thirdparty/math/atan.c
common/thirdparty/math/const.c
common/thirdparty/math/cosh.c
common/thirdparty/math/exp.c
common/thirdparty/math/isnan.c
common/thirdparty/math/log.c
common/thirdparty/math/log10.c
common/thirdparty/math/mtherr.c
common/thirdparty/math/polevl.c
common/thirdparty/math/pow.c
common/thirdparty/math/powi.c
common/thirdparty/math/sin.c
common/thirdparty/math/sinh.c
common/thirdparty/math/sqrt.c
common/thirdparty/math/tan.c
common/thirdparty/math/tanh.c
common/thirdparty/math/fastsin.cpp
2019-09-22 21:15:46 +00:00
)
2019-12-02 01:07:32 +00:00
#set_source_files_properties( ${FASTMATH_SOURCES} PROPERTIES COMPILE_FLAGS ${DEM_FASTMATH_FLAG} )
2019-09-22 21:15:46 +00:00
set_source_files_properties( xlat/parse_xlat.cpp PROPERTIES OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/xlat_parser.c" )
2020-04-11 22:04:02 +00:00
set_source_files_properties( common/engine/sc_man.cpp PROPERTIES OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/sc_man_scanner.h" )
2019-09-22 21:15:46 +00:00
set_source_files_properties( ${NOT_COMPILED_SOURCE_FILES} PROPERTIES HEADER_FILE_ONLY TRUE )
if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
# [BL] Solaris requires these to be explicitly linked.
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} nsl socket)
2019-09-22 21:15:46 +00:00
endif()
if( UNIX )
find_package( Backtrace )
if(Backtrace_FOUND)
2019-12-27 12:37:39 +00:00
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${Backtrace_LIBRARIES} )
2019-09-22 21:15:46 +00:00
endif()
endif()
2021-01-04 10:45:50 +00:00
target_link_libraries( ${PROJECT_NAME} ${PROJECT_LIBRARIES} ${ZMUSIC_LIBRARIES} gdtoa lzma )
2019-09-22 21:15:46 +00:00
include_directories(
2019-11-02 11:59:59 +00:00
${CMAKE_CURRENT_SOURCE_DIR}
2019-09-22 21:15:46 +00:00
build/include
libxmp-lite/include
libxmp-lite/include/libxmp-lite
thirdparty/include
2019-11-07 19:31:16 +00:00
thirdparty/imgui
2020-04-11 21:38:30 +00:00
core
core/2d
core/fonts
core/utility
core/console
core/textures
core/music
core/dobject
core/menu
core/input
2021-03-15 18:05:08 +00:00
core/rendering
core/rendering/scene
2019-09-25 20:38:47 +00:00
platform
2020-04-12 06:19:19 +00:00
common/audio/sound
2020-04-12 06:08:31 +00:00
common/audio/music
2020-05-25 15:11:32 +00:00
common/2d
2021-05-21 23:06:33 +00:00
common/cutscenes
common/thirdparty/libsmackerdec/include
2020-04-11 21:50:43 +00:00
common/thirdparty
2020-04-11 22:04:02 +00:00
common/textures
2020-05-23 22:15:38 +00:00
common/textures/formats
2020-05-24 19:19:33 +00:00
common/textures/hires
2020-05-25 21:59:07 +00:00
common/textures
2020-05-30 22:01:00 +00:00
common/models
2020-04-11 21:54:33 +00:00
common/filesystem
2020-04-11 21:50:43 +00:00
common/utility
2020-04-11 22:11:50 +00:00
common/console
2020-04-11 22:04:02 +00:00
common/engine
2020-04-23 20:58:02 +00:00
common/menu
2020-10-28 18:27:12 +00:00
common/statusbar
2020-04-05 20:51:53 +00:00
common/fonts
2020-04-06 19:10:07 +00:00
common/objects
2022-06-06 09:45:02 +00:00
common/startscreen
2020-04-10 20:17:29 +00:00
common/rendering
2020-06-11 16:40:53 +00:00
common/rendering/hwrenderer
2020-04-25 22:01:04 +00:00
common/rendering/hwrenderer/data
2020-04-10 20:17:29 +00:00
common/rendering/gl_load
2020-05-28 21:48:50 +00:00
common/rendering/gl
2021-09-18 11:03:36 +00:00
common/rendering/gles
common/rendering/gles/glad/include
common/rendering/gles/Mali_OpenGL_ES_Emulator/include
2020-05-31 08:53:11 +00:00
common/rendering/vulkan/thirdparty
2020-04-06 19:10:07 +00:00
common/scripting/vm
common/scripting/jit
2020-04-07 16:04:35 +00:00
common/scripting/core
2020-04-07 18:14:24 +00:00
common/scripting/interface
2020-04-07 22:19:49 +00:00
common/scripting/frontend
2020-04-07 18:14:24 +00:00
common/scripting/backend
2020-05-31 08:53:11 +00:00
../libraries/glslang/glslang/Public
../libraries/glslang/spirv
2019-09-22 21:15:46 +00:00
${CMAKE_BINARY_DIR}/libraries/gdtoa
2020-01-07 00:11:19 +00:00
${SYSTEM_SOURCES_DIR}
2019-09-22 21:15:46 +00:00
)
2020-01-07 00:11:19 +00:00
if (NOT WIN32)
include_directories(platform/posix)
endif()
2019-12-27 12:52:15 +00:00
add_dependencies( ${PROJECT_NAME} revision_check )
2019-09-22 21:15:46 +00:00
# Due to some quirks, we need to do this in this order
2019-12-27 12:37:39 +00:00
if( NOT COMPILE_OUTPUT_OLDSTYLE )
2019-09-22 21:15:46 +00:00
# RUNTIME_OUTPUT_DIRECTORY does not exist in CMake 2.4.
# Linux distributions are slow to adopt 2.6. :(
2020-09-22 12:00:13 +00:00
set_target_properties( ${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${COMPILE_OUTPUT_DIRECTORY} )
2019-12-27 12:52:15 +00:00
set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
2019-09-22 21:15:46 +00:00
else()
2019-12-27 12:52:15 +00:00
set_target_properties( ${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_NAME ${PROJECT_NAME}
2020-09-22 12:00:13 +00:00
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${COMPILE_OUTPUT_DIRECTORY}
2019-12-27 12:52:15 +00:00
RUNTIME_OUTPUT_NAME_DEBUG ${PROJECT_NAME}d
2020-09-22 12:00:13 +00:00
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${COMPILE_OUTPUT_DIRECTORY}
2019-12-27 12:52:15 +00:00
RUNTIME_OUTPUT_NAME_MINSIZEREL ${PROJECT_NAME}msr
2020-09-22 12:00:13 +00:00
RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${COMPILE_OUTPUT_DIRECTORY}
2019-12-27 12:52:15 +00:00
RUNTIME_OUTPUT_NAME_RELWITHDEBINFO ${PROJECT_NAME}rd
2020-09-22 12:00:13 +00:00
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${COMPILE_OUTPUT_DIRECTORY}
2019-09-22 21:15:46 +00:00
)
endif()
if( MSVC )
2019-12-27 12:37:39 +00:00
option( COMPILE_GENERATE_MAPFILE "Generate .map file for debugging." OFF )
2019-09-22 21:15:46 +00:00
set( LINKERSTUFF "/MANIFEST:NO" )
2019-12-27 12:37:39 +00:00
if( COMPILE_GENERATE_MAPFILE )
2019-09-22 21:15:46 +00:00
set( LINKERSTUFF "${LINKERSTUFF} /MAP" )
endif()
2019-12-27 12:52:15 +00:00
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS ${LINKERSTUFF})
2019-09-22 21:15:46 +00:00
2019-12-27 12:52:15 +00:00
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
2020-04-23 20:58:02 +00:00
COMMAND "mt.exe" -manifest \"${CMAKE_CURRENT_SOURCE_DIR}\\common\\platform\\win32\\manifest.xml\" -outputresource:\"$<TARGET_FILE:${PROJECT_NAME}>\"\;\#1
2019-09-22 21:15:46 +00:00
COMMENT "Adding manifest..."
)
endif()
if( NOT WIN32 AND NOT APPLE )
2020-09-22 12:00:13 +00:00
FILE( WRITE ${CMAKE_CURRENT_BINARY_DIR}/link-make "if [ ! -e ${COMPILE_OUTPUT_DIRECTORY}/${PROJECT_NAME} ]; then ln -sf ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME} ${COMPILE_OUTPUT_DIRECTORY}/${PROJECT_NAME}; fi" )
2019-12-27 12:52:15 +00:00
add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD
2019-09-22 21:15:46 +00:00
COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/link-make
2022-07-23 23:13:17 +00:00
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/link-make )
2022-03-12 04:11:56 +00:00
IF ("${INSTALL_RPATH}" STREQUAL "")
2022-03-12 05:54:18 +00:00
set_target_properties(${PROJECT_NAME} PROPERTIES
2022-03-12 04:11:56 +00:00
#allow libzmusic.so.1 library in same folder as executable at runtime
INSTALL_RPATH "\$ORIGIN"
BUILD_WITH_INSTALL_RPATH ON
)
endif()
2019-09-22 21:15:46 +00:00
endif()
2020-02-07 20:36:37 +00:00
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_SOURCE_DIR}/soundfont/${PROJECT_NAME}.sf2 $<TARGET_FILE_DIR:${PROJECT_NAME}>/soundfonts/${PROJECT_NAME}.sf2
)
2019-09-22 21:15:46 +00:00
if( CMAKE_COMPILER_IS_GNUCXX )
# GCC misoptimizes this file
endif()
2021-05-21 23:06:33 +00:00
if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
2020-05-31 08:53:11 +00:00
# Need to enable intrinsics for these files.
2022-08-03 11:27:48 +00:00
set_property( SOURCE
common/utility/palette.cpp
common/utility/x86.cpp
APPEND_STRING PROPERTY COMPILE_FLAGS " ${SSE2_ENABLE}" )
2020-05-31 08:53:11 +00:00
endif()
2019-09-22 21:15:46 +00:00
if( APPLE )
set( LINK_FRAMEWORKS "-framework Cocoa -framework IOKit -framework OpenGL")
if( HAVE_VULKAN )
set( LINK_FRAMEWORKS "${LINK_FRAMEWORKS} -framework QuartzCore" )
endif()
2019-12-27 12:52:15 +00:00
set_target_properties(${PROJECT_NAME} PROPERTIES
2019-09-22 21:15:46 +00:00
LINK_FLAGS "${LINK_FRAMEWORKS}"
2020-01-26 14:38:13 +00:00
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/platform/posix/osx/${PROJECT_NAME}-info.plist"
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "" )
2019-09-22 21:15:46 +00:00
# Dymanic libraries like libvulkan.dylib or libMoltenVK.dylib will be loaded by dlopen()
# if placed in the directory with the main executable
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rpath @executable_path" )
endif()
if( WIN32 )
2019-12-26 16:42:45 +00:00
set( INSTALL_PATH . CACHE STRING "Directory where the executable will be placed during install." )
2019-09-22 21:15:46 +00:00
else()
2019-12-26 16:42:45 +00:00
set( INSTALL_PATH bin CACHE STRING "Directory where the executable will be placed during install." )
2019-09-22 21:15:46 +00:00
endif()
2019-12-27 12:52:15 +00:00
install(TARGETS ${PROJECT_NAME}
2019-09-22 21:15:46 +00:00
DESTINATION ${INSTALL_PATH}
COMPONENT "Game executable")
2021-01-10 19:31:32 +00:00
source_group("Games" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/.+")
source_group("Games\\Duke" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/duke/.+")
source_group("Games\\Duke\\Source" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/duke/src/.+")
source_group("Games\\Blood" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/blood/.+")
source_group("Games\\Blood\\Source" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/blood/src.+")
source_group("Games\\Shadow Warrior" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/sw/+")
source_group("Games\\Shadow Warrior\\Source" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/sw/src/+")
source_group("Games\\Exhumed" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/exhumed/.+")
source_group("Games\\Exhumed\\Source" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/games/exhumed/src/.+")
2020-04-11 21:38:30 +00:00
source_group("Core" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/.+")
source_group("Core\\Textures" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/textures/.+")
source_group("Core\\Textures\\Formats" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/textures/formats/.+")
source_group("Core\\Utility" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/utility/.+")
source_group("Core\\2D" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/2d/.+")
source_group("Core\\Console" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/console/.+")
source_group("Core\\DObject" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/dobject/.+")
source_group("Core\\Menu" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/menu/.+")
2021-03-14 22:38:39 +00:00
source_group("Core\\Rendering" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/rendering/.+")
source_group("Core\\Rendering\\Scene" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/core/rendering/scene/.+")
2019-12-26 16:42:45 +00:00
source_group("Platform" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/platform/.+")
source_group("Platform\\Win32" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/platform/win32/.+")
2020-01-26 14:40:43 +00:00
source_group("Platform\\POSIX" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/platform/posix/.+")
2020-04-11 21:50:43 +00:00
source_group("Common" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/.+")
2020-04-12 06:08:31 +00:00
source_group("Common\\Audio" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/audio/.+")
2020-04-12 06:19:19 +00:00
source_group("Common\\Audio\\Sound" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/audio/sound/.+")
source_group("Common\\Audio\\Sound\\Third-party" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/audio/sound/thirdparty/.+")
2020-04-12 06:08:31 +00:00
source_group("Common\\Audio\\Music" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/audio/music.+")
2020-04-11 22:11:50 +00:00
source_group("Common\\Console" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/console/.+")
source_group("Common\\Utility" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/utility/.+")
source_group("Common\\Engine" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/engine/.+")
2020-05-25 15:11:32 +00:00
source_group("Common\\2D" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/2d/.+")
2021-05-21 23:34:00 +00:00
source_group("Common\\Cutscenes" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/cutscenes/.+")
2020-04-06 14:10:54 +00:00
source_group("Common\\Objects" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/objects/.+")
2020-04-23 20:58:02 +00:00
source_group("Common\\Menu" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/menu/.+")
2020-04-06 14:10:54 +00:00
source_group("Common\\Fonts" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/fonts/.+")
2020-04-11 22:11:50 +00:00
source_group("Common\\File System" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/filesystem/.+")
2020-04-06 19:10:07 +00:00
source_group("Common\\Scripting" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/.+")
2020-04-07 18:14:24 +00:00
source_group("Common\\Scripting\\Interface" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/interface/.+")
2020-04-07 22:19:49 +00:00
source_group("Common\\Scripting\\Frontend" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/frontend/.+" FILES ${CMAKE_CURRENT_BINARY_DIR}/zcc-parse.c ${CMAKE_CURRENT_BINARY_DIR}/zcc-parse.h)
2020-04-07 18:14:24 +00:00
source_group("Common\\Scripting\\Backend" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/backend/.+")
2020-04-06 19:10:07 +00:00
source_group("Common\\Scripting\\Core" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/core/.+")
source_group("Common\\Scripting\\JIT" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/jit/.+")
2020-04-07 16:04:35 +00:00
source_group("Common\\Scripting\\VM" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/scripting/vm/.+")
2020-04-23 20:58:02 +00:00
source_group("Common\\Platforms\\Cocoa Files" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/platform/posix/cocoa/.+")
source_group("Common\\Platforms\\OS X Files" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/platform/posix/osx/.+")
source_group("Common\\Platforms\\Unix Files" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/platform/posix/unix/.+")
source_group("Common\\Platforms\\SDL Files" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/platform/posix/sdl/.+")
source_group("Common\\Platforms\\Win32 Files" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/platform/win32/.+")
2020-05-31 08:53:11 +00:00
source_group("Common\\Rendering" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/.+")
source_group("Common\\Rendering\\Hardware Renderer" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/hwrenderer/.+")
source_group("Common\\Rendering\\Hardware Renderer\\Data" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/hwrenderer/data/.+")
source_group("Common\\Rendering\\Hardware Renderer\\Postprocessing" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/hwrenderer/postprocessing/.+")
source_group("Common\\Rendering\\OpenGL Loader" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/gl_load/.+")
source_group("Common\\Rendering\\OpenGL Backend" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/gl/.+")
2021-09-18 11:03:36 +00:00
source_group("Common\\Rendering\\GLES Backend" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/gles/.+")
2020-05-31 08:53:11 +00:00
source_group("Common\\Rendering\\Vulkan Renderer\\System" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/vulkan/system/.+")
source_group("Common\\Rendering\\Vulkan Renderer\\Renderer" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/vulkan/renderer/.+")
source_group("Common\\Rendering\\Vulkan Renderer\\Shaders" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/vulkan/shaders/.+")
source_group("Common\\Rendering\\Vulkan Renderer\\Textures" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/vulkan/textures/.+")
source_group("Common\\Rendering\\Vulkan Renderer\\Third Party" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/vulkan/thirdparty/.+")
source_group("Common\\Rendering\\Vulkan Renderer\\Third Party\\Volk" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/vulkan/thirdparty/volk/.+")
source_group("Common\\Rendering\\Vulkan Renderer\\Third Party\\Vk_Mem_Alloc" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/rendering/vulkan/thirdparty/vk_mem_alloc.+")
2020-05-30 22:01:00 +00:00
source_group("Common\\Models" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/models/.+")
2020-04-07 16:04:35 +00:00
source_group("Common\\Textures" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/textures/.+")
2020-05-24 19:19:33 +00:00
source_group("Common\\Textures\\Hires" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/textures/hires/.+")
source_group("Common\\Textures\\Hires\\HQ Resize" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/textures/hires/hqnx/.+")
source_group("Common\\Textures\\Hires\\HQ Resize MMX version" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/textures/hires/hqnx_asm/.+")
source_group("Common\\Textures\\Hires\\XBRZ" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/textures/hires/xbr/.+")
source_group("Common\\Textures\\Formats" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/textures/formats/.+")
2020-04-11 21:50:43 +00:00
source_group("Common\\Third Party" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/thirdparty/.+")
source_group("Common\\Third Party\\Math" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/thirdparty/math/.+")
source_group("Common\\Third Party\\RapidJSON" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/thirdparty/rapidjson/.+")
source_group("Common\\Third Party\\SFMT" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/thirdparty/sfmt/.+")
2019-09-22 21:15:46 +00:00
source_group("Utility\\Smackerdec" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/smackerdec/.+")
source_group("Utility\\Smackerdec\\Headers" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/libsmackerdec/include/.+")
source_group("Utility\\Smackerdec\\Sources" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/libsmackerdec/src/.+")
source_group("Utility\\Third Party" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/.+")
source_group("Utility\\Third Party Headers" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/include/.+")
source_group("Utility\\Third Party Sources" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/src/.+")
2020-02-22 17:41:24 +00:00
source_group("Utility\\RapidJSON" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/utility/rapidjson/.+")
2019-09-22 21:15:46 +00:00
source_group("Build Engine" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/build/.+")
source_group("Build Engine\\Headers" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/build/include/.+")
source_group("Build Engine\\Sources" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/build/src/.+")
2020-01-27 11:45:19 +00:00
unset( PCH_SOURCES )
unset( HEADER_FILES )
unset( NOT_COMPILED_SOURCE_FILES )