Browse Source

Turn utils/file_util into a standalone library

pull/7150/head
Gleb Mazovetskiy 2 years ago
parent
commit
495e583e64
  1. 20
      Source/CMakeLists.txt
  2. 2
      Source/utils/log.hpp
  3. 6
      test/CMakeLists.txt
  4. 12
      test/app_fatal_for_testing.cpp

20
Source/CMakeLists.txt

@ -179,7 +179,6 @@ set(libdevilutionx_SRCS
utils/cl2_to_clx.cpp
utils/console.cpp
utils/display.cpp
utils/file_util.cpp
utils/format_int.cpp
utils/language.cpp
utils/logged_fstream.cpp
@ -315,6 +314,24 @@ if(SCREEN_READER_INTEGRATION AND WIN32)
target_compile_definitions(libdevilutionx PRIVATE Tolk)
endif()
add_devilutionx_object_library(libdevilutionx_file_util
utils/file_util.cpp
)
target_link_libraries(libdevilutionx_file_util PRIVATE
DevilutionX::SDL
libdevilutionx_log
${DEVILUTIONX_PLATFORM_LINK_LIBRARIES}
)
add_library(libdevilutionx_log INTERFACE)
target_include_directories(libdevilutionx_log INTERFACE
${PROJECT_SOURCE_DIR}/Source)
target_link_libraries(libdevilutionx_log INTERFACE
DevilutionX::SDL
fmt::fmt
libdevilutionx_strings
)
add_devilutionx_object_library(libdevilutionx_parse_int
utils/parse_int.cpp
)
@ -343,6 +360,7 @@ target_link_libraries(libdevilutionx PUBLIC
libsmackerdec
simpleini::simpleini
tl
libdevilutionx_file_util
libdevilutionx_parse_int
libdevilutionx_strings
libdevilutionx_utf8

2
Source/utils/log.hpp

@ -15,7 +15,7 @@
namespace devilution {
// Local definition to fix compilation issue due to header conflict.
[[noreturn]] void app_fatal(std::string_view);
[[noreturn]] extern void app_fatal(std::string_view);
enum class LogCategory {
Application = SDL_LOG_CATEGORY_APPLICATION,

6
test/CMakeLists.txt

@ -24,7 +24,6 @@ set(tests
drlg_l3_test
drlg_l4_test
effects_test
file_util_test
format_int_test
inv_test
lighting_test
@ -42,6 +41,7 @@ set(tests
writehero_test
)
set(standalone_tests
file_util_test
parse_int_test
str_cat_test
utf8_test
@ -67,6 +67,10 @@ foreach(test_target ${standalone_tests})
target_include_directories(${test_target} PRIVATE "${PROJECT_SOURCE_DIR}/Source")
endforeach()
add_library(app_fatal_for_testing OBJECT app_fatal_for_testing.cpp)
target_sources(app_fatal_for_testing INTERFACE $<TARGET_OBJECTS:app_fatal_for_testing>)
target_link_libraries(file_util_test PRIVATE libdevilutionx_file_util app_fatal_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)

12
test/app_fatal_for_testing.cpp

@ -0,0 +1,12 @@
#include <iostream>
#include <string_view>
namespace devilution {
[[noreturn]] void app_fatal(std::string_view str)
{
std::cerr << "app_fatal: " << str << std::endl;
std::abort();
}
} // namespace devilution
Loading…
Cancel
Save