Files
libaaruformat/tool/CMakeLists.txt

59 lines
1.4 KiB
CMake
Raw Normal View History

# Tool executable project
project(aaruformattool C CXX)
# Find required dependencies
find_package(ICU COMPONENTS uc REQUIRED)
find_package(Argtable3 CONFIG REQUIRED)
# Tool executable
add_executable(aaruformattool
main.c
version.h
aaruformattool.h
identify.c
info.c
helpers.c
read.c
printhex.c
verify.c
ecc_cd.c
commands.h
commands.c
usage.h
usage.c
compare.c
cli_compare.c
convert.c
termbox2.h
)
# Set C as the linker language (even though we enable CXX for stdlib)
set_target_properties(aaruformattool PROPERTIES LINKER_LANGUAGE C)
# Set up include directories
target_include_directories(aaruformattool PRIVATE ${ICU_INCLUDE_DIRS})
# Link libraries
target_link_libraries(aaruformattool
PRIVATE
aaruformat
argtable3::argtable3
ICU::uc
)
2025-10-13 11:22:24 +01:00
# On Linux, enable GNU/POSIX feature test macros so functions like strerror_r
# and cfmakeraw are declared by system headers. We limit this to UNIX and not
# Apple (macOS provides these declarations differently).
if(UNIX AND NOT APPLE)
target_compile_definitions(aaruformattool PRIVATE
_GNU_SOURCE
_DEFAULT_SOURCE
_XOPEN_SOURCE=700)
endif()
# On macOS/iOS, explicitly link the C++ standard library for ICU dependencies
if(APPLE)
target_link_libraries(aaruformattool PRIVATE "-lc++")
endif()