diff options
Diffstat (limited to 'project/cmake/addons')
28 files changed, 0 insertions, 994 deletions
diff --git a/project/cmake/addons/CMakeLists.txt b/project/cmake/addons/CMakeLists.txt deleted file mode 100644 index 96e544b..0000000 --- a/project/cmake/addons/CMakeLists.txt +++ /dev/null | |||
| @@ -1,434 +0,0 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | ||
| 2 | project(kodi-addons) | ||
| 3 | |||
| 4 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) | ||
| 5 | |||
| 6 | option(ADDON_TARBALL_CACHING "Cache downloaded addon source tarballs?" ON) | ||
| 7 | if(ADDON_TARBALL_CACHING) | ||
| 8 | message(STATUS "Addon source tarball caching is enabled") | ||
| 9 | else() | ||
| 10 | message(STATUS "Addon source tarball caching is disabled") | ||
| 11 | endif() | ||
| 12 | |||
| 13 | if(NOT CMAKE_BUILD_TYPE) | ||
| 14 | set(CMAKE_BUILD_TYPE Release) | ||
| 15 | endif() | ||
| 16 | |||
| 17 | if(NOT CORE_SYSTEM_NAME) | ||
| 18 | if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") | ||
| 19 | set(CORE_SYSTEM_NAME "osx") | ||
| 20 | else() | ||
| 21 | string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME) | ||
| 22 | endif() | ||
| 23 | endif() | ||
| 24 | |||
| 25 | include(ExternalProject) | ||
| 26 | |||
| 27 | ### setup all the necessary paths | ||
| 28 | if(APP_ROOT) | ||
| 29 | set(CORE_SOURCE_DIR ${APP_ROOT}) | ||
| 30 | unset(APP_ROOT) | ||
| 31 | message(WARNING "APP_ROOT is deprecated. Please use CORE_SOURCE_DIR instead.") | ||
| 32 | endif() | ||
| 33 | if(NOT CORE_SOURCE_DIR) | ||
| 34 | set(CORE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../..) | ||
| 35 | else() | ||
| 36 | file(TO_CMAKE_PATH "${CORE_SOURCE_DIR}" CORE_SOURCE_DIR) | ||
| 37 | endif() | ||
| 38 | get_filename_component(CORE_SOURCE_DIR "${CORE_SOURCE_DIR}" ABSOLUTE) | ||
| 39 | |||
| 40 | if(NOT BUILD_DIR) | ||
| 41 | set(BUILD_DIR "${CMAKE_BINARY_DIR}/build") | ||
| 42 | else() | ||
| 43 | file(TO_CMAKE_PATH "${BUILD_DIR}" BUILD_DIR) | ||
| 44 | endif() | ||
| 45 | get_filename_component(BUILD_DIR "${BUILD_DIR}" ABSOLUTE) | ||
| 46 | |||
| 47 | if(NOT ADDON_DEPENDS_PATH) | ||
| 48 | set(ADDON_DEPENDS_PATH "${BUILD_DIR}/depends") | ||
| 49 | else() | ||
| 50 | file(TO_CMAKE_PATH "${ADDON_DEPENDS_PATH}" ADDON_DEPENDS_PATH) | ||
| 51 | endif() | ||
| 52 | get_filename_component(ADDON_DEPENDS_PATH "${ADDON_DEPENDS_PATH}" ABSOLUTE) | ||
| 53 | |||
| 54 | if(NOT PLATFORM_DIR) | ||
| 55 | set(PLATFORM_DIR ${CORE_SOURCE_DIR}/project/cmake/platform/${CORE_SYSTEM_NAME}) | ||
| 56 | file(TO_CMAKE_PATH "${PLATFORM_DIR}" PLATFORM_DIR) | ||
| 57 | endif() | ||
| 58 | |||
| 59 | # make sure CMAKE_PREFIX_PATH is set | ||
| 60 | if(NOT CMAKE_PREFIX_PATH) | ||
| 61 | set(CMAKE_PREFIX_PATH "${ADDON_DEPENDS_PATH}") | ||
| 62 | else() | ||
| 63 | file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH) | ||
| 64 | list(APPEND CMAKE_PREFIX_PATH "${ADDON_DEPENDS_PATH}") | ||
| 65 | endif() | ||
| 66 | |||
| 67 | # check for autoconf stuff to pass on | ||
| 68 | if(AUTOCONF_FILES) | ||
| 69 | string(REPLACE " " ";" AUTOCONF_FILES ${AUTOCONF_FILES}) | ||
| 70 | set(CROSS_AUTOCONF "yes") | ||
| 71 | endif() | ||
| 72 | |||
| 73 | if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX) | ||
| 74 | set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/output/addons") | ||
| 75 | endif() | ||
| 76 | list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}) | ||
| 77 | |||
| 78 | set(BUILD_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} | ||
| 79 | -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> | ||
| 80 | -DPACKAGE_CONFIG_PATH=${ADDON_DEPENDS_PATH}/lib/pkgconfig | ||
| 81 | -DADDON_DEPENDS_PATH=${ADDON_DEPENDS_PATH} | ||
| 82 | -DOVERRIDE_PATHS=${OVERRIDE_PATHS} | ||
| 83 | -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} | ||
| 84 | -DCMAKE_USER_MAKE_RULES_OVERRIDE=${CMAKE_USER_MAKE_RULES_OVERRIDE} | ||
| 85 | -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX=${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX} | ||
| 86 | -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME} | ||
| 87 | -DBUILD_SHARED_LIBS=1 | ||
| 88 | -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} | ||
| 89 | -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}) | ||
| 90 | |||
| 91 | if(MSVC) | ||
| 92 | # move cmake specific targets to a CMakePredefinedTargets folder in Visual Studio | ||
| 93 | set_property(GLOBAL PROPERTY USE_FOLDERS ON) | ||
| 94 | endif() | ||
| 95 | |||
| 96 | option(PACKAGE_ZIP "Prepare built addons for packaging" OFF) | ||
| 97 | if(PACKAGE_ZIP) | ||
| 98 | # needed for project installing | ||
| 99 | list(APPEND BUILD_ARGS -DPACKAGE_ZIP=ON) | ||
| 100 | |||
| 101 | # figure out where to store the packaged ZIP archives | ||
| 102 | if(NOT PACKAGE_DIR) | ||
| 103 | set(PACKAGE_DIR "${BUILD_DIR}/zips") | ||
| 104 | else() | ||
| 105 | file(TO_CMAKE_PATH "${PACKAGE_DIR}" PACKAGE_DIR) | ||
| 106 | endif() | ||
| 107 | list(APPEND BUILD_ARGS -DPACKAGE_DIR=${PACKAGE_DIR}) | ||
| 108 | |||
| 109 | message(STATUS "ZIP packaging enabled (destination: ${PACKAGE_DIR})") | ||
| 110 | endif() | ||
| 111 | |||
| 112 | if(CMAKE_TOOLCHAIN_FILE) | ||
| 113 | list(APPEND BUILD_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) | ||
| 114 | message(STATUS "Toolchain specified") | ||
| 115 | message(STATUS ${BUILD_ARGS}) | ||
| 116 | endif() | ||
| 117 | |||
| 118 | if(NOT ADDONS_TO_BUILD) | ||
| 119 | set(ADDONS_TO_BUILD "all") | ||
| 120 | else() | ||
| 121 | string(STRIP "${ADDONS_TO_BUILD}" ADDONS_TO_BUILD) | ||
| 122 | message(STATUS "Building following addons: ${ADDONS_TO_BUILD}") | ||
| 123 | string(REPLACE " " ";" ADDONS_TO_BUILD ${ADDONS_TO_BUILD}) | ||
| 124 | endif() | ||
| 125 | |||
| 126 | if(NOT ADDONS_DEFINITION_DIR) | ||
| 127 | set(ADDONS_DEFINITION_DIR ${PROJECT_SOURCE_DIR}/addons) | ||
| 128 | else() | ||
| 129 | file(TO_CMAKE_PATH "${ADDONS_DEFINITION_DIR}" ADDONS_DEFINITION_DIR) | ||
| 130 | endif() | ||
| 131 | get_filename_component(ADDONS_DEFINITION_DIR "${ADDONS_DEFINITION_DIR}" ABSOLUTE) | ||
| 132 | |||
| 133 | if(ADDON_SRC_PREFIX) | ||
| 134 | if(NOT IS_ABSOLUTE ${ADDON_SRC_PREFIX}) | ||
| 135 | get_filename_component(ADDON_SRC_PREFIX "${CMAKE_BINARY_DIR}/${ADDON_SRC_PREFIX}" ABSOLUTE) | ||
| 136 | endif() | ||
| 137 | message(STATUS "Overriding addon source directory prefix: ${ADDON_SRC_PREFIX}") | ||
| 138 | endif() | ||
| 139 | |||
| 140 | if(NOT APP_LIB_DIR) | ||
| 141 | set(APP_LIB_DIR "${ADDON_DEPENDS_PATH}/lib/kodi") | ||
| 142 | else() | ||
| 143 | file(TO_CMAKE_PATH "${APP_LIB_DIR}" APP_LIB_DIR) | ||
| 144 | endif() | ||
| 145 | |||
| 146 | set(APP_PREFIX "${CMAKE_INSTALL_PREFIX}") | ||
| 147 | |||
| 148 | # check for platform specific stuff | ||
| 149 | if(EXISTS ${PLATFORM_DIR}/defines.txt) | ||
| 150 | file(STRINGS ${PLATFORM_DIR}/defines.txt platformdefines) | ||
| 151 | |||
| 152 | if(NOT ARCH_DEFINES AND platformdefines) | ||
| 153 | set(ARCH_DEFINES ${platformdefines}) | ||
| 154 | endif() | ||
| 155 | endif() | ||
| 156 | |||
| 157 | # include check_target_platform() function | ||
| 158 | include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/CheckTargetPlatform.cmake) | ||
| 159 | |||
| 160 | set(ADDON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) | ||
| 161 | if(NOT WIN32) | ||
| 162 | # check install permissions | ||
| 163 | check_install_permissions(${CMAKE_INSTALL_PREFIX} can_write) | ||
| 164 | if(NOT ${can_write} AND CMAKE_SYSTEM_NAME STREQUAL "Linux") | ||
| 165 | set(NEED_SUDO TRUE) | ||
| 166 | set(ADDON_INSTALL_DIR ${CMAKE_BINARY_DIR}/.install) | ||
| 167 | list(APPEND BUILD_ARGS -DOVERRIDE_PATHS=ON) | ||
| 168 | message(STATUS "NEED_SUDO: ${NEED_SUDO} (no write permission for ${CMAKE_INSTALL_PREFIX})") | ||
| 169 | endif() | ||
| 170 | endif() | ||
| 171 | |||
| 172 | ### prepare the build environment for the binary addons | ||
| 173 | # copy the PrepareEnv.cmake script to the depends path so that we can include it | ||
| 174 | file(COPY ${CORE_SOURCE_DIR}/project/cmake/scripts/common/PrepareEnv.cmake DESTINATION ${APP_LIB_DIR}) | ||
| 175 | |||
| 176 | # add the location of PrepareEnv.cmake to CMAKE_MODULE_PATH so that it is found | ||
| 177 | list(APPEND CMAKE_MODULE_PATH ${APP_LIB_DIR}) | ||
| 178 | |||
| 179 | # include PrepareEnv.cmake which contains the logic to install the addon header bindings etc | ||
| 180 | include(PrepareEnv) | ||
| 181 | |||
| 182 | ### add the depends subdirectory for any general dependencies | ||
| 183 | message(STATUS "\n-- ---- Preparing general dependencies ----") | ||
| 184 | add_subdirectory(depends) | ||
| 185 | |||
| 186 | # add a custom target "package-addons" which will package and install all addons | ||
| 187 | add_custom_target(package-addons) | ||
| 188 | |||
| 189 | ### get and build all the binary addons | ||
| 190 | # look for all the addons to be built | ||
| 191 | file(GLOB_RECURSE addons ${ADDONS_DEFINITION_DIR}/*.txt) | ||
| 192 | |||
| 193 | #if there are no addons assume that bootstrapping hasn't happened yet | ||
| 194 | if(NOT addons) | ||
| 195 | message(STATUS "Bootstrapping all default repositories as no addons were found...") | ||
| 196 | set(BOOTSTRAP_BUILD_DIR "${BUILD_DIR}/bootstrap") | ||
| 197 | |||
| 198 | # make sure that the bootstraps build addon exists | ||
| 199 | if(NOT EXISTS ${BOOTSTRAP_BUILD_DIR}) | ||
| 200 | file(MAKE_DIRECTORY ${BOOTSTRAP_BUILD_DIR}) | ||
| 201 | endif() | ||
| 202 | |||
| 203 | string(REPLACE ";" " " ADDONS_TO_BUILD_STR "${ADDONS_TO_BUILD}") | ||
| 204 | # generate the bootstrap buildsystem | ||
| 205 | execute_process(COMMAND ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR}/bootstrap | ||
| 206 | -DCMAKE_INSTALL_PREFIX:PATH=${ADDONS_DEFINITION_DIR} | ||
| 207 | -DBUILD_DIR:PATH=${BOOTSTRAP_BUILD_DIR} | ||
| 208 | -DADDONS_TO_BUILD:STRING=${ADDONS_TO_BUILD_STR} | ||
| 209 | -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} | ||
| 210 | WORKING_DIRECTORY ${BOOTSTRAP_BUILD_DIR}) | ||
| 211 | |||
| 212 | # execute the generated bootstrap buildsystem | ||
| 213 | execute_process(COMMAND ${CMAKE_COMMAND} --build ${BOOTSTRAP_BUILD_DIR} | ||
| 214 | WORKING_DIRECTORY ${BOOTSTRAP_BUILD_DIR}) | ||
| 215 | |||
| 216 | # now look for all the addons to be built again | ||
| 217 | file(GLOB_RECURSE addons ${ADDONS_DEFINITION_DIR}/*.txt) | ||
| 218 | |||
| 219 | if(NOT addons) | ||
| 220 | message(FATAL_ERROR "No addons available to be built") | ||
| 221 | endif() | ||
| 222 | endif() | ||
| 223 | |||
| 224 | # Track if at least one addon has been found. Everything else is likely an | ||
| 225 | # error either in ADDONS_TO_BUILD or in the directory configuration. | ||
| 226 | set(SUPPORTED_ADDON_FOUND FALSE) | ||
| 227 | |||
| 228 | foreach(addon ${addons}) | ||
| 229 | if(NOT (addon MATCHES platforms.txt)) | ||
| 230 | file(STRINGS ${addon} def) | ||
| 231 | string(REPLACE " " ";" def ${def}) | ||
| 232 | list(GET def 0 id) | ||
| 233 | |||
| 234 | set(ADDON_FOUND FALSE) | ||
| 235 | # try to find a perfect match | ||
| 236 | list(FIND ADDONS_TO_BUILD ${id} idx) | ||
| 237 | if(idx GREATER -1 OR "${ADDONS_TO_BUILD}" STREQUAL "all") | ||
| 238 | set(ADDON_FOUND TRUE) | ||
| 239 | # Maybe we have a regex | ||
| 240 | elseif(id MATCHES "${ADDONS_TO_BUILD}") | ||
| 241 | message(STATUS "Pattern ${ADDONS_TO_BUILD} matches ${id}, building addon") | ||
| 242 | set(ADDON_FOUND TRUE) | ||
| 243 | endif() | ||
| 244 | |||
| 245 | if(ADDON_FOUND) | ||
| 246 | message(STATUS "\n-- ---- Configuring addon ${addon} ----") | ||
| 247 | set(SUPPORTED_ADDON_FOUND TRUE) | ||
| 248 | |||
| 249 | get_filename_component(dir ${addon} DIRECTORY) | ||
| 250 | |||
| 251 | # check if the addon has a platforms.txt | ||
| 252 | set(platform_found FALSE) | ||
| 253 | check_target_platform(${dir} ${CORE_SYSTEM_NAME} platform_found) | ||
| 254 | |||
| 255 | if(${platform_found}) | ||
| 256 | # make sure the output directory is clean | ||
| 257 | file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}/${id}/") | ||
| 258 | |||
| 259 | # get the URL and revision of the addon | ||
| 260 | list(LENGTH def deflength) | ||
| 261 | list(GET def 1 url) | ||
| 262 | |||
| 263 | set(archive_name ${id}) | ||
| 264 | if(ADDON_SRC_PREFIX) | ||
| 265 | set(SOURCE_DIR ${ADDON_SRC_PREFIX}/${id}) | ||
| 266 | set(archive_name "") | ||
| 267 | else() | ||
| 268 | set(SOURCE_DIR "") | ||
| 269 | endif() | ||
| 270 | |||
| 271 | # if there is a 3rd parameter in the file, we consider it a git revision | ||
| 272 | if(deflength GREATER 2 AND "${SOURCE_DIR}" STREQUAL "") | ||
| 273 | list(GET def 2 revision) | ||
| 274 | |||
| 275 | # we need access to a git executable | ||
| 276 | find_package(Git REQUIRED) | ||
| 277 | |||
| 278 | # resolve revision to git hash | ||
| 279 | execute_process(COMMAND ${GIT_EXECUTABLE} ls-remote ${url} ${revision} OUTPUT_VARIABLE revision_hash) | ||
| 280 | # git ls-remote only works on branches and tag names but not on revisions | ||
| 281 | if(NOT "${revision_hash}" STREQUAL "") | ||
| 282 | string(REPLACE "\t" ";" revision_list ${revision_hash}) | ||
| 283 | list(GET revision_list 0 revision_hash) | ||
| 284 | message(STATUS "${id}: git branch/tag ${revision} resolved to hash: ${revision_hash}") | ||
| 285 | set(revision ${revision_hash}) | ||
| 286 | endif() | ||
| 287 | |||
| 288 | # Note: downloading specific revisions via http in the format below is probably github specific | ||
| 289 | # if we ever use other repositories, this might need adapting | ||
| 290 | set(url ${url}/archive/${revision}.tar.gz) | ||
| 291 | set(archive_name ${archive_name}-${revision}) | ||
| 292 | elseif("${SOURCE_DIR}" STREQUAL "") | ||
| 293 | # check if the URL starts with file:// | ||
| 294 | string(REGEX MATCH "^file://.*$" local_url "${url}") | ||
| 295 | |||
| 296 | #if not we assume this to be a local directory | ||
| 297 | if(local_url) | ||
| 298 | # this is not an archive | ||
| 299 | set(archive_name "") | ||
| 300 | |||
| 301 | # remove the file:// protocol from the URL | ||
| 302 | string(REPLACE "file://" "" SOURCE_DIR "${url}") | ||
| 303 | |||
| 304 | # on win32 we may have to remove another leading / | ||
| 305 | if(WIN32) | ||
| 306 | # check if the path is a local path | ||
| 307 | string(REGEX MATCH "^/.*$" local_path "${SOURCE_DIR}") | ||
| 308 | if(local_path) | ||
| 309 | string(SUBSTRING "${SOURCE_DIR}" 1 -1 SOURCE_DIR) | ||
| 310 | endif() | ||
| 311 | endif() | ||
| 312 | endif() | ||
| 313 | endif() | ||
| 314 | |||
| 315 | # download the addon if necessary | ||
| 316 | if(NOT "${archive_name}" STREQUAL "") | ||
| 317 | # download and extract the addon | ||
| 318 | if(NOT ADDON_TARBALL_CACHING OR NOT EXISTS ${BUILD_DIR}/download/${archive_name}.tar.gz) | ||
| 319 | # cleanup any of the previously downloaded archives of this addon | ||
| 320 | file(GLOB archives "${BUILD_DIR}/download/${id}*.tar.gz") | ||
| 321 | if(archives) | ||
| 322 | message(STATUS "Removing old archives of ${id}: ${archives}") | ||
| 323 | file(REMOVE ${archives}) | ||
| 324 | endif() | ||
| 325 | |||
| 326 | # download the addon | ||
| 327 | file(DOWNLOAD "${url}" "${BUILD_DIR}/download/${archive_name}.tar.gz" STATUS dlstatus LOG dllog SHOW_PROGRESS) | ||
| 328 | list(GET dlstatus 0 retcode) | ||
| 329 | if(NOT ${retcode} EQUAL 0) | ||
| 330 | message(FATAL_ERROR "ERROR downloading ${url} - status: ${dlstatus} log: ${dllog}") | ||
| 331 | endif() | ||
| 332 | endif() | ||
| 333 | |||
| 334 | # remove any previously extracted version of the addon | ||
| 335 | file(REMOVE_RECURSE "${BUILD_DIR}/${id}") | ||
| 336 | |||
| 337 | # extract the addon from the archive | ||
| 338 | execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzvf ${BUILD_DIR}/download/${archive_name}.tar.gz | ||
| 339 | WORKING_DIRECTORY ${BUILD_DIR}) | ||
| 340 | file(GLOB extract_dir "${BUILD_DIR}/${archive_name}*") | ||
| 341 | if(extract_dir STREQUAL "") | ||
| 342 | message(FATAL_ERROR "${id}: error extracting ${BUILD_DIR}/download/${archive_name}.tar.gz") | ||
| 343 | else() | ||
| 344 | file(RENAME "${extract_dir}" "${BUILD_DIR}/${id}") | ||
| 345 | endif() | ||
| 346 | |||
| 347 | set(SOURCE_DIR ${BUILD_DIR}/${id}) | ||
| 348 | endif() | ||
| 349 | |||
| 350 | if(NOT "${SOURCE_DIR}" STREQUAL "" AND EXISTS ${SOURCE_DIR}) | ||
| 351 | # create a list of addons we are building | ||
| 352 | list(APPEND ALL_ADDONS_BUILDING ${id}) | ||
| 353 | |||
| 354 | # setup the buildsystem for the addon | ||
| 355 | externalproject_add(${id} | ||
| 356 | SOURCE_DIR ${SOURCE_DIR} | ||
| 357 | INSTALL_DIR ${ADDON_INSTALL_DIR} | ||
| 358 | CMAKE_ARGS ${BUILD_ARGS}) | ||
| 359 | |||
| 360 | # add a custom step to the external project between the configure and the build step which will always | ||
| 361 | # be executed and therefore forces a re-build of all changed files | ||
| 362 | externalproject_add_step(${id} forcebuild | ||
| 363 | COMMAND ${CMAKE_COMMAND} -E echo "Force build of ${id}" | ||
| 364 | DEPENDEES configure | ||
| 365 | DEPENDERS build | ||
| 366 | ALWAYS 1) | ||
| 367 | |||
| 368 | # add "kodi-platform" as a dependency to every addon | ||
| 369 | add_dependencies(${id} kodi-platform) | ||
| 370 | |||
| 371 | set(${id}_DEPENDS_DIR ${SOURCE_DIR}/depends) | ||
| 372 | |||
| 373 | if(EXISTS ${${id}_DEPENDS_DIR}) | ||
| 374 | include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/HandleDepends.cmake) | ||
| 375 | add_addon_depends(${id} ${${id}_DEPENDS_DIR}) | ||
| 376 | if(${id}_DEPS AND NOT "${${id}_DEPS}" STREQUAL "") | ||
| 377 | message(STATUS "${id} DEPENDENCIES: ${${id}_DEPS}") | ||
| 378 | add_dependencies(${id} ${${id}_DEPS}) | ||
| 379 | endif() | ||
| 380 | endif() | ||
| 381 | |||
| 382 | if(CROSS_AUTOCONF AND AUTOCONF_FILES) | ||
| 383 | if(EXISTS ${SOURCE_DIR}/bootstrap/autoreconf.txt) | ||
| 384 | file(STRINGS ${SOURCE_DIR}/bootstrap/autoreconf.txt conf_dirs) | ||
| 385 | foreach(conf_dir ${conf_dirs}) | ||
| 386 | foreach(afile ${AUTOCONF_FILES}) | ||
| 387 | message(STATUS "copying ${afile} to ${SOURCE_DIR}/${conf_dir}") | ||
| 388 | file(COPY ${afile} DESTINATION ${SOURCE_DIR}/${conf_dir}) | ||
| 389 | endforeach() | ||
| 390 | endforeach() | ||
| 391 | endif() | ||
| 392 | endif() | ||
| 393 | |||
| 394 | # create a forwarding target to the addon-package target | ||
| 395 | add_custom_target(package-${id} | ||
| 396 | COMMAND ${CMAKE_COMMAND} --build ${id}-prefix/src/${id}-build --target addon-package | ||
| 397 | DEPENDS ${id}) | ||
| 398 | add_dependencies(package-addons package-${id}) | ||
| 399 | |||
| 400 | else() | ||
| 401 | message(FATAL_ERROR "${id}: invalid or missing addon source directory at ${SOURCE_DIR}") | ||
| 402 | endif() | ||
| 403 | else() | ||
| 404 | # add a dummy target for addons that are unsupported on this platform | ||
| 405 | add_custom_target(${id} COMMAND ${CMAKE_COMMAND} -E echo "IGNORED ${id} - not supported on ${CORE_SYSTEM_NAME}\n") | ||
| 406 | endif() | ||
| 407 | endif() | ||
| 408 | endif() | ||
| 409 | endforeach() | ||
| 410 | message(STATUS "") | ||
| 411 | |||
| 412 | if(NEED_SUDO) | ||
| 413 | add_custom_target(sudo-install | ||
| 414 | COMMAND ${CMAKE_COMMAND} -E echo "sudo rights needed to install to ${CMAKE_INSTALL_PREFIX}\n" | ||
| 415 | COMMAND sudo ${CMAKE_COMMAND} -E copy_directory ${ADDON_INSTALL_DIR}/ ${CMAKE_INSTALL_PREFIX}/ | ||
| 416 | COMMAND sudo -k) | ||
| 417 | |||
| 418 | foreach(_id ${ALL_ADDONS_BUILDING}) | ||
| 419 | add_dependencies(sudo-install ${_id}) | ||
| 420 | endforeach() | ||
| 421 | message(WARNING "sudo rights needed to install to ${CMAKE_INSTALL_PREFIX}") | ||
| 422 | message(STATUS "\nplease type \"make sudo-install\"\n\n") | ||
| 423 | endif() | ||
| 424 | |||
| 425 | if(NOT SUPPORTED_ADDON_FOUND) | ||
| 426 | message(FATAL_ERROR "${ADDONS_TO_BUILD} did not match any of the supported addons. \ | ||
| 427 | A list of supported addons can be viewed by building the 'supported_addons' target. \ | ||
| 428 | Addon definitions are loaded from ADDONS_DEFINITION_DIR (${ADDONS_DEFINITION_DIR}).") | ||
| 429 | endif() | ||
| 430 | |||
| 431 | # add custom target "supported_addons" that returns all addons that are supported on this platform | ||
| 432 | string(REPLACE ";" " " ALL_ADDONS_BUILDING "${ALL_ADDONS_BUILDING}") | ||
| 433 | add_custom_target(supported_addons COMMAND ${CMAKE_COMMAND} -E echo "ALL_ADDONS_BUILDING: ${ALL_ADDONS_BUILDING}" VERBATIM) | ||
| 434 | add_custom_target(need-sudo COMMAND ${CMAKE_COMMAND} -E echo ${NEED_SUDO} VERBATIM) | ||
diff --git a/project/cmake/addons/README.md b/project/cmake/addons/README.md deleted file mode 100644 index 6470ee1..0000000 --- a/project/cmake/addons/README.md +++ /dev/null | |||
| @@ -1,65 +0,0 @@ | |||
| 1 |  | ||
| 2 | # Kodi add-ons CMake based buildsystem | ||
| 3 | This directory contains the cmake-based buildsystem for Kodi add-ons. It looks into the directory pointed to by the *ADDONS_DEFINITION_DIR* option (which defaults to the *addons* sub-directory) and parses all *.txt files recursively. Each add-on must have its own `<addon-id>.txt` file in a separate sub-directory that must follow one of the defined formats: | ||
| 4 | |||
| 5 | - `<addon-id> <git-url> <git-revision>` | ||
| 6 | - `<addon-id> <tarball-url>` | ||
| 7 | - `<addon-id> <file://path>` | ||
| 8 | |||
| 9 | where | ||
| 10 | - `<addon-id>` must be identical to the add-on's ID as defined in the add-on's addon.xml | ||
| 11 | - `<git-url>` must be the URL of the git repository containing the add-on | ||
| 12 | - `<git-revision>` must be a valid git tag/branch/commit in the add-on's git repository which will be used for the build | ||
| 13 | - `<tarball-url>` must be the URL to a .tar.gz tarball containing the add-on | ||
| 14 | - `<file://path>` must be a *file://* based path to the directory containing the add-on | ||
| 15 | |||
| 16 | ## Reserved filenames | ||
| 17 | - **platforms.txt** | ||
| 18 | |||
| 19 | List of platforms to build an add-on for (or *all*). Negating platforms is supported using a leading exclamation mark, e.g. *!windows*. | ||
| 20 | |||
| 21 | Available platforms are: linux, windows, osx, ios, android, rbpi and freebsd. | ||
| 22 | |||
| 23 | #### Attention | ||
| 24 | If no add-on definitions could be found, the buildsystem assumes that the bootstrapping of the add-on definition repositories hasn't been performed yet and automatically executes the add-on bootstrapping buildsystem located in the *bootstrap* sub-directory with the default settings (i.e. *all* add-ons from all pre-defined add-on definition repositories are bootstrapped into the directory pointed to by the *ADDONS_DEFINITION_DIR* option). | ||
| 25 | |||
| 26 | ## Buildsystem variables | ||
| 27 | The buildsystem uses the following variables (which can be passed into it when executing cmake with the -D`<variable-name>=<value>` format) to manipulate the build process: | ||
| 28 | - `ADDONS_TO_BUILD` has two variations, which are tested in order: | ||
| 29 | - a quoted, space delimited list of `<addon-id>s` that you want to build (default is *all*) | ||
| 30 | - a regular expression that every `<addon-id>` is matched against (e.g. `ADDONS_TO_BUILD="pvr.*"`) to build all pvr add-ons | ||
| 31 | - `ADDONS_DEFINITION_DIR` points to the directory containing the definitions for the addons to be built | ||
| 32 | - `ADDON_SRC_PREFIX` can be used to override the add-on repository location. It must point to the locally available parent directory of the add-on(s) to build. `<addon-id>` will be appended to this path automatically | ||
| 33 | - `CMAKE_BUILD_TYPE` specifies the type of the build. This can be either *Debug* or *Release* (default is *Release*) | ||
| 34 | - `CMAKE_INSTALL_PREFIX` points to the directory where the built add-ons and their additional files (addon.xml, resources, ...) will be installed to (defaults to `<ADDON_DEPENDS_PATH>`) | ||
| 35 | - `CMAKE_TOOLCHAIN_FILE` can be used to pass a toolchain file into the add-on builds | ||
| 36 | - `ADDON_DEPENDS_PATH` points to the directory containing the *include* and *lib* directories of the add-ons' dependencies. | ||
| 37 | - `CORE_SOURCE_DIR` points to the root directory of the project (default is the absolute representation of ../../.. starting from this directory) | ||
| 38 | - `BUILD_DIR` points to the directory where the add-ons and their dependencies will be downloaded and built | ||
| 39 | - `PACKAGE_ZIP=ON` means that the add-ons will be 'packaged' into a common folder, rather than being placed in `<CMAKE_INSTALL_PREFIX>/lib/kodi/addons` and `<CMAKE_INSTALL_PREFIX>/share/kodi/addons` | ||
| 40 | - `PACKAGE_DIR` points to the directory where the ZIP archived add-ons will be stored after they have been packaged (defaults to `<BUILD_DIR>/zips`) | ||
| 41 | - `ARCH_DEFINES` specifies the platform-specific C/C++ preprocessor defines (defaults to empty) | ||
| 42 | - `ADDON_TARBALL_CACHING` specifies whether downloaded add-on source tarballs should be cached or not (defaults to *ON*) | ||
| 43 | |||
| 44 | ## Deprecated buildsystem variables | ||
| 45 | Buildsystem will print a warning if you use any of the below-listed variables. For now they still work but you should adapt your workflow to the new variables. | ||
| 46 | - `APP_ROOT` - Use `CORE_SOURCE_DIR` instead | ||
| 47 | |||
| 48 | ## Building | ||
| 49 | The buildsystem makes some assumptions about the environment which must be met by whoever uses it: | ||
| 50 | - Any dependencies of the add-ons must already be built and their include and library files must be present in the path pointed to by `<CMAKE_PREFIX_PATH>` (in *include* and *lib* sub-directories) | ||
| 51 | |||
| 52 | To trigger the cmake-based buildsystem the following command must be executed with `<path>` set to this directory (absolute or relative) allowing for in-source and out-of-source builds | ||
| 53 | |||
| 54 | `cmake <path> -G <generator>` | ||
| 55 | |||
| 56 | CMake supports multiple generators. See [here] (https://cmake.org/cmake/help/v3.1/manual/cmake-generators.7.html) for a list. | ||
| 57 | |||
| 58 | In case of additional options the call might look like this: | ||
| 59 | |||
| 60 | cmake `<path>` [-G `<generator>`] \ | ||
| 61 | -DCMAKE_BUILD_TYPE=Release \ | ||
| 62 | -DCORE_SOURCE_DIR="`<path-to-app-root>`" \ | ||
| 63 | -DARCH_DEFINES="-DTARGET_LINUX" \ | ||
| 64 | -DADDON_DEPENDS_PATH=`<path-to-built-depends>` \ | ||
| 65 | -DCMAKE_INSTALL_PREFIX="`<path-to-install-directory`" | ||
diff --git a/project/cmake/addons/addons/pvr.dvbviewer/platforms.txt b/project/cmake/addons/addons/pvr.dvbviewer/platforms.txt deleted file mode 100644 index baa6044..0000000 --- a/project/cmake/addons/addons/pvr.dvbviewer/platforms.txt +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | all \ No newline at end of file | ||
diff --git a/project/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt b/project/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt deleted file mode 100644 index db25aa2..0000000 --- a/project/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | pvr.dvbviewer https://github.com/manuelm/pvr.dvbviewer master \ No newline at end of file | ||
diff --git a/project/cmake/addons/bootstrap/Bootstrap.cmake b/project/cmake/addons/bootstrap/Bootstrap.cmake deleted file mode 100644 index 5d20302..0000000 --- a/project/cmake/addons/bootstrap/Bootstrap.cmake +++ /dev/null | |||
| @@ -1,39 +0,0 @@ | |||
| 1 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) | ||
| 2 | |||
| 3 | # make sure that the installation location has been specified | ||
| 4 | if(NOT CMAKE_INSTALL_PREFIX) | ||
| 5 | message(FATAL_ERROR "CMAKE_INSTALL_PREFIX has not been specified") | ||
| 6 | endif() | ||
| 7 | |||
| 8 | # figure out which addons to bootstrap (defaults to all) | ||
| 9 | if(NOT ADDONS_TO_BUILD) | ||
| 10 | set(ADDONS_TO_BUILD "all") | ||
| 11 | else() | ||
| 12 | string(STRIP "${ADDONS_TO_BUILD}" ADDONS_TO_BUILD) | ||
| 13 | message(STATUS "Bootstrapping following addons: ${ADDONS_TO_BUILD}") | ||
| 14 | string(REPLACE " " ";" ADDONS_TO_BUILD ${ADDONS_TO_BUILD}) | ||
| 15 | endif() | ||
| 16 | |||
| 17 | # find all addon definitions and go through them | ||
| 18 | file(GLOB_RECURSE ADDON_DEFINITIONS ${PROJECT_SOURCE_DIR}/*.txt) | ||
| 19 | foreach(ADDON_DEFINITION_FILE ${ADDON_DEFINITIONS}) | ||
| 20 | # ignore platforms.txt | ||
| 21 | if(NOT (ADDON_DEFINITION_FILE MATCHES platforms.txt)) | ||
| 22 | # read the addon definition file | ||
| 23 | file(STRINGS ${ADDON_DEFINITION_FILE} ADDON_DEFINITION) | ||
| 24 | string(REPLACE " " ";" ADDON_DEFINITION ${ADDON_DEFINITION}) | ||
| 25 | |||
| 26 | # extract the addon definition's identifier | ||
| 27 | list(GET ADDON_DEFINITION 0 ADDON_ID) | ||
| 28 | |||
| 29 | # check if the addon definition should be built | ||
| 30 | if(ADDON_ID MATCHES "^${ADDONS_TO_BUILD}" OR ADDONS_TO_BUILD STREQUAL all) | ||
| 31 | # get the path to the addon definition directory | ||
| 32 | get_filename_component(ADDON_DEFINITION_DIR ${ADDON_DEFINITION_FILE} DIRECTORY) | ||
| 33 | |||
| 34 | # install the addon definition | ||
| 35 | message(STATUS "Bootstrapping ${ADDON_ID} addon...") | ||
| 36 | file(INSTALL ${ADDON_DEFINITION_DIR} DESTINATION ${CMAKE_INSTALL_PREFIX}) | ||
| 37 | endif() | ||
| 38 | endif() | ||
| 39 | endforeach() | ||
diff --git a/project/cmake/addons/bootstrap/CMakeLists.txt b/project/cmake/addons/bootstrap/CMakeLists.txt deleted file mode 100644 index c20b97e..0000000 --- a/project/cmake/addons/bootstrap/CMakeLists.txt +++ /dev/null | |||
| @@ -1,94 +0,0 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | ||
| 2 | project(kodi-addons-bootstrap) | ||
| 3 | |||
| 4 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) | ||
| 5 | |||
| 6 | # make sure CMAKE_INSTALL_PREFIX is properly set | ||
| 7 | if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX) | ||
| 8 | set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/../addons") | ||
| 9 | endif() | ||
| 10 | list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}) | ||
| 11 | |||
| 12 | # figure out where the build directory is located | ||
| 13 | if(NOT BUILD_DIR) | ||
| 14 | set(BUILD_DIR "${CMAKE_BINARY_DIR}/build") | ||
| 15 | else() | ||
| 16 | file(TO_CMAKE_PATH "${BUILD_DIR}" BUILD_DIR) | ||
| 17 | endif() | ||
| 18 | get_filename_component(BUILD_DIR "${BUILD_DIR}" ABSOLUTE) | ||
| 19 | |||
| 20 | # make sure that the repositories to build have been specified | ||
| 21 | if(NOT REPOSITORY_TO_BUILD) | ||
| 22 | set(REPOSITORY_TO_BUILD_DEFAULT ON) | ||
| 23 | set(REPOSITORY_TO_BUILD "all") | ||
| 24 | set(REPOSITORY_REVISION "") | ||
| 25 | message(STATUS "Bootstrapping all repositories") | ||
| 26 | else() | ||
| 27 | set(REPOSITORY_TO_BUILD_DEFAULT OFF) | ||
| 28 | message(STATUS "Bootstrapping following repository: ${REPOSITORY_TO_BUILD}") | ||
| 29 | endif() | ||
| 30 | |||
| 31 | # figure out which addons to bootstrap (defaults to all) | ||
| 32 | if(NOT ADDONS_TO_BUILD) | ||
| 33 | set(ADDONS_TO_BUILD "all") | ||
| 34 | message(STATUS "Bootstrapping all addons") | ||
| 35 | else() | ||
| 36 | message(STATUS "Bootstrapping following addons: ${ADDONS_TO_BUILD}") | ||
| 37 | endif() | ||
| 38 | |||
| 39 | include(ExternalProject) | ||
| 40 | |||
| 41 | function(bootstrap_repo repo_id repo_url repo_revision) | ||
| 42 | message(STATUS "Bootstrapping addons from ${repo_id} (${repo_url} ${repo_revision})...") | ||
| 43 | externalproject_add(${repo_id} | ||
| 44 | GIT_REPOSITORY ${repo_url} | ||
| 45 | GIT_TAG ${repo_revision} | ||
| 46 | PREFIX ${BUILD_DIR}/${repo_id} | ||
| 47 | CONFIGURE_COMMAND "" | ||
| 48 | BUILD_COMMAND "" | ||
| 49 | INSTALL_COMMAND ${CMAKE_COMMAND} | ||
| 50 | -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} | ||
| 51 | -DPROJECT_SOURCE_DIR=<SOURCE_DIR> | ||
| 52 | -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} | ||
| 53 | -DADDONS_TO_BUILD=${ADDONS_TO_BUILD} | ||
| 54 | -P ${PROJECT_SOURCE_DIR}/Bootstrap.cmake | ||
| 55 | ) | ||
| 56 | endfunction() | ||
| 57 | |||
| 58 | # look for all addons repository definitions | ||
| 59 | set(REPOSITORY_TO_BUILD_FOUND OFF) | ||
| 60 | file(GLOB repos repositories/*.txt) | ||
| 61 | foreach(repo ${repos}) | ||
| 62 | file(STRINGS ${repo} repo_definition) | ||
| 63 | string(REPLACE " " ";" repo_definition ${repo_definition}) | ||
| 64 | list(GET repo_definition 0 repo_id) | ||
| 65 | |||
| 66 | list(FIND REPOSITORY_TO_BUILD ${repo_id} idx) | ||
| 67 | if(idx GREATER -1 OR REPOSITORY_TO_BUILD STREQUAL "all") | ||
| 68 | set(REPOSITORY_TO_BUILD_FOUND ON) | ||
| 69 | |||
| 70 | # get the URL of the repository | ||
| 71 | list(GET repo_definition 1 repo_url) | ||
| 72 | |||
| 73 | # get the revision of the repository if not provided as an argument | ||
| 74 | if(NOT REPOSITORY_REVISION) | ||
| 75 | list(GET repo_definition 2 repo_revision) | ||
| 76 | else() | ||
| 77 | set(repo_revision "${REPOSITORY_REVISION}") | ||
| 78 | endif() | ||
| 79 | |||
| 80 | bootstrap_repo(${repo_id} ${repo_url} ${repo_revision}) | ||
| 81 | endif() | ||
| 82 | endforeach() | ||
| 83 | |||
| 84 | # if we have been asked to bootstrap a specific repository (not the default one) and | ||
| 85 | # it couldn't be found in the predefined repository definitions we assume that it's a | ||
| 86 | # URL to a specific repository | ||
| 87 | if(NOT REPOSITORY_TO_BUILD_DEFAULT AND NOT REPOSITORY_TO_BUILD_FOUND) | ||
| 88 | # default to the master branch if no revision has been provided | ||
| 89 | if(NOT REPOSITORY_REVISION) | ||
| 90 | set(REPOSITORY_REVISION "master") | ||
| 91 | endif() | ||
| 92 | |||
| 93 | bootstrap_repo(binary-addons-custom ${REPOSITORY_TO_BUILD} ${REPOSITORY_REVISION}) | ||
| 94 | endif() | ||
diff --git a/project/cmake/addons/bootstrap/README.md b/project/cmake/addons/bootstrap/README.md deleted file mode 100644 index b886b5b..0000000 --- a/project/cmake/addons/bootstrap/README.md +++ /dev/null | |||
| @@ -1,48 +0,0 @@ | |||
| 1 | # KODI ADDON DEFINITIONS BOOTSTRAPPING | ||
| 2 | This directory contains the cmake-based buildsystem for addon definitions | ||
| 3 | bootstrapping which downloads the addon definitions from one or more addon | ||
| 4 | definitions repositories. These addon definitions are then used by the addon | ||
| 5 | buildsystem to figure out which addons and which versions to build. It looks | ||
| 6 | into the "repositories" sub-directory and parses all *.txt files recursively. | ||
| 7 | Each addon definitions repository must have its own <repository>.txt file which | ||
| 8 | must follow the following defined format: | ||
| 9 | ``` | ||
| 10 | <repository> <git-url> <git-revision> | ||
| 11 | ``` | ||
| 12 | where | ||
| 13 | * `<repository>` is the identification of the repository. | ||
| 14 | * `<git-url>` must be the URL of the git repository containing the addon | ||
| 15 | definitions | ||
| 16 | * `<git-revision>` must be a valid git tag/branch/commit in the addon | ||
| 17 | definitions repository's git repository which will be used for the build | ||
| 18 | |||
| 19 | The buildsystem uses the following variables (which can be passed into it when | ||
| 20 | executing cmake with the `-D<variable-name>=<value>` option): | ||
| 21 | * `CMAKE_INSTALL_PREFIX` points to the directory where the downloaded addon | ||
| 22 | definitions will be installed to (defaults to `../addons`). | ||
| 23 | * `BUILD_DIR` points to the directory where the addon definitions repositories | ||
| 24 | will be downloaded to. | ||
| 25 | * `REPOSITORY_TO_BUILD` specifies a single addon definitions repository to be | ||
| 26 | downloaded and processed (defaults to `"all"`). | ||
| 27 | * `REPOSITORY_REVISION` specifies the git revision in the addon definitions | ||
| 28 | repository which will be used for the build. This option is only valid in | ||
| 29 | combination with the `REPOSITORY_TO_BUILD` option (defaults to the git | ||
| 30 | revision specified in the repository's definition file). | ||
| 31 | * `ADDONS_TO_BUILD` is a quoted, space delimited list of `<addon-id>`s that | ||
| 32 | should be bootstrapped (default is `"all"`). | ||
| 33 | |||
| 34 | To trigger the cmake-based buildsystem the following command must be executed | ||
| 35 | with <path> being the path to this directory (absolute or relative, allowing for | ||
| 36 | in-source and out-of-source builds). | ||
| 37 | ``` | ||
| 38 | cmake <path> -G <generator> | ||
| 39 | ``` | ||
| 40 | |||
| 41 | cmake supports multiple generators, see | ||
| 42 | http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list. | ||
| 43 | |||
| 44 | In case of additional options the call might look like this | ||
| 45 | ``` | ||
| 46 | cmake <path> [-G <generator>] \ | ||
| 47 | -DCMAKE_INSTALL_PREFIX="<path-to-install-directory>" | ||
| 48 | ``` \ No newline at end of file | ||
diff --git a/project/cmake/addons/bootstrap/repositories/binary-addons.txt b/project/cmake/addons/bootstrap/repositories/binary-addons.txt deleted file mode 100644 index 8674f06..0000000 --- a/project/cmake/addons/bootstrap/repositories/binary-addons.txt +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | binary-addons https://github.com/xbmc/repo-binary-addons.git master \ No newline at end of file | ||
diff --git a/project/cmake/addons/depends/CMakeLists.txt b/project/cmake/addons/depends/CMakeLists.txt deleted file mode 100644 index 622701d..0000000 --- a/project/cmake/addons/depends/CMakeLists.txt +++ /dev/null | |||
| @@ -1,41 +0,0 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | ||
| 2 | project(kodi-addons-depends) | ||
| 3 | |||
| 4 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) | ||
| 5 | |||
| 6 | if(NOT CMAKE_BUILD_TYPE) | ||
| 7 | set(CMAKE_BUILD_TYPE Release) | ||
| 8 | endif() | ||
| 9 | |||
| 10 | if(NOT CORE_SYSTEM_NAME) | ||
| 11 | string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME) | ||
| 12 | endif() | ||
| 13 | |||
| 14 | include(ExternalProject) | ||
| 15 | |||
| 16 | if(NOT ADDON_DEPENDS_PATH) | ||
| 17 | set(ADDON_DEPENDS_PATH ${PROJECT_SOURCE_DIR}/../build/depends) | ||
| 18 | else() | ||
| 19 | file(TO_CMAKE_PATH "${ADDON_DEPENDS_PATH}" ADDON_DEPENDS_PATH) | ||
| 20 | endif() | ||
| 21 | get_filename_component(ADDON_DEPENDS_PATH "${ADDON_DEPENDS_PATH}" ABSOLUTE) | ||
| 22 | list(APPEND CMAKE_PREFIX_PATH ${ADDON_DEPENDS_PATH}) | ||
| 23 | |||
| 24 | if(NOT BUILD_DIR) | ||
| 25 | set(BUILD_DIR "${CMAKE_BINARY_DIR}/build") | ||
| 26 | else() | ||
| 27 | file(TO_CMAKE_PATH "${BUILD_DIR}" BUILD_DIR) | ||
| 28 | endif() | ||
| 29 | get_filename_component(BUILD_DIR "${BUILD_DIR}" ABSOLUTE) | ||
| 30 | |||
| 31 | ## use add_addon_depends to handle the cmake based dependencies | ||
| 32 | include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/HandleDepends.cmake) | ||
| 33 | add_addon_depends(depends "${PROJECT_SOURCE_DIR}") | ||
| 34 | |||
| 35 | ## if there's a platform-specific sub-directory containing a CMakeLists.txt, add it to the build as well | ||
| 36 | if(EXISTS ${PROJECT_SOURCE_DIR}/${CORE_SYSTEM_NAME}/CMakeLists.txt) | ||
| 37 | message(STATUS "Processing ${CORE_SYSTEM_NAME}") | ||
| 38 | add_subdirectory(${CORE_SYSTEM_NAME}) | ||
| 39 | else() | ||
| 40 | message(STATUS "No platform specific file ${PROJECT_SOURCE_DIR}/${CORE_SYSTEM_NAME}/CMakeLists.txt found") | ||
| 41 | endif() | ||
diff --git a/project/cmake/addons/depends/README b/project/cmake/addons/depends/README deleted file mode 100644 index 584a167..0000000 --- a/project/cmake/addons/depends/README +++ /dev/null | |||
| @@ -1,61 +0,0 @@ | |||
| 1 | KODI ADDON DEPENDENCIES | ||
| 2 | ======================= | ||
| 3 | This directory contains the cmake-based buildsystem for addon dependencies. It | ||
| 4 | looks into the "common" and the "<platform>/cmake" sub-directories and parses | ||
| 5 | all *.txt files recursively. Each dependency must have its own <dependency>.txt | ||
| 6 | file (either in the main sub-directory or in a separate subdirectory of the main | ||
| 7 | subdirectory) which must follow one of the defined formats: | ||
| 8 | * an empty file means that no extra downloads are necessary | ||
| 9 | * <dependency> | ||
| 10 | * <dependency> <url> | ||
| 11 | * <dependency> <git-url> <git-revision> | ||
| 12 | where | ||
| 13 | * <dependency> must be identical to the filename | ||
| 14 | * <url> must be the URL to an archive that is downloaded and extracted. | ||
| 15 | * <git-url> must be the URL of the git repository containing the | ||
| 16 | dependency. | ||
| 17 | * <git-revision> must be a valid git tag/branch/commit in the dependency's git | ||
| 18 | repository which will be used for the build. | ||
| 19 | |||
| 20 | Reserved filenames (for additional information on how to build a dependency) | ||
| 21 | are: | ||
| 22 | * CMakeLists.txt: build instructions for the dependency | ||
| 23 | * install.txt: instructions on how to install the dependency's built files | ||
| 24 | * noinstall.txt: no installation step required (content is ignored) | ||
| 25 | * flags.txt: additional build flags | ||
| 26 | * deps.txt: whitespace separated list of dependencies of this dependency | ||
| 27 | |||
| 28 | The buildsystem uses the following variables (which can be passed into it when | ||
| 29 | executing cmake with the -D<variable-name>=<value> option) to e.g. access | ||
| 30 | specific paths: | ||
| 31 | * CMAKE_BUILD_TYPE specifies the type of the build. This can be either "Debug" | ||
| 32 | or "Release" (default is "Release"). | ||
| 33 | * CMAKE_TOOLCHAIN_FILE can be used to pass a toolchain file into the add-on | ||
| 34 | builds. | ||
| 35 | * CORE_SYSTEM_NAME is the name of the platform (e.g. "linux" or "android") in | ||
| 36 | lower-case (defaults to lowercase(CMAKE_SYSTEM_NAME)). | ||
| 37 | * CORE_SOURCE_DIR points to the root directory of the project (default is the | ||
| 38 | absolute representation of ../../.. starting from this directory). | ||
| 39 | * ADDON_DEPENDS_PATH points to the directory where the built dependencies | ||
| 40 | (their include and library file) will be installed to. | ||
| 41 | * ARCH_DEFINES specifies the platform-specific C/C++ preprocessor defines | ||
| 42 | (defaults to empty). | ||
| 43 | * DEPENDS_TO_BUILD is a quoted, space delimited list of <dependency>s that | ||
| 44 | you want to build (default is "all"). | ||
| 45 | |||
| 46 | To trigger the cmake-based buildsystem the following command must be executed | ||
| 47 | with <path> being the path to this directory (absolute or relative, allowing for | ||
| 48 | in-source and out-of-source builds). | ||
| 49 | |||
| 50 | cmake <path> -G <generator> | ||
| 51 | |||
| 52 | cmake supports multiple generators, see | ||
| 53 | http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list. | ||
| 54 | |||
| 55 | In case of additional options the call might look like this | ||
| 56 | |||
| 57 | cmake <path> [-G <generator>] \ | ||
| 58 | -DCMAKE_BUILD_TYPE=Release \ | ||
| 59 | -DCORE_SOURCE_DIR="<path-to-project-root>" \ | ||
| 60 | -DARCH_DEFINES="-DTARGET_LINUX" \ | ||
| 61 | -DCMAKE_INSTALL_PREFIX="<path-to-install-directory" | ||
diff --git a/project/cmake/addons/depends/common/kodi-platform/deps.txt b/project/cmake/addons/depends/common/kodi-platform/deps.txt deleted file mode 100644 index b953815..0000000 --- a/project/cmake/addons/depends/common/kodi-platform/deps.txt +++ /dev/null | |||
| @@ -1,2 +0,0 @@ | |||
| 1 | tinyxml | ||
| 2 | p8-platform | ||
diff --git a/project/cmake/addons/depends/common/kodi-platform/kodi-platform.txt b/project/cmake/addons/depends/common/kodi-platform/kodi-platform.txt deleted file mode 100644 index 46ef93c..0000000 --- a/project/cmake/addons/depends/common/kodi-platform/kodi-platform.txt +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | kodi-platform https://github.com/xbmc/kodi-platform c8188d82678fec6b784597db69a68e74ff4986b5 | ||
diff --git a/project/cmake/addons/depends/common/p8-platform/p8-platform.txt b/project/cmake/addons/depends/common/p8-platform/p8-platform.txt deleted file mode 100644 index 7db4e36..0000000 --- a/project/cmake/addons/depends/common/p8-platform/p8-platform.txt +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | p8-platform https://github.com/Pulse-Eight/platform.git 38343e0acd6a636ac46139aa666aee4a8d1f13db | ||
diff --git a/project/cmake/addons/depends/common/tinyxml/CMakeLists.txt b/project/cmake/addons/depends/common/tinyxml/CMakeLists.txt deleted file mode 100644 index ec396ee..0000000 --- a/project/cmake/addons/depends/common/tinyxml/CMakeLists.txt +++ /dev/null | |||
| @@ -1,22 +0,0 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | ||
| 2 | project(tinyxml) | ||
| 3 | |||
| 4 | set(SOURCES src/tinystr.cpp | ||
| 5 | src/tinyxml.cpp | ||
| 6 | src/tinyxmlerror.cpp | ||
| 7 | src/tinyxmlparser.cpp) | ||
| 8 | |||
| 9 | if(WIN32) | ||
| 10 | add_definitions(-DWIN32 -D_LIB) | ||
| 11 | endif() | ||
| 12 | add_definitions(-DTIXML_USE_STL) | ||
| 13 | |||
| 14 | add_library(tinyxml ${SOURCES}) | ||
| 15 | |||
| 16 | include_directories(${PROJECT_SOURCE_DIR}/include) | ||
| 17 | |||
| 18 | set(HEADERS ${PROJECT_SOURCE_DIR}/include/tinystr.h | ||
| 19 | ${PROJECT_SOURCE_DIR}/include/tinyxml.h) | ||
| 20 | |||
| 21 | install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include) | ||
| 22 | install(TARGETS tinyxml DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) | ||
diff --git a/project/cmake/addons/depends/common/tinyxml/tinyxml.txt b/project/cmake/addons/depends/common/tinyxml/tinyxml.txt deleted file mode 100644 index f8e05e8..0000000 --- a/project/cmake/addons/depends/common/tinyxml/tinyxml.txt +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | tinyxml http://mirrors.kodi.tv/build-deps/sources/tinyxml-2.6.2_2.tar.gz | ||
diff --git a/project/cmake/addons/depends/windows/CMakeLists.txt b/project/cmake/addons/depends/windows/CMakeLists.txt deleted file mode 100644 index c8739c0..0000000 --- a/project/cmake/addons/depends/windows/CMakeLists.txt +++ /dev/null | |||
| @@ -1,52 +0,0 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | ||
| 2 | project(kodi-addons-depends-windows) | ||
| 3 | |||
| 4 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) | ||
| 5 | |||
| 6 | if(NOT CMAKE_BUILD_TYPE) | ||
| 7 | set(CMAKE_BUILD_TYPE Release) | ||
| 8 | endif() | ||
| 9 | |||
| 10 | include(ExternalProject) | ||
| 11 | |||
| 12 | if(NOT ADDON_DEPENDS_PATH) | ||
| 13 | message(FATAL_ERROR "ADDON_DEPENDS_PATH (${ADDON_DEPENDS_PATH}) is not a valid target directory.") | ||
| 14 | else() | ||
| 15 | file(TO_CMAKE_PATH "${ADDON_DEPENDS_PATH}" ADDON_DEPENDS_PATH) | ||
| 16 | endif() | ||
| 17 | get_filename_component(ADDON_DEPENDS_PATH "${ADDON_DEPENDS_PATH}" ABSOLUTE) | ||
| 18 | list(APPEND CMAKE_PREFIX_PATH ${ADDON_DEPENDS_PATH}) | ||
| 19 | |||
| 20 | if(NOT DEPENDS_TO_BUILD) | ||
| 21 | set(DEPENDS_TO_BUILD "all") | ||
| 22 | endif() | ||
| 23 | |||
| 24 | function(add_internal id url inputfile) | ||
| 25 | externalproject_add(${id} | ||
| 26 | URL ${url} | ||
| 27 | PREFIX build/${id} | ||
| 28 | CONFIGURE_COMMAND "" | ||
| 29 | BUILD_COMMAND "" | ||
| 30 | INSTALL_COMMAND ${CMAKE_COMMAND} | ||
| 31 | -DINPUTDIR=${PROJECT_BINARY_DIR}/build/${id}/src/${id} | ||
| 32 | -DINPUTFILE=${inputfile} | ||
| 33 | -DDESTDIR=${ADDON_DEPENDS_PATH} | ||
| 34 | -P ${PROJECT_SOURCE_DIR}/Install.cmake | ||
| 35 | ) | ||
| 36 | endfunction() | ||
| 37 | |||
| 38 | file(GLOB_RECURSE download_input_files prebuilt/*.txt) | ||
| 39 | foreach(file ${download_input_files}) | ||
| 40 | if(NOT file MATCHES install.txt) | ||
| 41 | file(STRINGS ${file} def) | ||
| 42 | get_filename_component(dir ${file} DIRECTORY) | ||
| 43 | string(REPLACE " " ";" def ${def}) | ||
| 44 | list(GET def 0 id) | ||
| 45 | |||
| 46 | list(FIND DEPENDS_TO_BUILD ${id} idx) | ||
| 47 | if(idx GREATER -1 OR DEPENDS_TO_BUILD STREQUAL "all") | ||
| 48 | list(GET def 1 url) | ||
| 49 | add_internal(${id} ${url} ${dir}/install.txt) | ||
| 50 | endif() | ||
| 51 | endif() | ||
| 52 | endforeach() | ||
diff --git a/project/cmake/addons/depends/windows/Install.cmake b/project/cmake/addons/depends/windows/Install.cmake deleted file mode 100644 index 9a3adbb..0000000 --- a/project/cmake/addons/depends/windows/Install.cmake +++ /dev/null | |||
| @@ -1,24 +0,0 @@ | |||
| 1 | if(EXISTS "${INPUTFILE}") | ||
| 2 | # if there's an input file we use it to determine which files to copy where | ||
| 3 | file(STRINGS ${INPUTFILE} FILES) | ||
| 4 | string(REPLACE "\n" ";" FILES "${FILES}") | ||
| 5 | foreach(file ${FILES}) | ||
| 6 | string(REPLACE " " ";" file "${file}") | ||
| 7 | list(GET file 0 dir) | ||
| 8 | list(GET file 1 dest) | ||
| 9 | list(LENGTH file deflength) | ||
| 10 | if(deflength GREATER 2) | ||
| 11 | list(GET file 2 copy) | ||
| 12 | endif() | ||
| 13 | file(GLOB files ${INPUTDIR}/${dir}) | ||
| 14 | foreach(instfile ${files}) | ||
| 15 | file(COPY ${instfile} DESTINATION ${DESTDIR}/${dest}) | ||
| 16 | if(copy) | ||
| 17 | file(COPY ${instfile} DESTINATION ${DESTDIR}/${copy}) | ||
| 18 | endif() | ||
| 19 | endforeach() | ||
| 20 | endforeach() | ||
| 21 | else() | ||
| 22 | # otherwise we assume that the content of the extracted archive is already well-formed and can just be copied | ||
| 23 | file(COPY ${INPUTDIR}/${dir} DESTINATION ${DESTDIR}) | ||
| 24 | endif() \ No newline at end of file | ||
diff --git a/project/cmake/addons/depends/windows/README b/project/cmake/addons/depends/windows/README deleted file mode 100644 index 67dc594..0000000 --- a/project/cmake/addons/depends/windows/README +++ /dev/null | |||
| @@ -1,19 +0,0 @@ | |||
| 1 | KODI WIN32 ADDON DEPENDENCIES | ||
| 2 | ============================= | ||
| 3 | This directory contains the cmake-based buildsystem for dependencies (currently | ||
| 4 | only prebuilt) used by one or multiple addons. The buildsystem looks into the | ||
| 5 | "prebuilt" sub-directory, downloads all the specified dependencies, extracts | ||
| 6 | them and places them into the "depends" sub-directory. | ||
| 7 | |||
| 8 | To trigger the cmake-based buildsystem the following command must be executed | ||
| 9 | with <path> being the path to this directory (absolute or relative, allowing for | ||
| 10 | in-source and out-of-source builds). | ||
| 11 | |||
| 12 | cmake <path> [-G <generator>] | ||
| 13 | |||
| 14 | cmake supports multiple generators, see | ||
| 15 | http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list. | ||
| 16 | For win32 builds one of the "Visual Studio XX" or the "NMake Makefiles" | ||
| 17 | generators is preferred. For the "NMake Makefiles" generator to work the above | ||
| 18 | command must be called from an environment prepared for VC++ builds (see | ||
| 19 | http://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx). | ||
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/CMakeLists.txt b/project/cmake/addons/depends/windows/cmake/mingw/CMakeLists.txt deleted file mode 100644 index 2c2c4b8..0000000 --- a/project/cmake/addons/depends/windows/cmake/mingw/CMakeLists.txt +++ /dev/null | |||
| @@ -1,33 +0,0 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | ||
| 2 | project(mingw) | ||
| 3 | |||
| 4 | function(generate_mingw32_wrapper cmd) | ||
| 5 | set(CMD ${cmd}) | ||
| 6 | configure_file(${PROJECT_SOURCE_DIR}/mingw32-cmd.bat.in ${MINGW_PATH}/bin/${CMD}.bat @ONLY) | ||
| 7 | endfunction() | ||
| 8 | |||
| 9 | get_filename_component(CORE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../../../.. REALPATH) | ||
| 10 | |||
| 11 | set(MSYS_PATH "${CORE_SOURCE_DIR}/project/BuildDependencies/msys64") | ||
| 12 | set(MINGW_PATH "${MSYS_PATH}/mingw32") | ||
| 13 | |||
| 14 | # configure the MinGW toolchain file | ||
| 15 | configure_file(${PROJECT_SOURCE_DIR}/Toolchain_mingw32.cmake.in ${CMAKE_INSTALL_PREFIX}/Toolchain_mingw32.cmake @ONLY) | ||
| 16 | |||
| 17 | # configure MinGWConfig.cmake | ||
| 18 | configure_file(${PROJECT_SOURCE_DIR}/MinGWConfig.cmake.in ${CMAKE_INSTALL_PREFIX}/MinGWConfig.cmake) | ||
| 19 | |||
| 20 | # TODO: MinGW GCC 5.3.0-1 comes without cc.exe, Remove this once package is bumped to 5.3.0-p2 | ||
| 21 | # See https://github.com/Alexpux/MINGW-packages/pull/1034 | ||
| 22 | if(NOT EXISTS ${MINGW_PATH}/bin/cc.exe) | ||
| 23 | execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${MINGW_PATH}/bin/gcc.exe ${MINGW_PATH}/bin/cc.exe) | ||
| 24 | endif() | ||
| 25 | |||
| 26 | # configure the MinGW wrapper batch scripts | ||
| 27 | generate_mingw32_wrapper("make") | ||
| 28 | generate_mingw32_wrapper("gcc") | ||
| 29 | generate_mingw32_wrapper("cc") | ||
| 30 | generate_mingw32_wrapper("g++") | ||
| 31 | generate_mingw32_wrapper("ar") | ||
| 32 | generate_mingw32_wrapper("ld") | ||
| 33 | generate_mingw32_wrapper("windres") | ||
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/MinGWConfig.cmake.in b/project/cmake/addons/depends/windows/cmake/mingw/MinGWConfig.cmake.in deleted file mode 100644 index 2d6baa7..0000000 --- a/project/cmake/addons/depends/windows/cmake/mingw/MinGWConfig.cmake.in +++ /dev/null | |||
| @@ -1,3 +0,0 @@ | |||
| 1 | set(MINGW_INCLUDE_DIRS @MINGW_PATH@/include) | ||
| 2 | set(MINGW_MAKE @MINGW_PATH@/bin/make.bat -j$ENV{NUMBER_OF_PROCESSORS}) | ||
| 3 | set(MINGW_FOUND 1) | ||
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/Toolchain_mingw32.cmake.in b/project/cmake/addons/depends/windows/cmake/mingw/Toolchain_mingw32.cmake.in deleted file mode 100644 index 01d281d..0000000 --- a/project/cmake/addons/depends/windows/cmake/mingw/Toolchain_mingw32.cmake.in +++ /dev/null | |||
| @@ -1,17 +0,0 @@ | |||
| 1 | set(CMAKE_SYSTEM_VERSION 1) | ||
| 2 | set(CMAKE_SYSTEM_NAME Windows) | ||
| 3 | |||
| 4 | set(CMAKE_FIND_ROOT_PATH @CMAKE_FIND_ROOT_PATH@ @CMAKE_INSTALL_PREFIX@ @MSYS_PATH@ @MINGW_PATH@) | ||
| 5 | |||
| 6 | # specify the cross compiler | ||
| 7 | set(CMAKE_C_COMPILER @MINGW_PATH@/bin/gcc.bat) | ||
| 8 | set(CMAKE_CXX_COMPILER @MINGW_PATH@/bin/g++.bat) | ||
| 9 | set(CMAKE_AR @MINGW_PATH@/bin/ar.bat CACHE FILEPATH "Archiver") | ||
| 10 | set(CMAKE_LINKER @MINGW_PATH@/bin/ld.bat CACHE FILEPATH "Linker") | ||
| 11 | SET(CMAKE_RC_COMPILER @MINGW_PATH@/bin/windres.bat) | ||
| 12 | |||
| 13 | # search for programs in the build host directories | ||
| 14 | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | ||
| 15 | # for libraries and headers in the target directories | ||
| 16 | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | ||
| 17 | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) | ||
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/mingw.txt b/project/cmake/addons/depends/windows/cmake/mingw/mingw.txt deleted file mode 100644 index 90aa6ae..0000000 --- a/project/cmake/addons/depends/windows/cmake/mingw/mingw.txt +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | mingw | ||
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/mingw32-cmd.bat.in b/project/cmake/addons/depends/windows/cmake/mingw/mingw32-cmd.bat.in deleted file mode 100644 index 44a0ea2..0000000 --- a/project/cmake/addons/depends/windows/cmake/mingw/mingw32-cmd.bat.in +++ /dev/null | |||
| @@ -1,6 +0,0 @@ | |||
| 1 | @ECHO OFF | ||
| 2 | SETLOCAL | ||
| 3 | |||
| 4 | SET PATH=@MINGW_PATH@/bin;@MSYS_PATH@/usr/bin;%PATH% | ||
| 5 | @CMD@.exe %* | ||
| 6 | |||
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/noinstall.txt b/project/cmake/addons/depends/windows/cmake/mingw/noinstall.txt deleted file mode 100644 index e69de29..0000000 --- a/project/cmake/addons/depends/windows/cmake/mingw/noinstall.txt +++ /dev/null | |||
diff --git a/project/cmake/addons/depends/windows/cmake/msys/CMakeLists.txt b/project/cmake/addons/depends/windows/cmake/msys/CMakeLists.txt deleted file mode 100644 index 1c0536e..0000000 --- a/project/cmake/addons/depends/windows/cmake/msys/CMakeLists.txt +++ /dev/null | |||
| @@ -1,5 +0,0 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | ||
| 2 | project(msys LANGUAGES NONE) | ||
| 3 | |||
| 4 | # This is an empty dummy dependency because a lot of game addons depend on it. | ||
| 5 | # After they got fixed, this can be removed. | ||
diff --git a/project/cmake/addons/depends/windows/cmake/msys/msys.txt b/project/cmake/addons/depends/windows/cmake/msys/msys.txt deleted file mode 100644 index 00de9c2..0000000 --- a/project/cmake/addons/depends/windows/cmake/msys/msys.txt +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | msys | ||
diff --git a/project/cmake/addons/depends/windows/cmake/msys/noinstall.txt b/project/cmake/addons/depends/windows/cmake/msys/noinstall.txt deleted file mode 100644 index e69de29..0000000 --- a/project/cmake/addons/depends/windows/cmake/msys/noinstall.txt +++ /dev/null | |||
diff --git a/project/cmake/addons/depends/windows/prebuilt/README b/project/cmake/addons/depends/windows/prebuilt/README deleted file mode 100644 index a0c70d6..0000000 --- a/project/cmake/addons/depends/windows/prebuilt/README +++ /dev/null | |||
| @@ -1,21 +0,0 @@ | |||
| 1 | KODI WIN32 PREBUILT ADDON DEPENDENCIES | ||
| 2 | ====================================== | ||
| 3 | This directory contains a file or sub-directory for every prebuilt dependency | ||
| 4 | used by one of the addons being built. There are two different modes supported. | ||
| 5 | Both include a file named <library-id>.txt which must follow the defined format | ||
| 6 | <library-id> <download-url> | ||
| 7 | |||
| 8 | If the archive, which the <download-url> points at, contains | ||
| 9 | * only the necessary files and in the proper directory structure (i.e. an | ||
| 10 | "include" and a "lib" directory) then the file must be put into this | ||
| 11 | directory and nothing else is needed. | ||
| 12 | * unnecessary files and/or does not follow the defined directory structure | ||
| 13 | (i.e. an "include" and a "lib" directory) then the file must be put into a | ||
| 14 | sub-directory named <library-id>. Furthermore an additional file called | ||
| 15 | "install.txt" must be placed in that sub-directory. install.txt contains a | ||
| 16 | line for every path/directory/file with a destination where it must be copied | ||
| 17 | to. It must follow the defined format | ||
| 18 | <source> <destination> [<copy-destination>] | ||
| 19 | where <source> must be an existing file, directory or a path containing | ||
| 20 | wildcards, <destination> and the optional <copy-destination> must be existing | ||
| 21 | directories. | ||
