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()