mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-06-03 17:08:08 -04:00
Only perform tests for plugins that are built
This both excludes the autotests and tests subdirs if the user sets BUILD_TESTING off, and makes sure we do not run tests for formats that were not built due to dependencies not being found. REVIEW: 115504
This commit is contained in:
parent
4fbbc75429
commit
6272954cc5
@ -16,8 +16,44 @@ include(CheckIncludeFiles)
|
|||||||
set(REQUIRED_QT_VERSION 5.2.0)
|
set(REQUIRED_QT_VERSION 5.2.0)
|
||||||
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
|
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
|
||||||
|
|
||||||
|
# EPS support depends on the gs utility; non-UNIX systems are unlikely to have
|
||||||
|
# this available in PATH
|
||||||
|
set(BUILD_EPS_PLUGIN FALSE)
|
||||||
|
if (UNIX)
|
||||||
|
find_package(Qt5PrintSupport 5.2.0 NO_MODULE)
|
||||||
|
set_package_properties(Qt5PrintSupport PROPERTIES
|
||||||
|
PURPOSE "Required for the QImage plugin for EPS images"
|
||||||
|
TYPE OPTIONAL
|
||||||
|
)
|
||||||
|
if (Qt5PrintSupport_FOUND)
|
||||||
|
set(BUILD_EPS_PLUGIN TRUE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(Jasper)
|
||||||
|
set_package_properties(Jasper PROPERTIES
|
||||||
|
DESCRIPTION "A library for handling JPEG-2000 images"
|
||||||
|
PURPOSE "Required for the QImage plugin for JPEG-2000 images"
|
||||||
|
URL "http://www.ece.uvic.ca/~mdadams/jasper"
|
||||||
|
TYPE OPTIONAL
|
||||||
|
)
|
||||||
|
|
||||||
|
find_package(OpenEXR)
|
||||||
|
set_package_properties(OpenEXR PROPERTIES
|
||||||
|
TYPE OPTIONAL
|
||||||
|
PURPOSE "Required for the QImage plugin for OpenEXR images"
|
||||||
|
)
|
||||||
|
|
||||||
|
find_package(WebP COMPONENTS WebP)
|
||||||
|
set_package_properties(WebP PROPERTIES
|
||||||
|
TYPE OPTIONAL
|
||||||
|
PURPOSE "Required for the QImage plugin for WebP images"
|
||||||
|
)
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(autotests)
|
if (BUILD_TESTING)
|
||||||
add_subdirectory(tests)
|
add_subdirectory(autotests)
|
||||||
|
add_subdirectory(tests)
|
||||||
|
endif()
|
||||||
|
|
||||||
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
||||||
|
@ -6,11 +6,13 @@ add_definitions(-DPLUGIN_DIR="${CMAKE_CURRENT_BINARY_DIR}/../src")
|
|||||||
remove_definitions(-DQT_NO_CAST_FROM_ASCII)
|
remove_definitions(-DQT_NO_CAST_FROM_ASCII)
|
||||||
|
|
||||||
macro(kimageformats_read_tests)
|
macro(kimageformats_read_tests)
|
||||||
|
if (NOT TARGET readtest)
|
||||||
add_executable(readtest readtest.cpp)
|
add_executable(readtest readtest.cpp)
|
||||||
target_link_libraries(readtest Qt5::Gui)
|
target_link_libraries(readtest Qt5::Gui)
|
||||||
target_compile_definitions(readtest
|
target_compile_definitions(readtest
|
||||||
PRIVATE IMAGEDIR="${CMAKE_CURRENT_SOURCE_DIR}/read")
|
PRIVATE IMAGEDIR="${CMAKE_CURRENT_SOURCE_DIR}/read")
|
||||||
ecm_mark_as_test(readtest)
|
ecm_mark_as_test(readtest)
|
||||||
|
endif()
|
||||||
foreach(_testname ${ARGN})
|
foreach(_testname ${ARGN})
|
||||||
add_test(
|
add_test(
|
||||||
NAME kimageformats-read-${_testname}
|
NAME kimageformats-read-${_testname}
|
||||||
@ -20,11 +22,13 @@ macro(kimageformats_read_tests)
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(kimageformats_write_tests)
|
macro(kimageformats_write_tests)
|
||||||
|
if (NOT TARGET writetest)
|
||||||
add_executable(writetest writetest.cpp)
|
add_executable(writetest writetest.cpp)
|
||||||
target_link_libraries(writetest Qt5::Gui)
|
target_link_libraries(writetest Qt5::Gui)
|
||||||
target_compile_definitions(writetest
|
target_compile_definitions(writetest
|
||||||
PRIVATE IMAGEDIR="${CMAKE_CURRENT_SOURCE_DIR}/write")
|
PRIVATE IMAGEDIR="${CMAKE_CURRENT_SOURCE_DIR}/write")
|
||||||
ecm_mark_as_test(writetest)
|
ecm_mark_as_test(writetest)
|
||||||
|
endif()
|
||||||
foreach(_testname ${ARGN})
|
foreach(_testname ${ARGN})
|
||||||
string(REGEX MATCH "-lossless$" _is_lossless "${_testname}")
|
string(REGEX MATCH "-lossless$" _is_lossless "${_testname}")
|
||||||
unset(lossless_arg)
|
unset(lossless_arg)
|
||||||
@ -43,9 +47,6 @@ endmacro()
|
|||||||
# Loads each <format> image in read/<format>/, and compares the
|
# Loads each <format> image in read/<format>/, and compares the
|
||||||
# result against the data read from the corresponding png file
|
# result against the data read from the corresponding png file
|
||||||
kimageformats_read_tests(
|
kimageformats_read_tests(
|
||||||
#eps # EPS read tests depend on the vagaries of GhostScript
|
|
||||||
# which we cannot even guarantee to find
|
|
||||||
jp2
|
|
||||||
pcx
|
pcx
|
||||||
pic
|
pic
|
||||||
psd
|
psd
|
||||||
@ -53,7 +54,6 @@ kimageformats_read_tests(
|
|||||||
rgb
|
rgb
|
||||||
tga
|
tga
|
||||||
xcf
|
xcf
|
||||||
webp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Basic write tests
|
# Basic write tests
|
||||||
@ -63,11 +63,25 @@ kimageformats_read_tests(
|
|||||||
# You can append -lossless to the format to indicate that
|
# You can append -lossless to the format to indicate that
|
||||||
# reading back the image data will result in an identical image.
|
# reading back the image data will result in an identical image.
|
||||||
kimageformats_write_tests(
|
kimageformats_write_tests(
|
||||||
#eps # EPS writing depends on a choice of tools, and so needs
|
|
||||||
# a cleverer test
|
|
||||||
jp2
|
|
||||||
pcx-lossless
|
pcx-lossless
|
||||||
pic-lossless
|
pic-lossless
|
||||||
rgb-lossless
|
rgb-lossless
|
||||||
tga # fixme: the alpha images appear not to be written properly
|
tga # fixme: the alpha images appear not to be written properly
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# EPS read tests depend on the vagaries of GhostScript
|
||||||
|
# which we cannot even guarantee to find, so disable them for now
|
||||||
|
#if (BUILD_EPS_PLUGIN)
|
||||||
|
# kimageformats_read_tests(eps)
|
||||||
|
# kimageformats_write_tests(eps)
|
||||||
|
#endif()
|
||||||
|
if (JASPER_FOUND)
|
||||||
|
kimageformats_read_tests(jp2)
|
||||||
|
kimageformats_write_tests(jp2)
|
||||||
|
endif()
|
||||||
|
if (OpenEXR_FOUND)
|
||||||
|
# FIXME: OpenEXR tests
|
||||||
|
endif()
|
||||||
|
if (WebP_FOUND)
|
||||||
|
kimageformats_read_tests(webp)
|
||||||
|
endif()
|
||||||
|
@ -10,15 +10,7 @@ install(FILES dds.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/)
|
|||||||
|
|
||||||
##################################
|
##################################
|
||||||
|
|
||||||
# EPS support depends on the gs utility; non-UNIX systems are unlikely to have
|
if (BUILD_EPS_PLUGIN)
|
||||||
# this available in PATH
|
|
||||||
if (UNIX)
|
|
||||||
find_package(Qt5PrintSupport 5.2.0 NO_MODULE)
|
|
||||||
set_package_properties(Qt5PrintSupport PROPERTIES
|
|
||||||
PURPOSE "Required for the QImage plugin for EPS images"
|
|
||||||
TYPE OPTIONAL
|
|
||||||
)
|
|
||||||
|
|
||||||
if (Qt5PrintSupport_FOUND)
|
if (Qt5PrintSupport_FOUND)
|
||||||
add_library(kimg_eps MODULE eps.cpp)
|
add_library(kimg_eps MODULE eps.cpp)
|
||||||
target_link_libraries(kimg_eps Qt5::Gui Qt5::PrintSupport)
|
target_link_libraries(kimg_eps Qt5::Gui Qt5::PrintSupport)
|
||||||
@ -30,14 +22,6 @@ endif()
|
|||||||
|
|
||||||
##################################
|
##################################
|
||||||
|
|
||||||
find_package(Jasper)
|
|
||||||
set_package_properties(Jasper PROPERTIES
|
|
||||||
DESCRIPTION "A library for handling JPEG-2000 images"
|
|
||||||
PURPOSE "Required for the QImage plugin for JPEG-2000 images"
|
|
||||||
URL "http://www.ece.uvic.ca/~mdadams/jasper"
|
|
||||||
TYPE OPTIONAL
|
|
||||||
)
|
|
||||||
|
|
||||||
check_include_files(sys/types.h HAVE_SYS_TYPES_H)
|
check_include_files(sys/types.h HAVE_SYS_TYPES_H)
|
||||||
check_include_files(stdint.h HAVE_STDINT_H)
|
check_include_files(stdint.h HAVE_STDINT_H)
|
||||||
configure_file(config-jp2.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-jp2.h)
|
configure_file(config-jp2.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-jp2.h)
|
||||||
@ -54,12 +38,6 @@ endif()
|
|||||||
|
|
||||||
##################################
|
##################################
|
||||||
|
|
||||||
find_package(OpenEXR)
|
|
||||||
set_package_properties(OpenEXR PROPERTIES
|
|
||||||
TYPE OPTIONAL
|
|
||||||
PURPOSE "Required for the QImage plugin for OpenEXR images"
|
|
||||||
)
|
|
||||||
|
|
||||||
if(OpenEXR_FOUND)
|
if(OpenEXR_FOUND)
|
||||||
add_library(kimg_exr MODULE exr.cpp)
|
add_library(kimg_exr MODULE exr.cpp)
|
||||||
target_link_libraries(kimg_exr Qt5::Gui OpenEXR::IlmImf)
|
target_link_libraries(kimg_exr Qt5::Gui OpenEXR::IlmImf)
|
||||||
@ -119,13 +97,7 @@ install(FILES tga.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/)
|
|||||||
|
|
||||||
##################################
|
##################################
|
||||||
|
|
||||||
find_package(WebP COMPONENTS WebP)
|
if (WebP_FOUND)
|
||||||
set_package_properties(WebP PROPERTIES
|
|
||||||
TYPE OPTIONAL
|
|
||||||
PURPOSE "Required for the QImage plugin for WebP images"
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WebP_FOUND)
|
|
||||||
add_library(kimg_webp MODULE webp.cpp)
|
add_library(kimg_webp MODULE webp.cpp)
|
||||||
target_link_libraries(kimg_webp Qt5::Gui WebP::WebP)
|
target_link_libraries(kimg_webp Qt5::Gui WebP::WebP)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user