build: modify compare tool handling for Windows compatibility

This commit is contained in:
2026-04-04 15:13:13 +01:00
parent d9c4a09972
commit d39ffc2376
3 changed files with 17 additions and 5 deletions

View File

@@ -4,9 +4,15 @@ project(aaruformattool C CXX)
# Find required dependencies
find_package(ICU COMPONENTS uc REQUIRED)
find_package(Argtable3 CONFIG REQUIRED)
find_package(Curses REQUIRED)
find_package(ZLIB REQUIRED)
# termbox2-based compare is POSIX-only; on Windows use cli-compare instead
if(NOT WIN32)
set(AARUFORMATTOOL_COMPARE_SOURCES compare.c termbox2.h)
else()
set(AARUFORMATTOOL_COMPARE_SOURCES "")
endif()
# Tool executable
add_executable(aaruformattool
main.c
@@ -23,7 +29,7 @@ add_executable(aaruformattool
commands.c
usage.h
usage.c
compare.c
${AARUFORMATTOOL_COMPARE_SOURCES}
cli_compare.c
convert.c
upgrade_ddt_to_alpha21.c
@@ -46,14 +52,15 @@ add_executable(aaruformattool
${CMAKE_CURRENT_SOURCE_DIR}/../src/ngcw/lfg.c
${CMAKE_CURRENT_SOURCE_DIR}/../src/ngcw/ngcw_junk.c
${CMAKE_CURRENT_SOURCE_DIR}/../src/ngcw/wii_crypto.c
termbox2.h
)
# Set C as the linker language (even though we enable CXX for stdlib)
set_target_properties(aaruformattool PROPERTIES LINKER_LANGUAGE C)
aaru_enable_large_file_support(aaruformattool)
# Set up include directories
target_include_directories(aaruformattool PRIVATE ${ICU_INCLUDE_DIRS} ${CURSES_INCLUDE_DIRS})
target_include_directories(aaruformattool PRIVATE ${ICU_INCLUDE_DIRS})
# Link libraries
target_link_libraries(aaruformattool
@@ -62,7 +69,6 @@ target_link_libraries(aaruformattool
argtable3::argtable3
ICU::uc
ZLIB::ZLIB
${CURSES_LIBRARIES}
)
# On Linux, enable GNU/POSIX feature test macros so functions like strerror_r

View File

@@ -63,6 +63,7 @@ int cmd_info(int argc, char *argv[])
return result;
}
#if !defined(_WIN32) && !defined(_WIN64)
int cmd_compare(int argc, char *argv[])
{
struct arg_str *filename1 = arg_str1(NULL, NULL, "<filename1>", "First image to compare");
@@ -82,6 +83,7 @@ int cmd_compare(int argc, char *argv[])
arg_freetable(argtable, sizeof(argtable) / sizeof(argtable[0]));
return result;
}
#endif /* !_WIN32 && !_WIN64 */
int cmd_cli_compare(int argc, char *argv[])
{
@@ -293,7 +295,9 @@ Command commands[] = {
{ "read_long", cmd_read_long},
{ "verify", cmd_verify},
{ "verify_sectors", cmd_verify_sectors},
#if !defined(_WIN32) && !defined(_WIN64)
{ "compare", cmd_compare},
#endif
{ "cli-compare", cmd_cli_compare},
{ "convert", cmd_convert},
{"upgrade-ddt-to-alpha21", cmd_upgrade_ddt_to_alpha21},

View File

@@ -38,7 +38,9 @@ int cmd_read(int argc, char *argv[]);
int cmd_read_long(int argc, char *argv[]);
int cmd_verify(int argc, char *argv[]);
int cmd_verify_sectors(int argc, char *argv[]);
#if !defined(_WIN32) && !defined(_WIN64)
int cmd_compare(int argc, char *argv[]);
#endif
int cmd_cli_compare(int argc, char *argv[]);
int cmd_convert(int argc, char *argv[]);
int cmd_upgrade_ddt_to_alpha21(int argc, char *argv[]);