use the included SDL if not appropriate system-wide SDL was found
This commit is contained in:
parent
b6f81cf375
commit
348bcc9997
5 changed files with 17 additions and 38 deletions
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.12)
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
project(doompanning)
|
||||
|
||||
|
@ -8,5 +8,10 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
|
||||
|
||||
# The SDL renderer backend in the version of ImGui included in this repo
|
||||
# requires at least SDL-2.0.17. This is enforced in
|
||||
# external/imgui/backends/imgui_impl_sdlrenderer.cpp .
|
||||
find_package(SDL2 2.0.17)
|
||||
|
||||
add_subdirectory(external)
|
||||
add_subdirectory(src)
|
||||
|
|
7
external/CMakeLists.txt
vendored
7
external/CMakeLists.txt
vendored
|
@ -2,7 +2,12 @@ option(NNG_SETSTACKSIZE "Use rlimit for thread stack size" ON)
|
|||
set(NNG_TESTS OFF)
|
||||
set(NNG_ENABLE_NNGCAT OFF)
|
||||
add_subdirectory(nng)
|
||||
find_package(SDL2 REQUIRED)
|
||||
|
||||
if (NOT SDL2_FOUND)
|
||||
add_subdirectory(SDL)
|
||||
else()
|
||||
message("-- Using system-installed SDL version ${SDL2_VERSION}")
|
||||
endif()
|
||||
|
||||
add_library(imgui OBJECT
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui.cpp
|
||||
|
|
|
@ -42,7 +42,6 @@ target_link_libraries(dp_imgui_demo
|
|||
)
|
||||
|
||||
if (WIN32)
|
||||
find_package(SDL2)
|
||||
target_link_libraries(doompanning PRIVATE SDL2::SDL2main)
|
||||
target_link_libraries(dp_imgui_demo PRIVATE SDL2::SDL2main)
|
||||
endif()
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#include <imgui.h>
|
||||
#include <backends/imgui_impl_sdl.h>
|
||||
#include <backends/imgui_impl_sdlrenderer.h>
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
|
|
|
@ -3,8 +3,8 @@ cmake_minimum_required(VERSION 3.19)
|
|||
project(dp_doom LANGUAGES C)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
set(BACKEND "nng" CACHE STRING "Which backend to use: Xlib, SDL1, SDL2 or nng")
|
||||
option(WILDMIDI "Render MIDI using the WildMIDI library" OFF)
|
||||
set(BACKEND "nng" CACHE STRING "Which backend to use: Xlib, SDL2 or nng")
|
||||
option(WILDMIDI "Render MIDI using the WildMIDI library" ON)
|
||||
|
||||
add_executable(dp_doom WIN32
|
||||
"linuxdoom-1.10/am_map.c"
|
||||
|
@ -174,22 +174,6 @@ if(BACKEND STREQUAL "Xlib")
|
|||
|
||||
# These are for miniaudio.
|
||||
target_link_libraries(dp_doom PRIVATE m ${CMAKE_DL_LIBS} pthread)
|
||||
elseif(BACKEND STREQUAL "SDL1")
|
||||
target_sources(dp_doom PRIVATE
|
||||
"linuxdoom-1.10/ib_sound/ib_sound_sdl.c"
|
||||
"linuxdoom-1.10/ib_system/ib_system_sdl.c"
|
||||
"linuxdoom-1.10/ib_video/ib_video_sdl.c"
|
||||
)
|
||||
|
||||
find_package(SDL REQUIRED)
|
||||
|
||||
# TODO - Add support for in-tree builds (I don't think it's
|
||||
# actually possible with SDL1 since it lacks a CMake build system)
|
||||
#if(NOT SDL-FOUND)
|
||||
# add_subdirectory("external/sdl1" EXCLUDE_FROM_ALL)
|
||||
#endif()
|
||||
|
||||
target_link_libraries(dp_doom PRIVATE SDL::SDL)
|
||||
elseif(BACKEND STREQUAL "SDL2")
|
||||
target_sources(dp_doom PRIVATE
|
||||
"linuxdoom-1.10/ib_sound/ib_sound_sdl.c"
|
||||
|
@ -197,20 +181,7 @@ elseif(BACKEND STREQUAL "SDL2")
|
|||
"linuxdoom-1.10/ib_video/ib_video_sdl.c"
|
||||
)
|
||||
|
||||
find_package(SDL2)
|
||||
|
||||
if(NOT SDL2_FOUND)
|
||||
add_subdirectory("external/SDL" EXCLUDE_FROM_ALL)
|
||||
if(SDL_STATIC)
|
||||
target_link_libraries(dp_doom PRIVATE SDL2::SDL2main SDL2::SDL2-static)
|
||||
else()
|
||||
target_link_libraries(dp_doom PRIVATE SDL2::SDL2main SDL2::SDL2)
|
||||
endif()
|
||||
else()
|
||||
target_link_libraries(dp_doom PRIVATE SDL2::SDL2main SDL2::SDL2)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(dp_doom PRIVATE INCLUDE_SDL2_MAIN)
|
||||
elseif(BACKEND STREQUAL "nng")
|
||||
target_sources(dp_doom PRIVATE
|
||||
"linuxdoom-1.10/ib_sound/ib_sound_nng.c"
|
||||
|
@ -218,7 +189,6 @@ elseif(BACKEND STREQUAL "nng")
|
|||
"linuxdoom-1.10/ib_video/ib_video_nng.c"
|
||||
)
|
||||
|
||||
find_package(SDL2 REQUIRED)
|
||||
target_link_libraries(dp_doom
|
||||
PRIVATE SDL2::SDL2
|
||||
PRIVATE m
|
||||
|
|
Loading…
Reference in a new issue