Warning, /multimedia/kid3/src/plugins/kid3qml/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 set(plugin_NAME Kid3Qml)
0002
0003 string(TOLOWER ${plugin_NAME} plugin_TARGET)
0004
0005 if(APPLE)
0006 # The extension must be dylib, not so.
0007 add_library(${plugin_TARGET} SHARED kid3qmlplugin.cpp)
0008 else()
0009 add_library(${plugin_TARGET} MODULE kid3qmlplugin.cpp)
0010 endif()
0011
0012 qt_wrap_cpp(plugin_GEN_MOC_SRCS
0013 kid3qmlplugin.h
0014 scriptutils.h
0015 configobjects.h
0016 checkablelistmodel.h
0017 TARGET ${plugin_TARGET}
0018 )
0019
0020 target_sources(${plugin_TARGET} PRIVATE
0021 qmlimageprovider.cpp
0022 scriptutils.cpp
0023 configobjects.cpp
0024 checkablelistmodel.cpp
0025 ${plugin_GEN_MOC_SRCS}
0026 Kid3Script.qml
0027 "${kid3_plugins_BINARY_DIR}/imports/Kid3/Kid3Script.qml"
0028 )
0029
0030 target_link_libraries(${plugin_TARGET} kid3-core kid3-gui Qt${QT_VERSION_MAJOR}::Quick Kid3Plugin)
0031
0032 if(NOT HAVE_QMLDIR_IN_QRC)
0033 if(APPLE)
0034 # Folders containing a dot will cause Apple's code signing to fail.
0035 # In order to still have QtQuick.2 available, the QML plugins are put into
0036 # the Resources folder. But binary code in Resources is prohibited,
0037 # therefore the libraries are in the Plugins folder with symlinks from
0038 # the QML imports folders.
0039 # https://www.qt.io/blog/2014/10/29/an-update-on-os-x-code-signing
0040 install(TARGETS ${plugin_TARGET}
0041 LIBRARY DESTINATION ${WITH_PLUGINSDIR}
0042 RUNTIME DESTINATION ${WITH_PLUGINSDIR})
0043 else()
0044 install(TARGETS ${plugin_TARGET}
0045 LIBRARY DESTINATION ${WITH_PLUGINSDIR}/imports/Kid3
0046 RUNTIME DESTINATION ${WITH_PLUGINSDIR}/imports/Kid3)
0047 set_target_properties(
0048 ${plugin_TARGET} PROPERTIES
0049 RUNTIME_OUTPUT_DIRECTORY ${kid3_plugins_BINARY_DIR}/imports/Kid3
0050 LIBRARY_OUTPUT_DIRECTORY ${kid3_plugins_BINARY_DIR}/imports/Kid3
0051 )
0052 endif()
0053 else()
0054 install(TARGETS ${plugin_TARGET}
0055 LIBRARY DESTINATION ${WITH_BINDIR}
0056 RUNTIME DESTINATION ${WITH_BINDIR})
0057 file(MAKE_DIRECTORY "${kid3_plugins_BINARY_DIR}/imports/Kid3")
0058 endif()
0059 if(ANDROID)
0060 # Fix "-soname: must take a non-empty argument" error with CMake >= 3.2.
0061 # https://stackoverflow.com/questions/26841603/arm-linux-androideabi-bin-ld-fatal-error-soname-must-take-a-non-empty-argume
0062 string(REPLACE "<CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME>" ""
0063 CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}")
0064 endif()
0065 if(LINUX_SELF_CONTAINED)
0066 # Just to keep CMake quiet, not needed at run time.
0067 set_target_properties(
0068 ${plugin_TARGET} PROPERTIES INSTALL_RPATH "\$ORIGIN/../../..")
0069 endif()
0070
0071 if(WIN32 AND NOT MSVC)
0072 set(_qmldirPluginName libkid3qml)
0073 else()
0074 set(_qmldirPluginName kid3qml)
0075 endif()
0076 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/qmldir.in
0077 "${kid3_plugins_BINARY_DIR}/imports/Kid3/qmldir"
0078 @ONLY)
0079 add_custom_command(OUTPUT "${kid3_plugins_BINARY_DIR}/imports/Kid3/Kid3Script.qml"
0080 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Kid3Script.qml "${kid3_plugins_BINARY_DIR}/imports/Kid3/"
0081 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Kid3Script.qml
0082 WORKING_DIRECTORY "${kid3_plugins_BINARY_DIR}/imports/Kid3"
0083 )
0084
0085 if(APPLE)
0086 install(FILES "${kid3_plugins_BINARY_DIR}/imports/Kid3/qmldir"
0087 "${kid3_plugins_BINARY_DIR}/imports/Kid3/Kid3Script.qml"
0088 DESTINATION ${WITH_QMLDIR}/imports/Kid3)
0089 else()
0090 install(FILES "${kid3_plugins_BINARY_DIR}/imports/Kid3/qmldir"
0091 "${kid3_plugins_BINARY_DIR}/imports/Kid3/Kid3Script.qml"
0092 DESTINATION ${WITH_PLUGINSDIR}/imports/Kid3)
0093 endif()
0094 if(NOT WIN32 AND NOT ANDROID AND NOT APPLE)
0095 if(TARGET Qt${QT_VERSION_MAJOR}::qmake)
0096 get_target_property(_qmakeLocation Qt${QT_VERSION_MAJOR}::qmake LOCATION)
0097 endif()
0098 execute_process(COMMAND "${_qmakeLocation}" -query QT_INSTALL_BINS
0099 OUTPUT_VARIABLE _qtInstallBins OUTPUT_STRIP_TRAILING_WHITESPACE)
0100 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/runqmlplugindump.cmake.in
0101 ${CMAKE_CURRENT_BINARY_DIR}/runqmlplugindump.cmake
0102 @ONLY)
0103 add_custom_command(OUTPUT "${kid3_plugins_BINARY_DIR}/imports/Kid3/plugins.qmltypes"
0104 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/runqmlplugindump.cmake
0105 DEPENDS ${plugin_TARGET}
0106 WORKING_DIRECTORY "${kid3_plugins_BINARY_DIR}/imports/Kid3")
0107 add_custom_target(plugins_qmltypes ALL
0108 DEPENDS "${kid3_plugins_BINARY_DIR}/imports/Kid3/plugins.qmltypes")
0109 add_dependencies(plugins_qmltypes ${plugin_TARGET})
0110
0111 install(FILES "${kid3_plugins_BINARY_DIR}/imports/Kid3/plugins.qmltypes"
0112 DESTINATION ${WITH_PLUGINSDIR}/imports/Kid3 OPTIONAL)
0113 endif()
0114
0115 if(WIN32 OR APPLE OR LINUX_SELF_CONTAINED)
0116 # Install essential QML modules.
0117 if(TARGET Qt${QT_VERSION_MAJOR}::qmake)
0118 get_target_property(QT_QML_DIR Qt${QT_VERSION_MAJOR}::qmake LOCATION)
0119 endif()
0120 get_filename_component(QT_QML_DIR ${QT_QML_DIR} PATH)
0121 get_filename_component(QT_QML_DIR ${QT_QML_DIR} PATH)
0122 set(QT_QML_DIR ${QT_QML_DIR}/qml)
0123 # With Qt from Homebrew, the QML imports cannot be found from the qmake location,
0124 # try with the qtquick2plugin location.
0125 if(NOT EXISTS ${QT_QML_DIR}/QtQuick/Layouts)
0126 if(TARGET Qt${QT_VERSION_MAJOR}::qtquick2plugin)
0127 get_target_property(QT_QML_DIR Qt${QT_VERSION_MAJOR}::qtquick2plugin LOCATION)
0128 get_filename_component(QT_QML_DIR ${QT_QML_DIR} PATH)
0129 get_filename_component(QT_QML_DIR ${QT_QML_DIR} PATH)
0130 endif()
0131 endif()
0132 if(APPLE)
0133 if(QT_VERSION VERSION_LESS 6.0)
0134 install(FILES "${QT_QML_DIR}/QtQuick.2/qmldir"
0135 DESTINATION "${WITH_QMLDIR}/imports/QtQuick.2")
0136 install(FILES "${QT_QML_DIR}/QtQuick/Layouts/qmldir"
0137 DESTINATION "${WITH_QMLDIR}/imports/QtQuick/Layouts")
0138 install(FILES "${QT_QML_DIR}/QtQuick.2/libqtquick2plugin.dylib"
0139 "${QT_QML_DIR}/QtQuick/Layouts/libqquicklayoutsplugin.dylib"
0140 DESTINATION "${WITH_PLUGINSDIR}")
0141 install(CODE
0142 "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
0143 \"../../../../PlugIns/libkid3qml.dylib\"
0144 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_QMLDIR}/imports/Kid3/libkid3qml.dylib\")
0145 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
0146 \"../../../../PlugIns/libqtquick2plugin.dylib\"
0147 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_QMLDIR}/imports/QtQuick.2/libqtquick2plugin.dylib\")
0148 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
0149 \"../../../../../PlugIns/libqquicklayoutsplugin.dylib\"
0150 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_QMLDIR}/imports/QtQuick/Layouts/libqquicklayoutsplugin.dylib\")
0151 ")
0152 else()
0153 install(FILES "${QT_QML_DIR}/QtQuick/qmldir"
0154 DESTINATION "${WITH_QMLDIR}/imports/QtQuick")
0155 install(FILES "${QT_QML_DIR}/QtQuick/Layouts/qmldir"
0156 DESTINATION "${WITH_QMLDIR}/imports/QtQuick/Layouts")
0157 install(FILES "${QT_QML_DIR}/QtQml/WorkerScript/qmldir"
0158 DESTINATION "${WITH_QMLDIR}/imports/QtQml/WorkerScript")
0159 install(FILES "${QT_QML_DIR}/QtQuick/libqtquick2plugin.dylib"
0160 "${QT_QML_DIR}/QtQuick/Layouts/libqquicklayoutsplugin.dylib"
0161 "${QT_QML_DIR}/QtQml/WorkerScript/libworkerscriptplugin.dylib"
0162 DESTINATION "${WITH_PLUGINSDIR}")
0163 install(CODE
0164 "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
0165 \"../../../../PlugIns/libkid3qml.dylib\"
0166 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_QMLDIR}/imports/Kid3/libkid3qml.dylib\")
0167 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
0168 \"../../../../PlugIns/libqtquick2plugin.dylib\"
0169 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_QMLDIR}/imports/QtQuick/libqtquick2plugin.dylib\")
0170 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
0171 \"../../../../../PlugIns/libqquicklayoutsplugin.dylib\"
0172 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_QMLDIR}/imports/QtQuick/Layouts/libqquicklayoutsplugin.dylib\")
0173 execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
0174 \"../../../../../PlugIns/libworkerscriptplugin.dylib\"
0175 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WITH_QMLDIR}/imports/QtQml/WorkerScript/libworkerscriptplugin.dylib\")
0176 ")
0177 endif()
0178 else()
0179 if(QT_VERSION VERSION_LESS 6.0)
0180 install(DIRECTORY "${QT_QML_DIR}/QtQuick.2"
0181 DESTINATION "${WITH_PLUGINSDIR}/imports"
0182 FILES_MATCHING PATTERN "*plugin${CMAKE_SHARED_LIBRARY_SUFFIX}"
0183 PATTERN "qmldir"
0184 PATTERN "*.dSYM" EXCLUDE)
0185 else()
0186 if(WIN32)
0187 install(FILES "${QT_QML_DIR}/QtQuick/qtquick2plugin${CMAKE_SHARED_LIBRARY_SUFFIX}"
0188 DESTINATION "${WITH_PLUGINSDIR}/imports/QtQuick")
0189 else()
0190 install(FILES "${QT_QML_DIR}/QtQuick/${CMAKE_SHARED_LIBRARY_PREFIX}qtquick2plugin${CMAKE_SHARED_LIBRARY_SUFFIX}"
0191 DESTINATION "${WITH_PLUGINSDIR}/imports/QtQuick")
0192 endif()
0193 install(FILES "${QT_QML_DIR}/QtQuick/qmldir"
0194 DESTINATION "${WITH_PLUGINSDIR}/imports/QtQuick")
0195 install(DIRECTORY "${QT_QML_DIR}/QtQml/WorkerScript"
0196 DESTINATION "${WITH_PLUGINSDIR}/imports/QtQml"
0197 FILES_MATCHING PATTERN "*plugin${CMAKE_SHARED_LIBRARY_SUFFIX}"
0198 PATTERN "qmldir"
0199 PATTERN "*.dSYM" EXCLUDE)
0200 endif()
0201 install(DIRECTORY "${QT_QML_DIR}/QtQuick/Layouts"
0202 DESTINATION "${WITH_PLUGINSDIR}/imports/QtQuick"
0203 FILES_MATCHING PATTERN "*plugin${CMAKE_SHARED_LIBRARY_SUFFIX}"
0204 PATTERN "qmldir"
0205 PATTERN "*.dSYM" EXCLUDE)
0206 endif()
0207 endif()