Warning, /frameworks/kpackage/KF6PackageMacros.cmake is written in an unsupported language. File is not indexed.
0001 # To not mess up the ECM_FIND_VERSION we only include ECM if the required variables are not set
0002 if (NOT KDE_INSTALL_DATADIR OR NOT KDE_INSTALL_METAINFODIR)
0003 find_package(ECM 5.83.0 CONFIG REQUIRED)
0004 include(${ECM_KDE_MODULE_DIR}/KDEInstallDirs.cmake)
0005 endif()
0006 set(KPACKAGE_RELATIVE_DATA_INSTALL_DIR "kpackage")
0007
0008 # kpackage_install_package(path componentname [root] [install_dir])
0009 #
0010 # Installs a package to the system path
0011 # @arg path The source path to install from, location of metadata.json
0012 # @arg componentname The plugin id of the component, corresponding to the
0013 # Id key of the KPlugin object in metadata.json
0014 # @arg root The subdirectory to install to, default: packages
0015 # @arg install_dir the path where to install packages,
0016 # such as myapp, that would go under prefix/share/myapp:
0017 # default ${KPACKAGE_RELATIVE_DATA_INSTALL_DIR}
0018 #
0019 # Examples:
0020 # kpackage_install_package(mywidget org.kde.plasma.mywidget plasmoids) # installs an applet
0021 # kpackage_install_package(declarativetoolbox org.kde.toolbox packages) # installs a generic package
0022 # kpackage_install_package(declarativetoolbox org.kde.toolbox) # installs a generic package
0023 #
0024
0025 set(kpackagedir ${CMAKE_CURRENT_LIST_DIR})
0026 function(kpackage_install_package dir component)
0027 set(root ${ARGV2})
0028 set(install_dir ${ARGV3})
0029 if(NOT root)
0030 set(root packages)
0031 endif()
0032 if(NOT install_dir)
0033 set(install_dir ${KPACKAGE_RELATIVE_DATA_INSTALL_DIR})
0034 endif()
0035
0036 install(DIRECTORY ${dir}/ DESTINATION ${KDE_INSTALL_DATADIR}/${install_dir}/${root}/${component}
0037 PATTERN .svn EXCLUDE
0038 PATTERN *.qmlc EXCLUDE
0039 PATTERN CMakeLists.txt EXCLUDE
0040 PATTERN Messages.sh EXCLUDE
0041 PATTERN dummydata EXCLUDE)
0042
0043 get_target_property(kpackagetool_cmd KF6::kpackagetool6 LOCATION)
0044 if (${component} MATCHES "^.+\\..+\\.") #we make sure there's at least 2 dots
0045 set(APPDATAFILE "${CMAKE_CURRENT_BINARY_DIR}/${component}.appdata.xml")
0046
0047 execute_process(
0048 COMMAND ${kpackagetool_cmd} --appstream-metainfo ${CMAKE_CURRENT_SOURCE_DIR}/${dir} --appstream-metainfo-output ${APPDATAFILE}
0049 ERROR_VARIABLE appstreamerror
0050 RESULT_VARIABLE result)
0051 if (NOT result EQUAL 0)
0052 message(WARNING "couldn't generate metainfo for ${component}: ${appstreamerror}")
0053 else()
0054 if(appstreamerror)
0055 message(WARNING "warnings during generation of metainfo for ${component}: ${appstreamerror}")
0056 endif()
0057
0058 # OPTIONAL because json files can be NoDisplay so they render no XML
0059 install(FILES ${APPDATAFILE} DESTINATION ${KDE_INSTALL_METAINFODIR} OPTIONAL)
0060 endif()
0061 else()
0062 message(DEBUG "KPackage components should be specified in reverse domain notation. Appstream information won't be generated for ${component}.")
0063 endif()
0064 endfunction()