diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index cb23aa83d..c3fce3088 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -179,7 +179,6 @@ set(libdevilutionx_SRCS utils/cl2_to_clx.cpp utils/console.cpp utils/display.cpp - utils/format_int.cpp utils/language.cpp utils/logged_fstream.cpp utils/paths.cpp @@ -323,6 +322,13 @@ target_link_libraries(libdevilutionx_file_util PRIVATE ${DEVILUTIONX_PLATFORM_LINK_LIBRARIES} ) +add_devilutionx_object_library(libdevilutionx_format_int + utils/format_int.cpp +) +target_link_libraries(libdevilutionx_format_int PUBLIC + libdevilutionx_strings +) + add_library(libdevilutionx_log INTERFACE) target_include_directories(libdevilutionx_log INTERFACE ${PROJECT_SOURCE_DIR}/Source) @@ -360,6 +366,7 @@ target_link_libraries(libdevilutionx PUBLIC libsmackerdec simpleini::simpleini tl + libdevilutionx_format_int libdevilutionx_file_util libdevilutionx_parse_int libdevilutionx_strings diff --git a/Source/utils/language.cpp b/Source/utils/language.cpp index 614fa66b7..1e86f945b 100644 --- a/Source/utils/language.cpp +++ b/Source/utils/language.cpp @@ -351,12 +351,6 @@ std::string_view GetLanguageCode() return *sgOptions.Language.code; } -bool IsSmallFontTall() -{ - const std::string_view code = GetLanguageCode().substr(0, 2); - return code == "zh" || code == "ja" || code == "ko"; -} - void LanguageInitialize() { translation = { {}, {} }; diff --git a/Source/utils/language.h b/Source/utils/language.h index dc40b5e95..62fbb1798 100644 --- a/Source/utils/language.h +++ b/Source/utils/language.h @@ -42,4 +42,8 @@ std::string_view LanguagePluralTranslate(const char *singular, std::string_view std::string_view LanguageParticularTranslate(std::string_view context, std::string_view message); // Chinese and Japanese, and Korean small font is 16px instead of a 12px one for readability. -bool IsSmallFontTall(); +inline bool IsSmallFontTall() +{ + const std::string_view code = GetLanguageCode().substr(0, 2); + return code == "zh" || code == "ja" || code == "ko"; +} diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0fd8aacca..1fb50d915 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -24,7 +24,6 @@ set(tests drlg_l3_test drlg_l4_test effects_test - format_int_test inv_test lighting_test math_test @@ -42,6 +41,7 @@ set(tests ) set(standalone_tests file_util_test + format_int_test parse_int_test str_cat_test utf8_test @@ -70,7 +70,11 @@ endforeach() add_library(app_fatal_for_testing OBJECT app_fatal_for_testing.cpp) target_sources(app_fatal_for_testing INTERFACE $) +add_library(language_for_testing OBJECT language_for_testing.cpp) +target_sources(language_for_testing INTERFACE $) + target_link_libraries(file_util_test PRIVATE libdevilutionx_file_util app_fatal_for_testing) +target_link_libraries(format_int_test PRIVATE libdevilutionx_format_int language_for_testing) target_link_libraries(parse_int_test PRIVATE libdevilutionx_parse_int) target_link_libraries(str_cat_test PRIVATE libdevilutionx_strings) target_link_libraries(utf8_test PRIVATE libdevilutionx_utf8) diff --git a/test/language_for_testing.cpp b/test/language_for_testing.cpp new file mode 100644 index 000000000..08667758e --- /dev/null +++ b/test/language_for_testing.cpp @@ -0,0 +1,9 @@ +#include +#include + +std::string_view GetLanguageCode() { return "en"; } +bool HasTranslation(const std::string &locale) { return true; } +void LanguageInitialize() { } +std::string_view LanguageTranslate(const char *key) { return key; } +std::string_view LanguagePluralTranslate(const char *singular, std::string_view plural, int count) { return count == 1 ? singular : plural; } +std::string_view LanguageParticularTranslate(std::string_view context, std::string_view message) { return message; }