cmake_minimum_required(VERSION 3.22)
project(TechnozonDoom C)
set(CMAKE_C_STANDARD 99)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,max-page-size=16384" )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
set(SDL_SHARED ON CACHE BOOL "" FORCE)
set(SDL_STATIC OFF CACHE BOOL "" FORCE)
set(SDL_TEST OFF CACHE BOOL "" FORCE)
set(SDL2_DISABLE_INSTALL ON CACHE BOOL "" FORCE)
add_subdirectory(../SDL SDL)
set(BUILD_SHARED_LIBS ON)
foreach(F FLAC MOD MP3 MIDI OPUS WAVPACK CMD SAMPLES)
  set(SDL2MIXER_${F} OFF CACHE BOOL "" FORCE)
endforeach()
set(SDL2MIXER_VORBIS OFF CACHE STRING "" FORCE)
add_subdirectory(../SDL_mixer mixer)
set(ENABLE_SDL2_MIXER ON)
set(ENABLE_SDL2_NET OFF)
add_compile_definitions(DISABLE_SDL2NET=1)
set(DOOM "${CMAKE_CURRENT_SOURCE_DIR}/../crispy-doom")
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${DOOM}/src ${DOOM}/opl ${DOOM}/pcsound ${DOOM}/textscreen)
add_subdirectory(${DOOM}/opl opl)
add_subdirectory(${DOOM}/pcsound pcsound)
add_subdirectory(${DOOM}/textscreen textscreen)
add_subdirectory(${DOOM}/src/doom doom)
include(sources.cmake)
add_library(main SHARED ${DOOM_COMMON} tv_bridge.c)
target_link_libraries(main doom opl pcsound textscreen SDL2::SDL2 SDL2_mixer::SDL2_mixer m log)
target_link_options(main PRIVATE "-Wl,-z,max-page-size=16384")

