mirror of
https://github.com/kevinbentley/Descent3.git
synced 2025-01-23 03:58:59 +00:00
fb0dabc367
Currently, this tool can make only create HOG from list of files taken from text file (one line per file).
139 lines
5.1 KiB
CMake
139 lines
5.1 KiB
CMake
cmake_minimum_required(VERSION 3.19)
|
|
|
|
project(Descent3 VERSION 1.5.500)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
if(UNIX)
|
|
set(D3_GAMEDIR "~/Descent3/")
|
|
|
|
string(APPEND CMAKE_CXX_FLAGS " -Wno-write-strings -Wno-multichar ${BITS} ${EXTRA_CXX_FLAGS}")
|
|
string(APPEND CMAKE_C_FLAGS " ${BITS}")
|
|
|
|
find_package(SDL REQUIRED)
|
|
if(APPLE)
|
|
# Provide FIND_PACKAGE( SDL_image ) below with an include dir and library that work with brew-installed sdl2_image
|
|
find_path(SDL_IMAGE_INCLUDE_DIR SDL_image.h PATH_SUFFIXES include/SDL2)
|
|
find_library(SDL_IMAGE_LIBRARY SDL2_image)
|
|
endif()
|
|
|
|
find_package(SDL_image REQUIRED)
|
|
find_package(Curses REQUIRED)
|
|
find_package(OpenGL REQUIRED)
|
|
message("SDL Include Dir is " ${SDL_INCLUDE_DIR})
|
|
endif()
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
message("Building for Linux")
|
|
add_definitions( -D_DEBUG -D__LINUX__ -DLINUX -D_MAX_PATH=260 -D_MAX_FNAME=256 -D_REENRANT -D__32BIT__ -DHAVEALLOCA_H -D_USE_OGL_ACTIVE_TEXTURES)
|
|
set(PLATFORM_INCLUDES "lib/linux" ${SDL_INCLUDE_DIR})
|
|
endif()
|
|
|
|
if(APPLE)
|
|
message("Building for MAC OSX")
|
|
add_definitions(-D_DEBUG -D__LINUX__ -DLINUX -D_MAX_PATH=260 -D_MAX_FNAME=256 -D_REENRANT -DMACOSX=1 -D_USE_OGL_ACTIVE_TEXTURES)
|
|
set(PLATFORM_INCLUDES "lib/linux" ${SDL_INCLUDE_DIR} "/usr/X11/include")
|
|
endif()
|
|
|
|
if(WIN32)
|
|
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "lib/win" "lib/win/directx")
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /EHsc /RTC1 /W3 /nologo /c /Zi /TP /errorReport:prompt")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL /FD /EHsc /W3 /nologo /c /Zi /TP /errorReport:prompt")
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO /SUBSYSTEM:WINDOWS /NODEFAULTLIB:LIBC")
|
|
set(CMAKE_MODULE_LINKER_FLAGS "/SAFESEH:NO /SUBSYSTEM:WINDOWS /NODEFAULTLIB:LIBC")
|
|
add_definitions(-DIS_WINDOWS -D_CRT_SECURE_NO_WARNINGS -DWIN32 -D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DNOMINMAX)
|
|
|
|
set(PLATFORM_INCLUDES "lib/win/directx" "lib/win")
|
|
|
|
set(CMAKE_FIND_LIBRARY_PREFIXES "")
|
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
|
|
|
|
find_library(DSOUND_LIBRARY NAMES dsound "${CMAKE_SOURCE_DIR}/lib/win" "${CMAKE_SOURCE_DIR}/lib/win/directx")
|
|
find_library(DINPUT_LIBRARY NAMES dinput "${CMAKE_SOURCE_DIR}/lib/win" "${CMAKE_SOURCE_DIR}/lib/win/directx")
|
|
find_library(DXGUID_LIBRARY NAMES dxguid "${CMAKE_SOURCE_DIR}/lib/win" "${CMAKE_SOURCE_DIR}/lib/win/directx")
|
|
find_library(DDRAW_LIBRARY NAMES ddraw "${CMAKE_SOURCE_DIR}/lib/win" "${CMAKE_SOURCE_DIR}/lib/win/directx")
|
|
|
|
if(MSVC AND CMAKE_CXX_SIMULATE_ID STREQUAL "")
|
|
add_compile_options("/we4150") # deletion of pointer to incomplete type 'type'; no destructor called
|
|
# add_compile_options("/we4305") # truncation from 'X' to 'Y'
|
|
add_compile_options("/we4474") # too many arguments passed for format string
|
|
add_compile_options("/we4700") # uninitialized local variable 'X' used
|
|
add_compile_options("/we4804") # unsafe use of type 'bool' in operation
|
|
add_compile_options("/we4806") # unsafe operation: no value of type 'bool' promoted to type 'int' can equal the given constant
|
|
add_compile_options("/we4473") # not enough arguments passed for format string
|
|
add_compile_options("/we4477") # format string requires argument of type X but variadic argument Y has type Z
|
|
add_compile_options("/we4715") # 'function' : not all control paths return a value
|
|
add_compile_options("/we4834") # discarding return value of function with [[nodiscard]] attribute
|
|
endif()
|
|
endif()
|
|
|
|
include_directories("lib" "Descent3" ${PLATFORM_INCLUDES})
|
|
|
|
# file(GLOB_RECURSE INCS "*.h")
|
|
|
|
add_subdirectory(2dlib)
|
|
add_subdirectory(AudioEncode)
|
|
add_subdirectory(bitmap)
|
|
add_subdirectory(cfile)
|
|
add_subdirectory(czip)
|
|
add_subdirectory(d3music)
|
|
|
|
if(WIN32)
|
|
add_subdirectory(dd_grwin32)
|
|
add_subdirectory(dd_vidwin32)
|
|
add_subdirectory(win32)
|
|
add_subdirectory(dd_sndlib)
|
|
add_subdirectory(ddio_win)
|
|
endif()
|
|
|
|
if(UNIX)
|
|
add_subdirectory(linux)
|
|
add_subdirectory(ddvid_lnx)
|
|
add_subdirectory(dd_lnxsound)
|
|
add_subdirectory(lnxcontroller)
|
|
add_subdirectory(ddio_lnx)
|
|
endif()
|
|
|
|
add_subdirectory(ddio_common)
|
|
add_subdirectory(fix)
|
|
add_subdirectory(manage)
|
|
add_subdirectory(grtext)
|
|
add_subdirectory(mem)
|
|
add_subdirectory(misc)
|
|
add_subdirectory(model)
|
|
add_subdirectory(module)
|
|
add_subdirectory(movie)
|
|
add_subdirectory(music)
|
|
add_subdirectory(networking)
|
|
add_subdirectory(physics)
|
|
add_subdirectory(renderer)
|
|
add_subdirectory(rtperformance)
|
|
add_subdirectory(sndlib)
|
|
add_subdirectory(stream_audio)
|
|
add_subdirectory(ui)
|
|
add_subdirectory(unzip)
|
|
add_subdirectory(vecmat)
|
|
add_subdirectory(libmve)
|
|
add_subdirectory(md5)
|
|
add_subdirectory(libacm)
|
|
add_subdirectory(Descent3)
|
|
|
|
add_subdirectory(tools)
|
|
|
|
# For now we don't need to build the scripts under windows, so we'll only include
|
|
# the directory when building for linux/osx. In the future we may want to to fix bugs, etc.
|
|
if(UNIX)
|
|
add_subdirectory(netgames)
|
|
add_subdirectory(netcon)
|
|
add_subdirectory(scripts)
|
|
endif()
|
|
|
|
# set default cmake build type to Debug (None Debug Release RelWithDebInfo MinSizeRel)
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Debug")
|
|
endif()
|