summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@qt.io>2021-03-02 09:51:53 +0100
committerDominik Holland <dominik.holland@qt.io>2021-03-26 11:02:55 +0100
commitf456ad68a5a7c1a148b24b8e6a04ff414b02941f (patch)
tree34cfc17bcc8b0179a96e17aa220e476416a54b7b /cmake
parent666ad879094791bf8d2626b4cc66638a2af8e23a (diff)
downloadqtivi-f456ad68a5a7c1a148b24b8e6a04ff414b02941f.tar.gz
cmake: Integrate the taglib building
Similar to other Qt 3rdParty libs, taglib is used from the system if available and in the correct version, as fallback the submodule is used, which is build as a shared library. Task-number: AUTOSUITE-1633 Change-Id: I0a4b7e80b175b38b49745afee8fdbe105284034b Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/FindWrapSystemTagLib.cmake22
-rw-r--r--cmake/FindWrapTagLib.cmake12
2 files changed, 34 insertions, 0 deletions
diff --git a/cmake/FindWrapSystemTagLib.cmake b/cmake/FindWrapSystemTagLib.cmake
new file mode 100644
index 0000000..801a84f
--- /dev/null
+++ b/cmake/FindWrapSystemTagLib.cmake
@@ -0,0 +1,22 @@
+# We can't create the same interface imported target multiple times, CMake will complain if we do
+# that. This can happen if the find_package call is done in multiple different subdirectories.
+if(TARGET WrapSystemTagLib::WrapSystemTagLib)
+ set(WrapSystemTagLib_FOUND ON)
+ return()
+endif()
+
+find_package(PkgConfig)
+
+pkg_check_modules(TagLib taglib IMPORTED_TARGET)
+set(__taglib_target_name "PkgConfig::TagLib")
+
+if (NOT TARGET "${__taglib_target_name}")
+ set(WrapSystemTagLib_FOUND 0)
+ return()
+endif()
+
+add_library(WrapSystemTagLib::WrapSystemTagLib INTERFACE IMPORTED)
+target_link_libraries(WrapSystemTagLib::WrapSystemTagLib INTERFACE ${__taglib_target_name})
+target_include_directories(WrapSystemTagLib::WrapSystemTagLib INTERFACE ${TAGLIB_INCLUDEDIR})
+set(WrapSystemTagLib_FOUND TRUE)
+unset(__taglib_target_name)
diff --git a/cmake/FindWrapTagLib.cmake b/cmake/FindWrapTagLib.cmake
new file mode 100644
index 0000000..7365895
--- /dev/null
+++ b/cmake/FindWrapTagLib.cmake
@@ -0,0 +1,12 @@
+include(QtFindWrapHelper NO_POLICY_SCOPE)
+
+qt_find_package_system_or_bundled(wrap_taglib
+ FRIENDLY_PACKAGE_NAME "TagLib"
+ WRAP_PACKAGE_TARGET "WrapTagLib::WrapTagLib"
+ WRAP_PACKAGE_FOUND_VAR_NAME "WrapTagLib_FOUND"
+ BUNDLED_PACKAGE_NAME "BundledTagLib"
+ BUNDLED_PACKAGE_TARGET "BundledTagLib"
+ SYSTEM_PACKAGE_NAME "WrapSystemTagLib"
+ SYSTEM_PACKAGE_TARGET "WrapSystemTagLib::WrapSystemTagLib"
+)
+