remove_definitions(-DQT_NO_CAST_FROM_ASCII)

add_executable(dump dump.cpp)

target_include_directories(dump  PUBLIC "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>/src")

target_link_libraries(dump
    Qt${QT_VERSION_MAJOR}::Core
    ukui-file-metadata
)

configure_file(package-config-test.cmake.in
        ${CMAKE_CURRENT_BINARY_DIR}/package-config-test.cmake
        @ONLY)
add_test(PackageConfigTest
        ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/package-config-test.cmake)

# Keep this consumer's header frozen to detect removal of SONAME 1 symbols
# and changes to the public object layout independently of the current header.
add_executable(legacy-zip-reader-consumer legacy-zip-api/main.cpp)
target_link_libraries(legacy-zip-reader-consumer PRIVATE ukui-file-metadata)
add_test(NAME LegacyZipReaderCompatibilityTest
        COMMAND legacy-zip-reader-consumer
                ${CMAKE_CURRENT_SOURCE_DIR}/../autotests/samplefiles/test_zipreader_utf8_names.zip
                ${CMAKE_CURRENT_SOURCE_DIR}/../autotests/samplefiles/test_zipreader_cp437_default_names.zip
                ${CMAKE_CURRENT_SOURCE_DIR}/../autotests/samplefiles/test_zipreader_gbk_names.zip)

find_program(NM_EXECUTABLE nm)
find_program(CXXFILT_EXECUTABLE c++filt)
if(NM_EXECUTABLE AND CXXFILT_EXECUTABLE)
    add_test(NAME ZipSymbolVisibilityTest
            COMMAND ${CMAKE_COMMAND}
                    -DNM_EXECUTABLE=${NM_EXECUTABLE}
                    -DCXXFILT_EXECUTABLE=${CXXFILT_EXECUTABLE}
                    -DLIBRARY_FILE=$<TARGET_FILE:ukui-file-metadata>
                    -P ${CMAKE_CURRENT_SOURCE_DIR}/zip-symbol-visibility-test.cmake)
endif()
