diff options
author | Niclas Rosenvik <nros@netbsd.org> | 2021-02-20 15:11:09 +0000 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-02-24 14:54:29 +0000 |
commit | 7243f59788d44b15e5ec88d8541fa64582fdc184 (patch) | |
tree | 4a57f17f2576ec022688038f1ef6528955241480 | |
parent | 6bba1e1bf29f0508ce782babef75d62a65bd302d (diff) | |
download | qtimageformats-7243f59788d44b15e5ec88d8541fa64582fdc184.tar.gz |
Fix mng image plugin in cmake build
Add cmake/FindLibmng.cmake based on qtbase/cmake/FindLibb2.cmake .
Enable mng if found and link to the imported target provided by
FindLibmng.cmake so that mng can be used.
Libmng 1 did not come with a pkgconfig file and it is still
in use so FindLibmng will use the normal cmake procedures if
pkgconfig fails to find libmng.
Change-Id: Iecf4ede700b1bfdab84c98c7333547f0bcecc6b3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 96992c3f771c47f4333a907463de4688830cafd8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | cmake/FindLibmng.cmake | 35 | ||||
-rw-r--r-- | src/imageformats/configure.cmake | 3 | ||||
-rw-r--r-- | src/plugins/imageformats/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/plugins/imageformats/mng/CMakeLists.txt | 2 |
4 files changed, 39 insertions, 3 deletions
diff --git a/cmake/FindLibmng.cmake b/cmake/FindLibmng.cmake new file mode 100644 index 0000000..8168530 --- /dev/null +++ b/cmake/FindLibmng.cmake @@ -0,0 +1,35 @@ +if(TARGET Libmng::Libmng) + set(Libmng_FOUND TRUE) + return() +endif() + +find_package(PkgConfig QUIET) + +if(PkgConfig_FOUND) + pkg_check_modules(Libmng IMPORTED_TARGET libmng) + + if(TARGET PkgConfig::Libmng) + add_library(Libmng::Libmng INTERFACE IMPORTED) + target_link_libraries(Libmng::Libmng INTERFACE PkgConfig::Libmng) + set(Libmng_FOUND TRUE) + endif() +endif() + +if(NOT TARGET Libmng::Libmng) + find_library(LIBMNG_LIBRARY NAMES mng) + find_path(LIBMNG_INCLUDE_DIR libmng.h) + + if(LIBMNG_LIBRARY AND LIBMNG_INCLUDE_DIR) + add_library(Libmng::Libmng UNKNOWN IMPORTED) + set_target_properties(Libmng::Libmng PROPERTIES + IMPORTED_LOCATION ${LIBMNG_LIBRARY} + INTERFACE_INCLUDE_DIRECTORIES ${LIBMNG_INCLUDE_DIR} + ) + endif() + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Libmng REQUIRED_VARS + LIBMNG_LIBRARY + LIBMNG_INCLUDE_DIR + ) +endif() diff --git a/src/imageformats/configure.cmake b/src/imageformats/configure.cmake index ab20ce8..b558769 100644 --- a/src/imageformats/configure.cmake +++ b/src/imageformats/configure.cmake @@ -17,6 +17,7 @@ set_property(CACHE INPUT_webp PROPERTY STRINGS undefined no qt system) qt_find_package(WrapJasper PROVIDED_TARGETS WrapJasper::WrapJasper MODULE_NAME imageformats QMAKE_LIB jasper) qt_find_package(TIFF PROVIDED_TARGETS TIFF::TIFF MODULE_NAME imageformats QMAKE_LIB tiff) qt_find_package(WrapWebP PROVIDED_TARGETS WrapWebP::WrapWebP MODULE_NAME imageformats QMAKE_LIB webp) +qt_find_package(Libmng PROVIDED_TARGETS Libmng::Libmng MODULE_NAME imageformats QMAKE_LIB mng) #### Tests @@ -33,7 +34,7 @@ qt_feature("jasper" PRIVATE qt_feature_definition("jasper" "QT_NO_IMAGEFORMAT_JASPER" NEGATE) qt_feature("mng" PRIVATE LABEL "MNG" - CONDITION libs.mng OR FIXME + CONDITION Libmng_FOUND DISABLE INPUT_mng STREQUAL 'no' ) qt_feature("tiff" PRIVATE diff --git a/src/plugins/imageformats/CMakeLists.txt b/src/plugins/imageformats/CMakeLists.txt index 6f7cb49..d360c17 100644 --- a/src/plugins/imageformats/CMakeLists.txt +++ b/src/plugins/imageformats/CMakeLists.txt @@ -24,7 +24,7 @@ endif() if(QT_FEATURE_regularexpression) add_subdirectory(icns) endif() -if(QT_FEATURE_mng AND OFF) # special case: FIXME +if(QT_FEATURE_mng) add_subdirectory(mng) endif() if(QT_FEATURE_jasper) diff --git a/src/plugins/imageformats/mng/CMakeLists.txt b/src/plugins/imageformats/mng/CMakeLists.txt index 9b64cb7..dfb044d 100644 --- a/src/plugins/imageformats/mng/CMakeLists.txt +++ b/src/plugins/imageformats/mng/CMakeLists.txt @@ -11,7 +11,7 @@ qt_internal_add_plugin(QMngPlugin main.cpp qmnghandler.cpp qmnghandler_p.h LIBRARIES - mng + Libmng::Libmng PUBLIC_LIBRARIES Qt::Core Qt::Gui |