1- cmake_minimum_required (VERSION 3.16 ...3.31 FATAL_ERROR )
1+ cmake_minimum_required (VERSION 3.18 ...3.31 FATAL_ERROR )
22
3- project (EasyRPG_Player VERSION 0.8
3+ project (EasyRPG_Player VERSION 0.8.1
44 DESCRIPTION "Interpreter for RPG Maker 2000/2003 games"
55 HOMEPAGE_URL "https://easyrpg.org"
66 LANGUAGES CXX )
@@ -31,6 +31,8 @@ option(BUILD_SHARED_LIBS "Build shared easyrpg_libretro core" ON)
3131
3232option (CMAKE_FIND_PACKAGE_PREFER_CONFIG "Prefer config files over bundled FindXXX files. Set this to OFF when configuration fails and report a bug." ON )
3333
34+ option (PLAYER_NONFREE "For commercial usage disable libraries and fonts that are licensed under (L)GPL." OFF )
35+
3436# Source Files
3537add_library (${PROJECT_NAME} OBJECT
3638 src/lcf_data.cpp
@@ -68,8 +70,6 @@ add_library(${PROJECT_NAME} OBJECT
6870 src/baseui.h
6971 src/battle_animation.cpp
7072 src/battle_animation.h
71- src/battle_message.cpp
72- src/battle_message.h
7373 src/bitmap.cpp
7474 src/bitmapfont.h
7575 src/bitmapfont_glyph.h
@@ -182,6 +182,8 @@ add_library(${PROJECT_NAME} OBJECT
182182 src/game_interpreter_battle.h
183183 src/game_interpreter_control_variables.cpp
184184 src/game_interpreter_control_variables.h
185+ src/game_interpreter_debug.cpp
186+ src/game_interpreter_debug.h
185187 src/game_interpreter.cpp
186188 src/game_interpreter.h
187189 src/game_interpreter_map.cpp
@@ -192,6 +194,8 @@ add_library(${PROJECT_NAME} OBJECT
192194 src/game_map.h
193195 src/game_message.cpp
194196 src/game_message.h
197+ src/game_message_terms.cpp
198+ src/game_message_terms.h
195199 src/game_party_base.cpp
196200 src/game_party_base.h
197201 src/game_party.cpp
@@ -201,6 +205,8 @@ add_library(${PROJECT_NAME} OBJECT
201205 src/game_player.cpp
202206 src/game_player.h
203207 src/game_playerother.h
208+ src/game_runtime_patches.cpp
209+ src/game_runtime_patches.h
204210 src/game_quit.cpp
205211 src/game_quit.h
206212 src/game_screen.cpp
@@ -219,6 +225,7 @@ add_library(${PROJECT_NAME} OBJECT
219225 src/game_vehicle.h
220226 src/game_windows.cpp
221227 src/game_windows.h
228+ src/generated/bitmapfont_baekmuk.h
222229 src/generated/bitmapfont_rmg2000.h
223230 src/generated/bitmapfont_ttyp0.h
224231 src/generated/bitmapfont_wqy.h
@@ -629,7 +636,7 @@ elseif(PLAYER_TARGET_PLATFORM STREQUAL "SDL2")
629636 # SDL2 depends on some systems on SDL2::SDL2main but SDL2::SDL2 is not always a dependency of it
630637 # Manually add the dependencies
631638 player_find_package (NAME SDL2
632- VERSION 2.0.5
639+ VERSION 2.0.14
633640 TARGET SDL2::SDL2
634641 REQUIRED )
635642
@@ -801,6 +808,10 @@ endif()
801808# Shared by homebrew platforms
802809if (NINTENDO_3DS OR NINTENDO_WII OR NINTENDO_WIIU OR NINTENDO_WIIU OR NINTENDO_SWITCH OR VITA)
803810 target_compile_options (${PROJECT_NAME} PUBLIC -fno-exceptions -fno-rtti )
811+ if (VITA)
812+ # This optimisation is unstable on Vita (crashes at the end of MainLoop)
813+ target_compile_options (${PROJECT_NAME} PUBLIC -fno-optimize-sibling-calls )
814+ endif ()
804815 set (CMAKE_DL_LIBS "" ) # hack4icu!
805816 set (PLAYER_ENABLE_TESTS OFF )
806817 option (PLAYER_VERSIONED_PACKAGES "Create zip packages with versioned name (for internal use)" ON )
@@ -942,7 +953,7 @@ if(PLAYER_BUILD_LIBLCF)
942953 target_link_libraries (${PROJECT_NAME} lcf )
943954else ()
944955 # Use system package
945- player_find_package (NAME liblcf VERSION 0.8
956+ player_find_package (NAME liblcf VERSION 0.8.1
946957 TARGET liblcf::liblcf
947958 REQUIRED )
948959endif ()
@@ -1054,13 +1065,13 @@ if(PLAYER_HAS_AUDIO)
10541065 endif ()
10551066endif ()
10561067
1057- CMAKE_DEPENDENT_OPTION (PLAYER_WITH_MPG123 "Play MP3 audio with libmpg123" ON "PLAYER_HAS_AUDIO" OFF )
1058- CMAKE_DEPENDENT_OPTION (PLAYER_WITH_LIBSNDFILE "Play WAV audio with libsndfile" ON "PLAYER_HAS_AUDIO" OFF )
1068+ CMAKE_DEPENDENT_OPTION (PLAYER_WITH_MPG123 "Play MP3 audio with libmpg123" ON "PLAYER_HAS_AUDIO;NOT PLAYER_NONFREE " OFF )
1069+ CMAKE_DEPENDENT_OPTION (PLAYER_WITH_LIBSNDFILE "Play WAV audio with libsndfile" ON "PLAYER_HAS_AUDIO;NOT PLAYER_NONFREE " OFF )
10591070CMAKE_DEPENDENT_OPTION (PLAYER_WITH_OGGVORBIS "Play Ogg Vorbis audio with libvorbis" ON "PLAYER_HAS_AUDIO" OFF )
10601071CMAKE_DEPENDENT_OPTION (PLAYER_WITH_OPUS "Play Opus audio with opusfile" ON "PLAYER_HAS_AUDIO" OFF )
1061- CMAKE_DEPENDENT_OPTION (PLAYER_WITH_WILDMIDI "Play MIDI audio with wildmidi" ON "PLAYER_HAS_AUDIO" OFF )
1062- CMAKE_DEPENDENT_OPTION (PLAYER_WITH_FLUIDSYNTH "Play MIDI audio with fluidsynth" ON "PLAYER_HAS_AUDIO" OFF )
1063- CMAKE_DEPENDENT_OPTION (PLAYER_WITH_FLUIDLITE "Play MIDI audio with fluidlite" ON "PLAYER_HAS_AUDIO" OFF )
1072+ CMAKE_DEPENDENT_OPTION (PLAYER_WITH_WILDMIDI "Play MIDI audio with wildmidi" ON "PLAYER_HAS_AUDIO;NOT PLAYER_NONFREE " OFF )
1073+ CMAKE_DEPENDENT_OPTION (PLAYER_WITH_FLUIDSYNTH "Play MIDI audio with fluidsynth" ON "PLAYER_HAS_AUDIO;NOT PLAYER_NONFREE " OFF )
1074+ CMAKE_DEPENDENT_OPTION (PLAYER_WITH_FLUIDLITE "Play MIDI audio with fluidlite" ON "PLAYER_HAS_AUDIO;NOT PLAYER_NONFREE " OFF )
10641075CMAKE_DEPENDENT_OPTION (PLAYER_WITH_XMP "Play MOD audio with libxmp" ON "PLAYER_HAS_AUDIO" OFF )
10651076CMAKE_DEPENDENT_OPTION (PLAYER_ENABLE_DRWAV "Play WAV audio with dr_wav (built-in). Unsupported files are played by libsndfile." ON "PLAYER_HAS_AUDIO" OFF )
10661077
@@ -1179,6 +1190,18 @@ if(PLAYER_HAS_AUDIO)
11791190 endif ()
11801191endif ()
11811192
1193+ # Fonts
1194+ option (PLAYER_WITH_BAEKMUK "Enable built-in Baekmuk font (Korean)" ON )
1195+ CMAKE_DEPENDENT_OPTION (PLAYER_WITH_WQY "Enable built-in WenQuanYi font (Chinese)" ON "NOT PLAYER_NONFREE" OFF )
1196+
1197+ if (PLAYER_WITH_BAEKMUK)
1198+ target_compile_definitions (${PROJECT_NAME} PUBLIC WANT_FONT_BAEKMUK=1 )
1199+ endif ()
1200+
1201+ if (PLAYER_WITH_WQY)
1202+ target_compile_definitions (${PROJECT_NAME} PUBLIC WANT_FONT_WQY=1 )
1203+ endif ()
1204+
11821205# Executable
11831206if (PLAYER_BUILD_EXECUTABLE AND ${PLAYER_TARGET_PLATFORM} MATCHES "^SDL.*$" AND NOT PLAYER_CONSOLE_PORT)
11841207 if (APPLE )
0 commit comments