Warning, /frameworks/kfilemetadata/autotests/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test)
0002
0003 find_package(Python3 COMPONENTS Interpreter)
0004 set_package_properties(Python3 PROPERTIES DESCRIPTION "Python Interpreter"
0005 URL "https://www.python.org" TYPE OPTIONAL
0006 PURPOSE "Python interpreter is required for testing external extractors and writers")
0007
0008 remove_definitions(-DQT_NO_CAST_FROM_ASCII)
0009
0010 configure_file(indexerextractortestsconfig.h.in
0011 ${CMAKE_CURRENT_BINARY_DIR}/indexerextractortestsconfig.h @ONLY)
0012
0013
0014 set(KfileMetaDataAutotest_SRCS)
0015 ecm_qt_declare_logging_category(KfileMetaDataAutotest_SRCS
0016 HEADER kfilemetadata_debug.h
0017 IDENTIFIER KFILEMETADATA_LOG
0018 CATEGORY_NAME kf.filemetadata
0019 )
0020
0021
0022 #
0023 # Test case coverage
0024 #
0025 set(extractorcoverage_SRCS
0026 extractorcoveragetest.cpp
0027 )
0028
0029 ecm_add_test(${extractorcoverage_SRCS}
0030 TEST_NAME "extractorcoveragetest"
0031 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData
0032 )
0033
0034 #
0035 # Full text extraction test
0036 #
0037 set(indexerextractor_SRCS
0038 indexerextractortests.cpp
0039 ../src/extractors/plaintextextractor.cpp
0040 )
0041
0042 set(text_COMPAT_CODEC)
0043 if (TARGET Qt6::Core5Compat)
0044 set(text_COMPAT_CODEC Qt6::Core5Compat)
0045 endif()
0046 ecm_add_test(${indexerextractor_SRCS}
0047 TEST_NAME "indexextractortest"
0048 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData ${text_COMPAT_CODEC}
0049 )
0050
0051 #
0052 # Office
0053 #
0054 if(KF5Archive_FOUND)
0055 ecm_add_test(odfextractortest.cpp ../src/extractors/odfextractor.cpp
0056 TEST_NAME "odfextractortest"
0057 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Xml KF5::FileMetaData KF5::Archive
0058 )
0059 endif()
0060
0061 if(KF5Archive_FOUND)
0062 ecm_add_test(office2007extractortest.cpp ../src/extractors/office2007extractor.cpp
0063 TEST_NAME "officeextractortest"
0064 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Xml KF5::FileMetaData KF5::Archive
0065 )
0066 endif()
0067
0068 #
0069 # Poppler
0070 #
0071 if(Poppler_Qt${QT_MAJOR_VERSION}_FOUND)
0072 ecm_add_test(popplerextractortest.cpp ../src/extractors/popplerextractor.cpp
0073 TEST_NAME "popplerextractortest"
0074 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData Poppler::Qt${QT_MAJOR_VERSION}
0075 )
0076 endif()
0077
0078 #
0079 # EPub
0080 #
0081 if(EPUB_FOUND)
0082 include_directories(${EPUB_INCLUDE_DIR})
0083
0084 ecm_add_test(
0085 epubextractortest.cpp
0086 ../src/extractors/epubextractor.cpp
0087 ../src/kfilemetadata_debug.cpp
0088 TEST_NAME "epubextractortest"
0089 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData ${EPUB_LIBRARIES}
0090 )
0091 endif()
0092
0093 #
0094 # Mobi
0095 #
0096 if (QMobipocket_FOUND)
0097 ecm_add_test(mobiextractortest.cpp ../src/extractors/mobiextractor.cpp
0098 TEST_NAME "mobiextractortest"
0099 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData qmobipocket
0100 )
0101 endif()
0102
0103 #
0104 # FictionBook2
0105 #
0106 if(KF5Archive_FOUND)
0107 ecm_add_test(
0108 fb2extractortest.cpp
0109 ../src/extractors/fb2extractor.cpp
0110 ../src/kfilemetadata_debug.cpp
0111 TEST_NAME "fb2extractortest"
0112 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::Archive KF5::FileMetaData
0113 )
0114 endif()
0115
0116 #
0117 # Property Info
0118 #
0119 add_executable(propertyinfotest_bin propertyinfotest.cpp)
0120 target_link_libraries(propertyinfotest_bin
0121 Qt${QT_MAJOR_VERSION}::Test
0122 KF5::FileMetaData
0123 )
0124 ecm_mark_as_test(propertyinfotest_bin)
0125 ecm_mark_nongui_executable(propertyinfotest_bin)
0126 # Run the benchmark with just 1 iteration, so we known it works
0127 add_test(NAME propertyinfotest_en COMMAND propertyinfotest_bin "-iterations" "1")
0128 add_test(NAME propertyinfotest_localized COMMAND propertyinfotest_bin "--localized" "-iterations" "1")
0129
0130 #
0131 # Exiv2
0132 #
0133 if(LibExiv2_FOUND)
0134 kde_enable_exceptions()
0135 ecm_add_test(exiv2extractortest.cpp ../src/extractors/exiv2extractor.cpp
0136 TEST_NAME "exiv2extractortest"
0137 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData LibExiv2::LibExiv2
0138 )
0139 if (${LibExiv2_VERSION} VERSION_LESS 0.28.0)
0140 # exiv2 0.27.x still uses std::auto_ptr, which is incompatible with C++17
0141 set_target_properties(kfilemetadata_exiv2extractor PROPERTIES CXX_STANDARD 14)
0142 endif()
0143 target_include_directories(exiv2extractortest PRIVATE ${CMAKE_BINARY_DIR}/src/extractors)
0144 endif()
0145
0146 #
0147 # FFMPEG
0148 #
0149 if(FFMPEG_FOUND)
0150 kde_enable_exceptions()
0151 ecm_add_test(
0152 ffmpegextractortest.cpp
0153 ../src/extractors/ffmpegextractor.cpp
0154 ../src/kfilemetadata_debug.cpp
0155 TEST_NAME "ffmpegextractortest"
0156 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData ${AVCODEC_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVUTIL_LIBRARIES}
0157 )
0158 target_include_directories(ffmpegextractortest SYSTEM PRIVATE ${AVCODEC_INCLUDE_DIRS} ${AVFORMAT_INCLUDE_DIRS} ${AVUTIL_INCLUDE_DIRS})
0159 endif()
0160
0161 #
0162 # TagLib
0163 #
0164 if(Taglib_FOUND)
0165 kde_enable_exceptions()
0166 ecm_add_test(taglibextractortest.cpp ../src/extractors/taglibextractor.cpp ${KfileMetaDataAutotest_SRCS}
0167 TEST_NAME "taglibextractortest"
0168 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData Taglib::Taglib
0169 )
0170 endif()
0171
0172
0173 if(TARGET Python3::Interpreter AND NOT WIN32)
0174 # Test relies on working she-bang, which does non exist on Windows
0175 configure_file(samplefiles/testexternalextractor/main.py samplefiles/testexternalextractor/main.py)
0176 configure_file(samplefiles/testexternalextractor/manifest.json samplefiles/testexternalextractor/manifest.json COPYONLY)
0177
0178 ecm_add_test(externalextractortest.cpp $<$<BOOL:${BUILD_SHARED_LIBS}>:../src/externalextractor.cpp> ${KfileMetaDataAutotest_SRCS}
0179 TEST_NAME "externalextractortest"
0180 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData KF5::I18n
0181 )
0182 endif()
0183
0184 #
0185 # Collection
0186 #
0187 set(extractorcollection_SRCS
0188 extractorcollectiontest.cpp
0189 )
0190
0191 ecm_add_test(${extractorcollection_SRCS}
0192 TEST_NAME "extractorcollectiontest"
0193 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData
0194 )
0195
0196 if(Taglib_FOUND)
0197 set(writercollection_SRCS
0198 writercollectiontest.cpp
0199 )
0200
0201 ecm_add_test(${writercollection_SRCS}
0202 TEST_NAME "writercollectiontest"
0203 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData
0204 )
0205 endif()
0206
0207 #
0208 # XML
0209 #
0210 set(xmlextractor_SRCS
0211 xmlextractortest.cpp
0212 ../src/extractors/xmlextractor.cpp
0213 ../src/extractors/dublincoreextractor.cpp
0214 ../src/kfilemetadata_debug.cpp
0215 )
0216
0217 ecm_add_test(${xmlextractor_SRCS}
0218 TEST_NAME "xmlextractortest"
0219 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test Qt${QT_MAJOR_VERSION}::Xml KF5::FileMetaData
0220 )
0221
0222 #
0223 # Postscript DSC
0224 #
0225 set(postscriptdscextractor_SRCS
0226 postscriptdscextractortest.cpp
0227 ../src/extractors/postscriptdscextractor.cpp
0228 ../src/kfilemetadata_debug.cpp
0229 )
0230
0231 ecm_add_test(${postscriptdscextractor_SRCS}
0232 TEST_NAME "postscriptdscextractortest"
0233 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData
0234 )
0235
0236 #
0237 # AppImage
0238 #
0239 if(libappimage_FOUND AND KF5Config_FOUND AND Qt${QT_MAJOR_VERSION}Gui_FOUND)
0240 ecm_add_test(appimageextractortest.cpp ../src/extractors/appimageextractor.cpp
0241 TEST_NAME "appimageextractortest"
0242 LINK_LIBRARIES
0243 Qt${QT_MAJOR_VERSION}::Test
0244 KF5::FileMetaData
0245 KF5::ConfigCore
0246 Qt${QT_MAJOR_VERSION}::Xml
0247 Qt${QT_MAJOR_VERSION}::Gui
0248 libappimage
0249 )
0250 endif()
0251
0252 #
0253 # PNG
0254 #
0255 ecm_add_test(pngextractortest.cpp ../src/extractors/pngextractor.cpp
0256 TEST_NAME "pngextractortest"
0257 LINK_LIBRARIES
0258 Qt${QT_MAJOR_VERSION}::Test
0259 KF5::FileMetaData
0260 Qt${QT_MAJOR_VERSION}::Gui
0261 )
0262
0263
0264 ################
0265 # Writer tests #
0266 ################
0267
0268 #
0269 # UserMetaData
0270 #
0271 if(UNIX)
0272 kde_enable_exceptions()
0273 ecm_add_test(usermetadatawritertest.cpp ../src/usermetadata.cpp
0274 TEST_NAME "usermetadatawritertest"
0275 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData
0276 )
0277 endif()
0278
0279 #
0280 # TagLib
0281 #
0282 if(Taglib_FOUND)
0283 kde_enable_exceptions()
0284 ecm_add_test(taglibwritertest.cpp ../src/writers/taglibwriter.cpp ${KfileMetaDataAutotest_SRCS}
0285 TEST_NAME "taglibwritertest"
0286 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData Taglib::Taglib
0287 )
0288 endif()
0289
0290 if(TARGET Python3::Interpreter AND NOT WIN32)
0291 configure_file(samplefiles/testexternalwriter/main.py samplefiles/testexternalwriter/main.py)
0292 configure_file(samplefiles/testexternalwriter/manifest.json samplefiles/testexternalwriter/manifest.json COPYONLY)
0293
0294 ecm_add_test(externalwritertest.cpp $<$<BOOL:${BUILD_SHARED_LIBS}>:../src/externalwriter.cpp> ${KfileMetaDataAutotest_SRCS}
0295 TEST_NAME "externalwritertest"
0296 LINK_LIBRARIES Qt${QT_MAJOR_VERSION}::Test KF5::FileMetaData KF5::I18n
0297 )
0298 endif()