Files
nunuhara_xsystem4/CMakeLists.txt
T
kichikuou f53ad7d557 Initial implementation of TapirEngine.CalcInstance2DDetection
This is used for collision detection between a map object and the player
character. The current implementation is very simple, only performing
AABB intersection tests, but it is enough to allow the player to walk
around the first dungeon in Rance Quest.
2024-09-16 15:27:11 +09:00

216 lines
4.6 KiB
CMake

# CMakeLists.txt for Android build
cmake_minimum_required(VERSION 3.14)
project(xsystem4 LANGUAGES C)
set(CMAKE_C_STANDARD 11)
include(FetchContent)
FetchContent_Declare(
cglm
URL https://github.com/recp/cglm/archive/refs/tags/v0.9.2.tar.gz
URL_HASH SHA1=cb8472aa8c2ab67b66378dbaf10c2c7368d4e4c3
)
FetchContent_Declare(
SDL
URL https://github.com/libsdl-org/SDL/releases/download/release-2.30.7/SDL2-2.30.7.tar.gz
URL_HASH SHA1=fc1119fad88d21d1b4945dfd69d8a49f39155a6d
)
FetchContent_Declare(
freetype
GIT_REPOSITORY https://github.com/freetype/freetype.git
GIT_TAG VER-2-13-2
)
FetchContent_MakeAvailable(cglm SDL freetype)
add_library(ffi STATIC IMPORTED)
set_target_properties(ffi PROPERTIES
IMPORTED_LOCATION ${CMAKE_STAGING_PREFIX}/lib/libffi.a
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_STAGING_PREFIX}/include)
find_package(SndFile REQUIRED)
add_subdirectory(subprojects/libsys4)
add_library(xsystem4 SHARED)
target_compile_definitions(xsystem4 PRIVATE
_DEFAULT_SOURCE
USE_GLES
)
target_include_directories(xsystem4 PRIVATE include)
execute_process(
COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE VCS_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE)
configure_file(src/version.h.in version.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
target_sources(xsystem4 PRIVATE
src/audio.c
src/audio_meta.c
src/audio_mixer.c
src/asset_manager.c
src/base64.c
src/cJSON.c
src/draw.c
src/effect.c
src/ffi.c
src/font_freetype.c
src/font_fnl.c
src/format.c
src/hacks.c
src/heap.c
src/id_pool.c
src/input.c
src/json.c
src/movie_plmpeg.c
src/msgqueue.c
src/page.c
src/resume.c
src/savedata.c
src/scene.c
src/sprite.c
src/swf.c
src/system4.c
src/text.c
src/util.c
src/video.c
src/vm.c
src/3d/collision.c
src/3d/debug.c
src/3d/model.c
src/3d/parser.c
src/3d/particle.c
src/3d/reign.c
src/3d/renderer.c
src/dungeon/dgn.c
src/dungeon/dtx.c
src/dungeon/dungeon.c
src/dungeon/map.c
src/dungeon/polyobj.c
src/dungeon/renderer.c
src/dungeon/skybox.c
src/dungeon/tes.c
src/parts/construction.c
src/parts/debug.c
src/parts/flash.c
src/parts/input.c
src/parts/motion.c
src/parts/parts.c
src/parts/render.c
src/parts/text.c
src/parts/save.c
src/hll/ACXLoader.c
src/hll/ADVSYS.c
src/hll/AliceLogo.c
src/hll/AliceLogo2.c
src/hll/AliceLogo3.c
src/hll/AliceLogo4.c
src/hll/AliceLogo5.c
src/hll/AnteaterADVEngine.c
src/hll/BanMisc.c
src/hll/Bitarray.c
src/hll/CGManager.c
src/hll/CharSpriteManager.c
src/hll/ChipmunkSpriteEngine.c
src/hll/ChrLoader.c
src/hll/CommonSystemData.c
src/hll/Confirm.c
src/hll/Confirm2.c
src/hll/Confirm3.c
src/hll/CrayfishLogViewer.c
src/hll/Cursor.c
src/hll/DALKDemo.c
src/hll/DALKEDemo.c
src/hll/Data.c
src/hll/DataFile.c
src/hll/DrawDungeon.c
src/hll/DrawGraph.c
src/hll/DrawMovie.c
src/hll/DrawPluginManager.c
src/hll/DrawSimpleText.c
src/hll/File.c
src/hll/File2.c
src/hll/FileOperation.c
src/hll/FillAngle.c
src/hll/GoatGUIEngine.c
src/hll/Gpx2Plus.c
src/hll/GUIEngine.c
src/hll/iarray.c
src/hll/IbisInputEngine.c
src/hll/InputDevice.c
src/hll/InputString.c
src/hll/KiwiSoundEngine.c
src/hll/LoadCG.c
src/hll/MainEXFile.c
src/hll/MainSurface.c
src/hll/MamanyoDemo.c
src/hll/MamanyoSDemo.c
src/hll/MarmotModelEngine.c
src/hll/Math.c
src/hll/MapLoader.c
src/hll/MenuMsg.c
src/hll/MonsterInfo.c
src/hll/MsgLogManager.c
src/hll/MsgLogViewer.c
src/hll/MsgSkip.c
src/hll/NewFont.c
src/hll/OutputLog.c
src/hll/PassRegister.c
src/hll/PartsEngine.c
src/hll/PixelRestore.c
src/hll/PlayDemo.c
src/hll/PlayMovie.c
src/hll/ReignEngine.c
src/hll/SACT2.c
src/hll/SengokuRanceFont.c
src/hll/SoundFilePlayer.c
src/hll/Sound2ex.c
src/hll/StoatSpriteEngine.c
src/hll/StretchHelper.c
src/hll/SystemService.c
src/hll/SystemServiceEx.c
src/hll/Timer.c
src/hll/Toushin3Loader.c
src/hll/vmAnime.c
src/hll/vmArray.c
src/hll/vmCG.c
src/hll/vmChrLoader.c
src/hll/vmCursor.c
src/hll/vmDalkGaiden.c
src/hll/vmData.c
src/hll/vmDialog.c
src/hll/vmDrawGauge.c
src/hll/vmDrawMsg.c
src/hll/vmDrawNumber.c
src/hll/vmFile.c
src/hll/vmGraph.c
src/hll/vmGraphQuake.c
src/hll/vmKey.c
src/hll/vmMapLoader.c
src/hll/vmMsgLog.c
src/hll/vmMusic.c
src/hll/vmSound.c
src/hll/vmSprite.c
src/hll/vmString.c
src/hll/vmSurface.c
src/hll/vmSystem.c
src/hll/vmTimer.c
src/hll/VSFile.c
)
target_link_libraries(xsystem4 PRIVATE
m z SDL2 freetype ffi GLESv3 cglm SndFile::sndfile sys4)
target_compile_options(xsystem4 PRIVATE -Wno-unused-parameter)
install(TARGETS xsystem4 SDL2 freetype)