Warning, /frameworks/kfilemetadata/autotests/CMakeLists.txt is written in an unsupported language. File is not indexed.

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