diff --git a/CMakeLists.txt b/CMakeLists.txt index 425efb60..ff26633e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -190,7 +190,7 @@ if (NOT BUILD_NO_CLIENT) target_link_libraries(openmohaa PRIVATE syslib) target_link_libraries(openmohaa PRIVATE omohserver) target_link_libraries(openmohaa PRIVATE omohclient) - target_link_libraries(openmohaa PRIVATE omohrenderer omohsdl) + target_link_libraries(openmohaa PRIVATE omohrenderer) target_link_libraries(openmohaa PRIVATE qcommon qcommon_standalone) # Add the gamespy dependency diff --git a/code/client/CMakeLists.txt b/code/client/CMakeLists.txt index baaf74bc..b641351c 100644 --- a/code/client/CMakeLists.txt +++ b/code/client/CMakeLists.txt @@ -12,7 +12,7 @@ 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) -target_link_libraries(omohclient INTERFACE omohsdl) +target_link_libraries(omohclient INTERFACE omohsdl_client) target_link_libraries(omohclient INTERFACE gcd) # Sound stuff diff --git a/code/renderergl1/CMakeLists.txt b/code/renderergl1/CMakeLists.txt index 926262de..2d5fb2a5 100644 --- a/code/renderergl1/CMakeLists.txt +++ b/code/renderergl1/CMakeLists.txt @@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.12) project(omohrenderer) file(GLOB_RECURSE SOURCES_RENDERER "./*.c" "./*.cpp" "../renderercommon/tr_*.c") +list(REMOVE_ITEM SOURCES_RENDERER "./tr_subs.c") add_library(omohrenderer STATIC ${SOURCES_RENDERER}) target_include_directories(omohrenderer PUBLIC "../sdl" "../renderercommon") @@ -10,7 +11,12 @@ target_compile_features(omohrenderer PUBLIC cxx_nullptr) target_compile_features(omohrenderer PUBLIC c_variadic_macros) target_compile_definitions(omohrenderer PRIVATE USE_INTERNAL_JPEG=1) target_link_libraries(omohrenderer PRIVATE qcommon) -target_link_libraries(omohrenderer PRIVATE omohsdl) +target_link_libraries(omohrenderer PRIVATE omohsdl_gl) + +get_target_property(target_type omohrenderer TYPE) +if (target_type STREQUAL "SHARED_LIBRARY") + target_sources(omohrenderer PRIVATE "./tr_subs.c") +endif () if(USE_INTERNAL_JPEG) file(GLOB_RECURSE SOURCES_JPEG_8 "../jpeg-8c/*.c") diff --git a/code/sdl/CMakeLists.txt b/code/sdl/CMakeLists.txt index 636a1ba6..58e79160 100644 --- a/code/sdl/CMakeLists.txt +++ b/code/sdl/CMakeLists.txt @@ -2,39 +2,47 @@ cmake_minimum_required(VERSION 3.12) project(omohsdl) -file(GLOB SOURCES_SDL +file(GLOB SOURCES_SDL_CLIENT +"./sdl_input.c" +) + +file(GLOB SOURCES_SDL_GL "./sdl_gamma.c" "./sdl_glimp.c" -"./sdl_input.c" ) if (NO_MODERN_DMA) list(APPEND SOURCES_SDL "./sdl_snd.c") endif() -add_library(omohsdl STATIC ${SOURCES_SDL}) -target_compile_features(omohsdl PUBLIC c_variadic_macros) -target_link_libraries(omohsdl PRIVATE qcommon qcommon_standalone) +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) if (NO_MODERN_DMA) - target_compile_definitions(omohsdl PRIVATE NO_MODERN_DMA=1) + target_compile_definitions(omohsdl_client PRIVATE NO_MODERN_DMA=1) endif() +add_library(omohsdl_gl STATIC ${SOURCES_SDL_GL}) +target_link_libraries(omohsdl_gl PRIVATE qcommon) + if(${CMAKE_VERSION} VERSION_GREATER "3.11") cmake_policy(SET CMP0074 NEW) endif() +add_library(sdllib INTERFACE) + if(WIN32) find_package(SDL2) if (SDL2_FOUND) string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES) - target_include_directories(omohsdl PUBLIC ${SDL2_INCLUDE_DIRS}) - target_link_libraries(omohsdl PRIVATE ${SDL2_LIBRARIES}) + target_include_directories(sdllib INTERFACE ${SDL2_INCLUDE_DIRS}) + target_link_libraries(sdllib INTERFACE ${SDL2_LIBRARIES}) else() message(WARNING "SDL2 not found, falling back to using SDL2 from the source tree") - target_include_directories(omohsdl PUBLIC "../SDL2/include-2.0.22") + target_include_directories(sdllib INTERFACE "../SDL2/include-2.0.22") if (MSVC) if(CMAKE_SIZEOF_VOID_P EQUAL 8) @@ -59,7 +67,7 @@ if(WIN32) ) endif() - target_link_libraries(omohsdl PRIVATE sdl2 sdl2main) + target_link_libraries(sdllib INTERFACE sdl2 sdl2main) endif() endif() @@ -68,7 +76,10 @@ elseif(UNIX) if (SDL2_FOUND) string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES) - target_include_directories(omohsdl PUBLIC ${SDL2_INCLUDE_DIRS}) - target_link_libraries(omohsdl PRIVATE ${SDL2_LIBRARIES}) + target_include_directories(sdllib INTERFACE ${SDL2_INCLUDE_DIRS}) + target_link_libraries(sdllib INTERFACE ${SDL2_LIBRARIES}) endif() endif() + +target_link_libraries(omohsdl_client PUBLIC sdllib) +target_link_libraries(omohsdl_gl PUBLIC sdllib)