cmake_minimum_required(VERSION 3.22)
project(TechnozonDuke C CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(DUKE "${CMAKE_CURRENT_SOURCE_DIR}/../eduke32-mobile")
add_library(SDL2 SHARED IMPORTED)
set_target_properties(SDL2 PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../app-project/app/src/main/jniLibs/${ANDROID_ABI}/libSDL2.so" INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/../SDL/include")
add_library(duke SHARED
${DUKE}/source/build/src/2d.cpp
${DUKE}/source/build/src/baselayer.cpp
${DUKE}/source/build/src/cache1d.cpp
${DUKE}/source/build/src/clip.cpp
${DUKE}/source/build/src/colmatch.cpp
${DUKE}/source/build/src/common.cpp
${DUKE}/source/build/src/communityapi.cpp
${DUKE}/source/build/src/compat.cpp
${DUKE}/source/build/src/cpuid.cpp
${DUKE}/source/build/src/crc32.cpp
${DUKE}/source/build/src/defs.cpp
${DUKE}/source/build/src/dxtfilter.cpp
${DUKE}/source/build/src/enet.cpp
${DUKE}/source/build/src/engine.cpp
${DUKE}/source/build/src/fix16.cpp
${DUKE}/source/build/src/hash.cpp
${DUKE}/source/build/src/hightile.cpp
${DUKE}/source/build/src/klzw.cpp
${DUKE}/source/build/src/kplib.cpp
${DUKE}/source/build/src/lz4.c
${DUKE}/source/build/src/md4.cpp
${DUKE}/source/build/src/mhk.cpp
${DUKE}/source/build/src/miniz.c
${DUKE}/source/build/src/miniz_tdef.c
${DUKE}/source/build/src/miniz_tinfl.c
${DUKE}/source/build/src/mmulti.cpp
${DUKE}/source/build/src/mutex.cpp
${DUKE}/source/build/src/osd.cpp
${DUKE}/source/build/src/palette.cpp
${DUKE}/source/build/src/pngwrite.cpp
${DUKE}/source/build/src/polymost.cpp
${DUKE}/source/build/src/pragmas.cpp
${DUKE}/source/build/src/rev.cpp
${DUKE}/source/build/src/screenshot.cpp
${DUKE}/source/build/src/screentext.cpp
${DUKE}/source/build/src/scriptfile.cpp
${DUKE}/source/build/src/sjson.cpp
${DUKE}/source/build/src/smalltextfont.cpp
${DUKE}/source/build/src/softsurface.cpp
${DUKE}/source/build/src/texcache.cpp
${DUKE}/source/build/src/textfont.cpp
${DUKE}/source/build/src/tiles.cpp
${DUKE}/source/build/src/timer.cpp
${DUKE}/source/build/src/vfs.cpp
${DUKE}/source/build/src/xxhash.c
${DUKE}/source/build/src/zpl.cpp
${DUKE}/source/mact/src/animlib.cpp
${DUKE}/source/mact/src/control.cpp
${DUKE}/source/mact/src/joystick.cpp
${DUKE}/source/mact/src/keyboard.cpp
${DUKE}/source/mact/src/scriplib.cpp
${DUKE}/source/audiolib/src/driver_adlib.cpp
${DUKE}/source/audiolib/src/driver_sf2.cpp
${DUKE}/source/audiolib/src/drivers.cpp
${DUKE}/source/audiolib/src/flac.cpp
${DUKE}/source/audiolib/src/formats.cpp
${DUKE}/source/audiolib/src/fx_man.cpp
${DUKE}/source/audiolib/src/gmtimbre.cpp
${DUKE}/source/audiolib/src/midi.cpp
${DUKE}/source/audiolib/src/mix.cpp
${DUKE}/source/audiolib/src/mixst.cpp
${DUKE}/source/audiolib/src/multivoc.cpp
${DUKE}/source/audiolib/src/music.cpp
${DUKE}/source/audiolib/src/opl3.cpp
${DUKE}/source/audiolib/src/pitch.cpp
${DUKE}/source/audiolib/src/vorbis.cpp
${DUKE}/source/audiolib/src/xa.cpp
${DUKE}/source/audiolib/src/xmp.cpp
${DUKE}/source/duke3d/src/actors.cpp
${DUKE}/source/duke3d/src/anim.cpp
${DUKE}/source/duke3d/src/cheats.cpp
${DUKE}/source/duke3d/src/cmdline.cpp
${DUKE}/source/duke3d/src/common.cpp
${DUKE}/source/duke3d/src/config.cpp
${DUKE}/source/duke3d/src/demo.cpp
${DUKE}/source/duke3d/src/game.cpp
${DUKE}/source/duke3d/src/gamedef.cpp
${DUKE}/source/duke3d/src/gameexec.cpp
${DUKE}/source/duke3d/src/gamestructures.cpp
${DUKE}/source/duke3d/src/gamevars.cpp
${DUKE}/source/duke3d/src/global.cpp
${DUKE}/source/duke3d/src/grpscan.cpp
${DUKE}/source/duke3d/src/input.cpp
${DUKE}/source/duke3d/src/menus.cpp
${DUKE}/source/duke3d/src/namesdyn.cpp
${DUKE}/source/duke3d/src/network.cpp
${DUKE}/source/duke3d/src/osdcmds.cpp
${DUKE}/source/duke3d/src/osdfuncs.cpp
${DUKE}/source/duke3d/src/player.cpp
${DUKE}/source/duke3d/src/premap.cpp
${DUKE}/source/duke3d/src/rts.cpp
${DUKE}/source/duke3d/src/savegame.cpp
${DUKE}/source/duke3d/src/sbar.cpp
${DUKE}/source/duke3d/src/screens.cpp
${DUKE}/source/duke3d/src/sector.cpp
${DUKE}/source/duke3d/src/sounds.cpp
${DUKE}/source/duke3d/src/soundsdyn.cpp
${DUKE}/source/duke3d/src/text.cpp
${DUKE}/source/build/src/a-c.cpp
${DUKE}/source/build/src/sdlayer.cpp
${DUKE}/source/audiolib/src/driver_sdl.cpp
${DUKE}/source/duke3d/src/in_android.cpp
    tv_duke.cpp)
target_include_directories(duke PRIVATE ${DUKE}/source/glad/include ${DUKE}/source/build/include ${DUKE}/source/build/src ${DUKE}/source/mact/include ${DUKE}/source/audiolib/include ${DUKE}/source/duke3d/src)
target_compile_definitions(duke PRIVATE NOASM RENDERTYPESDL=1 NETCODE_DISABLE MICROPROFILE_ENABLED=0 REVSTR="TECHNOZON" EDUKE32_REVISION="TECHNOZON")
target_compile_options(duke PRIVATE -O2 -fno-strict-aliasing -Wno-narrowing -Wno-register)
target_link_libraries(duke SDL2 log android m z)
target_link_options(duke PRIVATE "-Wl,-z,max-page-size=16384")

