2024-11-30 00:36:33 +01:00
|
|
|
cmake_minimum_required(VERSION 3.12)
|
|
|
|
|
2023-06-17 01:44:38 +02:00
|
|
|
project(omohsdl)
|
|
|
|
|
2024-12-01 22:17:08 +01:00
|
|
|
file(GLOB SOURCES_SDL_CLIENT
|
|
|
|
"./sdl_input.c"
|
|
|
|
)
|
|
|
|
|
|
|
|
file(GLOB SOURCES_SDL_GL
|
2024-08-21 18:35:06 +02:00
|
|
|
"./sdl_gamma.c"
|
|
|
|
"./sdl_glimp.c"
|
|
|
|
)
|
|
|
|
|
|
|
|
if (NO_MODERN_DMA)
|
|
|
|
list(APPEND SOURCES_SDL "./sdl_snd.c")
|
|
|
|
endif()
|
2023-06-17 01:44:38 +02:00
|
|
|
|
2024-12-01 22:17:08 +01:00
|
|
|
add_library(omohsdl_client STATIC ${SOURCES_SDL_CLIENT})
|
|
|
|
target_compile_features(omohsdl_client PUBLIC c_variadic_macros)
|
|
|
|
target_link_libraries(omohsdl_client PRIVATE qcommon qcommon_standalone)
|
2023-06-17 01:44:38 +02:00
|
|
|
|
2024-08-21 18:35:06 +02:00
|
|
|
if (NO_MODERN_DMA)
|
2024-12-01 22:17:08 +01:00
|
|
|
target_compile_definitions(omohsdl_client PRIVATE NO_MODERN_DMA=1)
|
2024-08-21 18:35:06 +02:00
|
|
|
endif()
|
2023-08-15 13:42:50 +02:00
|
|
|
|
2024-12-01 22:17:08 +01:00
|
|
|
add_library(omohsdl_gl STATIC ${SOURCES_SDL_GL})
|
|
|
|
target_link_libraries(omohsdl_gl PRIVATE qcommon)
|
|
|
|
|
2023-08-19 23:07:12 +02:00
|
|
|
if(${CMAKE_VERSION} VERSION_GREATER "3.11")
|
2023-08-15 13:42:50 +02:00
|
|
|
cmake_policy(SET CMP0074 NEW)
|
|
|
|
endif()
|
|
|
|
|
2024-12-01 22:17:08 +01:00
|
|
|
add_library(sdllib INTERFACE)
|
|
|
|
|
2023-06-17 01:44:38 +02:00
|
|
|
if(WIN32)
|
2023-06-18 12:52:29 +02:00
|
|
|
find_package(SDL2)
|
|
|
|
|
|
|
|
if (SDL2_FOUND)
|
2023-08-19 23:29:23 +02:00
|
|
|
string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)
|
2024-12-01 22:17:08 +01:00
|
|
|
target_include_directories(sdllib INTERFACE ${SDL2_INCLUDE_DIRS})
|
|
|
|
target_link_libraries(sdllib INTERFACE ${SDL2_LIBRARIES})
|
2023-06-18 12:52:29 +02:00
|
|
|
else()
|
|
|
|
message(WARNING "SDL2 not found, falling back to using SDL2 from the source tree")
|
|
|
|
|
2024-12-01 22:17:08 +01:00
|
|
|
target_include_directories(sdllib INTERFACE "../SDL2/include-2.0.22")
|
2023-06-18 12:52:29 +02:00
|
|
|
|
|
|
|
if (MSVC)
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
|
|
add_library(sdl2 SHARED IMPORTED)
|
|
|
|
set_target_properties(sdl2 PROPERTIES
|
|
|
|
IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/code/libs/win64/SDL264.lib"
|
|
|
|
)
|
|
|
|
|
|
|
|
add_library(sdl2main SHARED IMPORTED)
|
|
|
|
set_target_properties(sdl2main PROPERTIES
|
|
|
|
IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/code/libs/win64/SDL264main.lib"
|
|
|
|
)
|
|
|
|
else()
|
|
|
|
add_library(sdl2 SHARED IMPORTED)
|
|
|
|
set_target_properties(sdl2 PROPERTIES
|
|
|
|
IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/code/libs/win32/SDL2.lib"
|
|
|
|
)
|
|
|
|
|
|
|
|
add_library(sdl2main SHARED IMPORTED)
|
|
|
|
set_target_properties(sdl2main PROPERTIES
|
|
|
|
IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/code/libs/win32/SDL2main.lib"
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2024-12-01 22:17:08 +01:00
|
|
|
target_link_libraries(sdllib INTERFACE sdl2 sdl2main)
|
2023-06-17 01:44:38 +02:00
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
elseif(UNIX)
|
|
|
|
find_package(SDL2 REQUIRED)
|
2023-08-19 23:07:12 +02:00
|
|
|
|
2023-08-19 23:10:48 +02:00
|
|
|
if (SDL2_FOUND)
|
2023-08-19 23:23:36 +02:00
|
|
|
string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)
|
2024-12-01 22:17:08 +01:00
|
|
|
target_include_directories(sdllib INTERFACE ${SDL2_INCLUDE_DIRS})
|
|
|
|
target_link_libraries(sdllib INTERFACE ${SDL2_LIBRARIES})
|
2023-08-19 23:10:48 +02:00
|
|
|
endif()
|
2023-06-17 01:44:38 +02:00
|
|
|
endif()
|
2024-12-01 22:17:08 +01:00
|
|
|
|
|
|
|
target_link_libraries(omohsdl_client PUBLIC sdllib)
|
|
|
|
target_link_libraries(omohsdl_gl PUBLIC sdllib)
|