Blame unitTests/CMakeLists.txt

Packit Service 21b5d1
find_package(GTest REQUIRED)
Packit Service 21b5d1
Packit Service 21b5d1
get_target_property(exiv2lib_SOURCES exiv2lib SOURCES)
Packit Service 21b5d1
get_target_property(exiv2lib_int_SOURCES exiv2lib_int SOURCES)
Packit Service 21b5d1
get_target_property(exiv2lib_COMPILE_DEFINITIONS exiv2lib COMPILE_DEFINITIONS)
Packit Service 21b5d1
get_target_property(exiv2lib_INCLUDE_DIRECTORIES exiv2lib INCLUDE_DIRECTORIES)
Packit Service 21b5d1
get_target_property(exiv2lib_LINK_LIBRARIES exiv2lib LINK_LIBRARIES)
Packit Service 21b5d1
Packit Service 21b5d1
set(unit_tests_exiv2lib_SOURCES)
Packit Service 21b5d1
foreach(source IN LISTS exiv2lib_SOURCES exiv2lib_int_SOURCES)
Packit Service 21b5d1
    if(source MATCHES "\.(c|cpp|h|hpp)$")
Packit Service 21b5d1
        if(source MATCHES ".*/.*")
Packit Service 21b5d1
            list(APPEND unit_tests_exiv2lib_SOURCES "${source}")
Packit Service 21b5d1
        else()
Packit Service 21b5d1
            list(APPEND unit_tests_exiv2lib_SOURCES "../src/${source}")
Packit Service 21b5d1
        endif()
Packit Service 21b5d1
    endif()
Packit Service 21b5d1
endforeach()
Packit Service 21b5d1
Packit Service 21b5d1
add_executable(unit_tests mainTestRunner.cpp
Packit Service 21b5d1
    gtestwrapper.h
Packit Service 21b5d1
    test_basicio.cpp
Packit Service 21b5d1
    test_types.cpp
Packit Service 21b5d1
    test_tiffheader.cpp
Packit Service 21b5d1
    test_futils.cpp
Packit Service 21b5d1
    test_enforce.cpp
Packit Service 21b5d1
    test_safe_op.cpp
Packit Service 21b5d1
    test_XmpKey.cpp
Packit Service 21b5d1
    test_DateValue.cpp
Packit Service 21b5d1
    test_TimeValue.cpp
Packit Service 21b5d1
    test_cr2header_int.cpp
Packit Service 21b5d1
    test_helper_functions.cpp
Packit Service 21b5d1
    test_slice.cpp
Packit Service 21b5d1
    test_image_int.cpp
Packit Service 21b5d1
    ${unit_tests_exiv2lib_SOURCES}
Packit Service 21b5d1
)
Packit Service 21b5d1
Packit Service 21b5d1
target_compile_definitions(unit_tests PRIVATE exiv2lib_STATIC)
Packit Service 21b5d1
Packit Service 21b5d1
if (exiv2lib_COMPILE_DEFINITIONS)
Packit Service 21b5d1
    target_compile_definitions(unit_tests PRIVATE ${exiv2lib_COMPILE_DEFINITIONS})
Packit Service 21b5d1
endif ()
Packit Service 21b5d1
Packit Service 21b5d1
target_include_directories(unit_tests
Packit Service 21b5d1
    PRIVATE
Packit Service 21b5d1
        ${exiv2lib_INCLUDE_DIRECTORIES}
Packit Service 21b5d1
)
Packit Service 21b5d1
Packit Service 21b5d1
#TODO Use GTest::GTest once we upgrade the minimum CMake version required
Packit Service 21b5d1
target_link_libraries(unit_tests
Packit Service 21b5d1
    PRIVATE
Packit Service 21b5d1
        ${exiv2lib_LINK_LIBRARIES}
Packit Service 21b5d1
        ${GTEST_BOTH_LIBRARIES}
Packit Service 21b5d1
)
Packit Service 21b5d1
Packit Service 21b5d1
# ZLIB is used in exiv2lib_int.
Packit Service 21b5d1
if( EXIV2_ENABLE_PNG )
Packit Service 21b5d1
    target_link_libraries(unit_tests PRIVATE ${ZLIB_LIBRARIES} )
Packit Service 21b5d1
endif()
Packit Service 21b5d1
Packit Service 21b5d1
target_include_directories(unit_tests
Packit Service 21b5d1
    PRIVATE
Packit Service 21b5d1
        ${GTEST_INCLUDE_DIRS}
Packit Service 21b5d1
        ${CMAKE_SOURCE_DIR}/src
Packit Service 21b5d1
)
Packit Service 21b5d1
Packit Service 21b5d1
target_compile_definitions(unit_tests
Packit Service 21b5d1
    PRIVATE
Packit Service 21b5d1
        GTEST_LINKED_AS_SHARED_LIBRARY=1
Packit Service 21b5d1
)
Packit Service 21b5d1
Packit Service 21b5d1
set_target_properties(unit_tests PROPERTIES
Packit Service 21b5d1
    COMPILE_FLAGS ${EXTRA_COMPILE_FLAGS}
Packit Service 21b5d1
)
Packit Service 21b5d1
Packit Service 21b5d1
if (USING_CONAN)
Packit Service 21b5d1
    target_compile_definitions(unit_tests PRIVATE ${CONAN_COMPILE_DEFINITIONS_GTEST})
Packit Service 21b5d1
endif()
Packit Service 21b5d1
Packit Service 21b5d1
if (MSVC)
Packit Service 21b5d1
    set_target_properties(unit_tests PROPERTIES LINK_FLAGS "/ignore:4099")
Packit Service 21b5d1
endif()