Skip to content

Commit

Permalink
Turn utils/file_util into a standalone library
Browse files Browse the repository at this point in the history
  • Loading branch information
glebm committed Jun 19, 2024
1 parent 164dc9d commit 495e583
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 3 deletions.
20 changes: 19 additions & 1 deletion Source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
)
Expand Down Expand Up @@ -343,6 +360,7 @@ target_link_libraries(libdevilutionx PUBLIC
libsmackerdec
simpleini::simpleini
tl
libdevilutionx_file_util
libdevilutionx_parse_int
libdevilutionx_strings
libdevilutionx_utf8
Expand Down
2 changes: 1 addition & 1 deletion Source/utils/log.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
6 changes: 5 additions & 1 deletion test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ set(tests
drlg_l3_test
drlg_l4_test
effects_test
file_util_test
format_int_test
inv_test
lighting_test
Expand All @@ -42,6 +41,7 @@ set(tests
writehero_test
)
set(standalone_tests
file_util_test
parse_int_test
str_cat_test
utf8_test
Expand All @@ -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)
Expand Down
12 changes: 12 additions & 0 deletions test/app_fatal_for_testing.cpp
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 495e583

Please sign in to comment.