diff options
Diffstat (limited to 'cmake/scripts/common/AddonHelpers.cmake')
| -rw-r--r-- | cmake/scripts/common/AddonHelpers.cmake | 53 |
1 files changed, 43 insertions, 10 deletions
diff --git a/cmake/scripts/common/AddonHelpers.cmake b/cmake/scripts/common/AddonHelpers.cmake index 2f3f302..c541ad7 100644 --- a/cmake/scripts/common/AddonHelpers.cmake +++ b/cmake/scripts/common/AddonHelpers.cmake | |||
| @@ -92,6 +92,7 @@ macro (build_addon target prefix libs) | |||
| 92 | endforeach() | 92 | endforeach() |
| 93 | endif() | 93 | endif() |
| 94 | 94 | ||
| 95 | message(STATUS "Addon dependency check ...") | ||
| 95 | # Set defines used in addon.xml.in and read from versions.h to set add-on | 96 | # Set defines used in addon.xml.in and read from versions.h to set add-on |
| 96 | # version parts automatically | 97 | # version parts automatically |
| 97 | file(STRINGS ${KODI_INCLUDE_DIR}/versions.h BIN_ADDON_PARTS) | 98 | file(STRINGS ${KODI_INCLUDE_DIR}/versions.h BIN_ADDON_PARTS) |
| @@ -108,7 +109,8 @@ macro (build_addon target prefix libs) | |||
| 108 | if("${include_name}" MATCHES "_DEPENDS") | 109 | if("${include_name}" MATCHES "_DEPENDS") |
| 109 | # Use start definition name as base for other value type | 110 | # Use start definition name as base for other value type |
| 110 | list(GET loop_var 0 list_name) | 111 | list(GET loop_var 0 list_name) |
| 111 | string(REPLACE "_DEPENDS" "" depends_name ${list_name}) | 112 | string(REPLACE "_DEPENDS" "_MIN" depends_minver ${list_name}) |
| 113 | string(REPLACE "_DEPENDS" "" depends_ver ${list_name}) | ||
| 112 | string(REPLACE "_DEPENDS" "_XML_ID" xml_entry_name ${list_name}) | 114 | string(REPLACE "_DEPENDS" "_XML_ID" xml_entry_name ${list_name}) |
| 113 | string(REPLACE "_DEPENDS" "_USED" used_type_name ${list_name}) | 115 | string(REPLACE "_DEPENDS" "_USED" used_type_name ${list_name}) |
| 114 | 116 | ||
| @@ -120,16 +122,14 @@ macro (build_addon target prefix libs) | |||
| 120 | foreach(src_file ${USED_SOURCES}) | 122 | foreach(src_file ${USED_SOURCES}) |
| 121 | file(STRINGS ${src_file} BIN_ADDON_SRC_PARTS) | 123 | file(STRINGS ${src_file} BIN_ADDON_SRC_PARTS) |
| 122 | foreach(loop_var ${BIN_ADDON_SRC_PARTS}) | 124 | foreach(loop_var ${BIN_ADDON_SRC_PARTS}) |
| 123 | string(FIND "${loop_var}" "#include" matchres) | 125 | string(REGEX MATCH "^[ \t]*#[ \t]*(include|import)[ \t]*[<\"](kodi\/)?(.+)[\">]" include_name "${loop_var}") |
| 124 | if("${matchres}" EQUAL 0) | 126 | if(include_name AND CMAKE_MATCH_3 MATCHES ^${depend_header}) |
| 125 | string(REPLACE " " ";" loop_var "${loop_var}") | 127 | get_directory_property(CURRENT_DEFS COMPILE_DEFINITIONS) |
| 126 | list(GET loop_var 1 include_name) | 128 | if(NOT used_type_name IN_LIST CURRENT_DEFS) |
| 127 | string(REGEX REPLACE "[<>\"]|kodi/" "" include_name "${include_name}") | 129 | set(ADDON_DEPENDS "${ADDON_DEPENDS}\n<import addon=\"${${xml_entry_name}}\" minversion=\"${${depends_minver}}\" version=\"${${depends_ver}}\"/>") |
| 128 | if(include_name MATCHES ${depend_header}) | 130 | # Inform with them the addon header about used type, if not present before |
| 129 | set(ADDON_DEPENDS "${ADDON_DEPENDS}\n<import addon=\"${${xml_entry_name}}\" version=\"${${depends_name}}\"/>") | ||
| 130 | # Inform with them the addon header about used type | ||
| 131 | add_definitions(-D${used_type_name}) | 131 | add_definitions(-D${used_type_name}) |
| 132 | message(STATUS "Added usage definition: ${used_type_name}") | 132 | message(STATUS " - Added API usage definition: ${used_type_name} (Version: \"${${depends_ver}}\", Min. Version: \"${${depends_minver}}\")") |
| 133 | set(FOUND_HEADER_USAGE 1) | 133 | set(FOUND_HEADER_USAGE 1) |
| 134 | endif() | 134 | endif() |
| 135 | endif() | 135 | endif() |
| @@ -276,6 +276,18 @@ macro (build_addon target prefix libs) | |||
| 276 | install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target} | 276 | install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target} |
| 277 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | 277 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) |
| 278 | endif() | 278 | endif() |
| 279 | if(${prefix}_ADDITIONAL_BINARY_EXE) | ||
| 280 | install(PROGRAMS ${${prefix}_ADDITIONAL_BINARY_EXE} DESTINATION ${target} | ||
| 281 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 282 | endif() | ||
| 283 | if(${prefix}_ADDITIONAL_BINARY_PARTS) | ||
| 284 | install(FILES ${${prefix}_ADDITIONAL_BINARY_PARTS} DESTINATION ${target} | ||
| 285 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 286 | endif() | ||
| 287 | if(${prefix}_ADDITIONAL_BINARY_DIRS) | ||
| 288 | install(DIRECTORY ${${prefix}_ADDITIONAL_BINARY_DIRS} DESTINATION ${target} USE_SOURCE_PERMISSIONS | ||
| 289 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 290 | endif() | ||
| 279 | else() # NOT WIN32 | 291 | else() # NOT WIN32 |
| 280 | if(NOT CPACK_PACKAGE_DIRECTORY) | 292 | if(NOT CPACK_PACKAGE_DIRECTORY) |
| 281 | set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}) | 293 | set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}) |
| @@ -296,6 +308,18 @@ macro (build_addon target prefix libs) | |||
| 296 | install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target} | 308 | install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target} |
| 297 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | 309 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) |
| 298 | endif() | 310 | endif() |
| 311 | if(${prefix}_ADDITIONAL_BINARY_EXE) | ||
| 312 | install(PROGRAMS ${${prefix}_ADDITIONAL_BINARY_EXE} DESTINATION ${target} | ||
| 313 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 314 | endif() | ||
| 315 | if(${prefix}_ADDITIONAL_BINARY_PARTS) | ||
| 316 | install(FILES ${${prefix}_ADDITIONAL_BINARY_PARTS} DESTINATION ${target} | ||
| 317 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 318 | endif() | ||
| 319 | if(${prefix}_ADDITIONAL_BINARY_DIRS) | ||
| 320 | install(DIRECTORY ${${prefix}_ADDITIONAL_BINARY_DIRS} DESTINATION ${target} USE_SOURCE_PERMISSIONS | ||
| 321 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 322 | endif() | ||
| 299 | endif() | 323 | endif() |
| 300 | add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext}) | 324 | add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext}) |
| 301 | else() | 325 | else() |
| @@ -339,6 +363,15 @@ macro (build_addon target prefix libs) | |||
| 339 | if(${prefix}_ADDITIONAL_BINARY) | 363 | if(${prefix}_ADDITIONAL_BINARY) |
| 340 | install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target}) | 364 | install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target}) |
| 341 | endif() | 365 | endif() |
| 366 | if(${prefix}_ADDITIONAL_BINARY_EXE) | ||
| 367 | install(PROGRAMS ${${prefix}_ADDITIONAL_BINARY_EXE} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target}) | ||
| 368 | endif() | ||
| 369 | if(${prefix}_ADDITIONAL_BINARY_PARTS) | ||
| 370 | install(FILES ${${prefix}_ADDITIONAL_BINARY_PARTS} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target}) | ||
| 371 | endif() | ||
| 372 | if(${prefix}_ADDITIONAL_BINARY_DIRS) | ||
| 373 | install(DIRECTORY ${${prefix}_ADDITIONAL_BINARY_DIRS} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target} USE_SOURCE_PERMISSIONS) | ||
| 374 | endif() | ||
| 342 | endif() | 375 | endif() |
| 343 | if(${APP_NAME_UC}_BUILD_DIR) | 376 | if(${APP_NAME_UC}_BUILD_DIR) |
| 344 | file(GLOB_RECURSE files ${CMAKE_CURRENT_SOURCE_DIR}/${target}/*) | 377 | file(GLOB_RECURSE files ${CMAKE_CURRENT_SOURCE_DIR}/${target}/*) |
