2024-11-30 00:36:33 +01:00
|
|
|
cmake_minimum_required(VERSION 3.12)
|
|
|
|
|
2023-06-17 01:44:38 +02:00
|
|
|
project(omohclient)
|
|
|
|
|
|
|
|
add_subdirectory("../cgame" "./cgame")
|
|
|
|
|
2024-08-09 20:30:35 +02:00
|
|
|
file(GLOB SOURCES_CLIENT "./*.c*")
|
2023-06-17 01:44:38 +02:00
|
|
|
file(GLOB_RECURSE SOURCES_UILIB "../uilib/*.c*")
|
|
|
|
|
2025-04-22 21:40:34 +02:00
|
|
|
set(SOURCES_CLIENT ${SOURCES_CLIENT}
|
|
|
|
# Gamespy
|
|
|
|
"${CMAKE_SOURCE_DIR}/code/gamespy/cl_gamespy.c"
|
|
|
|
)
|
|
|
|
|
2023-06-17 01:44:38 +02:00
|
|
|
# Made as an interface and not static, as static only links used methods
|
|
|
|
add_library(omohclient INTERFACE)
|
|
|
|
target_compile_definitions(omohclient INTERFACE APP_MODULE)
|
|
|
|
target_compile_features(omohclient INTERFACE cxx_nullptr)
|
|
|
|
target_compile_features(omohclient INTERFACE c_variadic_macros)
|
2024-12-01 22:17:08 +01:00
|
|
|
target_link_libraries(omohclient INTERFACE omohsdl_client)
|
2023-06-17 01:44:38 +02:00
|
|
|
target_link_libraries(omohclient INTERFACE gcd)
|
|
|
|
|
|
|
|
# Sound stuff
|
|
|
|
target_compile_definitions(omohclient INTERFACE USE_CODEC_MP3)
|
|
|
|
|
2024-11-29 22:53:04 +01:00
|
|
|
if (NOT NO_MODERN_DMA)
|
2024-08-21 18:35:06 +02:00
|
|
|
# Use OpenAL
|
2024-07-24 19:57:22 +02:00
|
|
|
find_package(OpenAL REQUIRED)
|
2024-08-21 18:35:06 +02:00
|
|
|
|
2024-01-07 19:47:58 +01:00
|
|
|
if (OPENAL_FOUND)
|
2024-08-21 18:35:06 +02:00
|
|
|
target_compile_definitions(omohclient INTERFACE USE_OPENAL=1 NO_MODERN_DMA=0)
|
2024-01-07 19:47:58 +01:00
|
|
|
if (MSVC)
|
|
|
|
target_include_directories(omohclient INTERFACE ${OPENAL_INCLUDE_DIR}/AL)
|
|
|
|
else()
|
|
|
|
target_include_directories(omohclient INTERFACE ${OPENAL_INCLUDE_DIR})
|
|
|
|
endif()
|
2024-11-29 22:03:39 +01:00
|
|
|
|
|
|
|
if(NOT USE_SYSTEM_LIBS)
|
|
|
|
target_compile_definitions(omohclient INTERFACE USE_OPENAL_DLOPEN=1)
|
|
|
|
else()
|
|
|
|
# Link against system OpenAL
|
|
|
|
target_link_libraries(omohclient INTERFACE OpenAL::OpenAL)
|
|
|
|
endif()
|
2024-01-07 19:47:58 +01:00
|
|
|
endif()
|
|
|
|
|
|
|
|
list(FILTER SOURCES_CLIENT EXCLUDE REGEX "./snd_([a-zA-Z0-9_]+)\.c$")
|
2024-08-09 20:30:35 +02:00
|
|
|
file(GLOB SOURCES_CLIENT_SND "./snd_*_new.c*" "./snd_codec*.c*")
|
2024-01-08 19:43:47 +01:00
|
|
|
list(APPEND SOURCES_CLIENT ${SOURCES_CLIENT_SND})
|
2024-07-11 22:54:41 +02:00
|
|
|
else()
|
2024-08-21 18:35:06 +02:00
|
|
|
#
|
|
|
|
# Fallback to old DMA sound system
|
|
|
|
#
|
|
|
|
message(NOTICE "OpenAL was explicitly disabled - fallback to old SDL sound system")
|
|
|
|
target_compile_definitions(omohclient INTERFACE NO_MODERN_DMA=1)
|
|
|
|
set(NO_MODERN_DMA TRUE)
|
|
|
|
|
2024-08-09 20:30:35 +02:00
|
|
|
list(FILTER SOURCES_CLIENT EXCLUDE REGEX "./snd_([a-zA-Z0-9_]+)\.cpp$")
|
|
|
|
file(GLOB_RECURSE SOURCES_CLIENT_SND "./new/*.c*")
|
|
|
|
list(APPEND SOURCES_CLIENT ${SOURCES_CLIENT_SND})
|
2024-01-07 19:47:58 +01:00
|
|
|
endif()
|
|
|
|
|
2024-08-09 20:33:59 +02:00
|
|
|
set(OLD_VALUE ${BUILD_SHARED_LIBS})
|
|
|
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
2024-10-07 20:51:23 +02:00
|
|
|
|
|
|
|
if(USE_INTERNAL_MAD)
|
|
|
|
add_subdirectory("../libmad" "./libmad" EXCLUDE_FROM_ALL)
|
|
|
|
target_link_libraries(omohclient INTERFACE mad)
|
|
|
|
else()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
find_path(LIBMAD_INCLUDE_DIRS mad.h)
|
|
|
|
find_library(LIBMAD_LIBRARIES mad)
|
|
|
|
find_package_handle_standard_args(
|
|
|
|
LibMad
|
|
|
|
DEFAULT_MSG
|
|
|
|
LIBMAD_LIBRARIES
|
|
|
|
LIBMAD_INCLUDE_DIRS
|
|
|
|
)
|
|
|
|
target_include_directories(omohclient INTERFACE ${LIBMAD_INCLUDE_DIRS})
|
|
|
|
target_link_libraries(omohclient INTERFACE ${LIBMAD_LIBRARIES})
|
|
|
|
endif()
|
|
|
|
|
2024-08-09 20:33:59 +02:00
|
|
|
set(BUILD_SHARED_LIBS ${OLD_VALUE} CACHE BOOL "" FORCE)
|
|
|
|
|
2024-01-07 19:47:58 +01:00
|
|
|
target_sources(omohclient INTERFACE ${SOURCES_CLIENT} ${SOURCES_UILIB})
|