diff options
Diffstat (limited to 'project/cmake/addons/CMakeLists.txt')
| -rw-r--r-- | project/cmake/addons/CMakeLists.txt | 122 |
1 files changed, 70 insertions, 52 deletions
diff --git a/project/cmake/addons/CMakeLists.txt b/project/cmake/addons/CMakeLists.txt index 982d977..96e544b 100644 --- a/project/cmake/addons/CMakeLists.txt +++ b/project/cmake/addons/CMakeLists.txt | |||
| @@ -1,12 +1,6 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | ||
| 1 | project(kodi-addons) | 2 | project(kodi-addons) |
| 2 | 3 | ||
| 3 | if(WIN32) | ||
| 4 | # there seems to be a bug in the CMake generator implementation in CMake 2.8.x releases for WIN32 | ||
| 5 | cmake_minimum_required(VERSION 3.0) | ||
| 6 | else() | ||
| 7 | cmake_minimum_required(VERSION 2.8) | ||
| 8 | endif() | ||
| 9 | |||
| 10 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) | 4 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) |
| 11 | 5 | ||
| 12 | option(ADDON_TARBALL_CACHING "Cache downloaded addon source tarballs?" ON) | 6 | option(ADDON_TARBALL_CACHING "Cache downloaded addon source tarballs?" ON) |
| @@ -31,14 +25,17 @@ endif() | |||
| 31 | include(ExternalProject) | 25 | include(ExternalProject) |
| 32 | 26 | ||
| 33 | ### setup all the necessary paths | 27 | ### setup all the necessary paths |
| 34 | if(NOT APP_ROOT AND NOT XBMCROOT) | 28 | if(APP_ROOT) |
| 35 | set(APP_ROOT ${PROJECT_SOURCE_DIR}/../../..) | 29 | set(CORE_SOURCE_DIR ${APP_ROOT}) |
| 36 | elseif(NOT APP_ROOT) | 30 | unset(APP_ROOT) |
| 37 | file(TO_CMAKE_PATH "${XBMCROOT}" 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}/../../..) | ||
| 38 | else() | 35 | else() |
| 39 | file(TO_CMAKE_PATH "${APP_ROOT}" APP_ROOT) | 36 | file(TO_CMAKE_PATH "${CORE_SOURCE_DIR}" CORE_SOURCE_DIR) |
| 40 | endif() | 37 | endif() |
| 41 | get_filename_component(APP_ROOT "${APP_ROOT}" ABSOLUTE) | 38 | get_filename_component(CORE_SOURCE_DIR "${CORE_SOURCE_DIR}" ABSOLUTE) |
| 42 | 39 | ||
| 43 | if(NOT BUILD_DIR) | 40 | if(NOT BUILD_DIR) |
| 44 | set(BUILD_DIR "${CMAKE_BINARY_DIR}/build") | 41 | set(BUILD_DIR "${CMAKE_BINARY_DIR}/build") |
| @@ -47,29 +44,29 @@ else() | |||
| 47 | endif() | 44 | endif() |
| 48 | get_filename_component(BUILD_DIR "${BUILD_DIR}" ABSOLUTE) | 45 | get_filename_component(BUILD_DIR "${BUILD_DIR}" ABSOLUTE) |
| 49 | 46 | ||
| 50 | if(NOT DEPENDS_PATH) | 47 | if(NOT ADDON_DEPENDS_PATH) |
| 51 | set(DEPENDS_PATH "${BUILD_DIR}/depends") | 48 | set(ADDON_DEPENDS_PATH "${BUILD_DIR}/depends") |
| 52 | else() | 49 | else() |
| 53 | file(TO_CMAKE_PATH "${DEPENDS_PATH}" DEPENDS_PATH) | 50 | file(TO_CMAKE_PATH "${ADDON_DEPENDS_PATH}" ADDON_DEPENDS_PATH) |
| 54 | endif() | 51 | endif() |
| 55 | get_filename_component(DEPENDS_PATH "${DEPENDS_PATH}" ABSOLUTE) | 52 | get_filename_component(ADDON_DEPENDS_PATH "${ADDON_DEPENDS_PATH}" ABSOLUTE) |
| 56 | 53 | ||
| 57 | if(NOT PLATFORM_DIR) | 54 | if(NOT PLATFORM_DIR) |
| 58 | set(PLATFORM_DIR ${APP_ROOT}/project/cmake/platform/${CORE_SYSTEM_NAME}) | 55 | set(PLATFORM_DIR ${CORE_SOURCE_DIR}/project/cmake/platform/${CORE_SYSTEM_NAME}) |
| 59 | file(TO_CMAKE_PATH "${PLATFORM_DIR}" PLATFORM_DIR) | 56 | file(TO_CMAKE_PATH "${PLATFORM_DIR}" PLATFORM_DIR) |
| 60 | endif() | 57 | endif() |
| 61 | 58 | ||
| 62 | # make sure CMAKE_PREFIX_PATH is set | 59 | # make sure CMAKE_PREFIX_PATH is set |
| 63 | if(NOT CMAKE_PREFIX_PATH) | 60 | if(NOT CMAKE_PREFIX_PATH) |
| 64 | set(CMAKE_PREFIX_PATH "${DEPENDS_PATH}") | 61 | set(CMAKE_PREFIX_PATH "${ADDON_DEPENDS_PATH}") |
| 65 | else() | 62 | else() |
| 66 | file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH) | 63 | file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH) |
| 67 | list(APPEND CMAKE_PREFIX_PATH "${DEPENDS_PATH}") | 64 | list(APPEND CMAKE_PREFIX_PATH "${ADDON_DEPENDS_PATH}") |
| 68 | endif() | 65 | endif() |
| 69 | 66 | ||
| 70 | # check for autoconf stuff to pass on | 67 | # check for autoconf stuff to pass on |
| 71 | if(AUTOCONF_FILES) | 68 | if(AUTOCONF_FILES) |
| 72 | separate_arguments(AUTOCONF_FILES) | 69 | string(REPLACE " " ";" AUTOCONF_FILES ${AUTOCONF_FILES}) |
| 73 | set(CROSS_AUTOCONF "yes") | 70 | set(CROSS_AUTOCONF "yes") |
| 74 | endif() | 71 | endif() |
| 75 | 72 | ||
| @@ -80,8 +77,9 @@ list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}) | |||
| 80 | 77 | ||
| 81 | set(BUILD_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} | 78 | set(BUILD_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} |
| 82 | -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> | 79 | -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> |
| 83 | -DPACKAGE_CONFIG_PATH=${DEPENDS_PATH}/lib/pkgconfig | 80 | -DPACKAGE_CONFIG_PATH=${ADDON_DEPENDS_PATH}/lib/pkgconfig |
| 84 | -DDEPENDS_PATH=${DEPENDS_PATH} | 81 | -DADDON_DEPENDS_PATH=${ADDON_DEPENDS_PATH} |
| 82 | -DOVERRIDE_PATHS=${OVERRIDE_PATHS} | ||
| 85 | -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} | 83 | -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} |
| 86 | -DCMAKE_USER_MAKE_RULES_OVERRIDE=${CMAKE_USER_MAKE_RULES_OVERRIDE} | 84 | -DCMAKE_USER_MAKE_RULES_OVERRIDE=${CMAKE_USER_MAKE_RULES_OVERRIDE} |
| 87 | -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX=${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX} | 85 | -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX=${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX} |
| @@ -108,13 +106,13 @@ if(PACKAGE_ZIP) | |||
| 108 | endif() | 106 | endif() |
| 109 | list(APPEND BUILD_ARGS -DPACKAGE_DIR=${PACKAGE_DIR}) | 107 | list(APPEND BUILD_ARGS -DPACKAGE_DIR=${PACKAGE_DIR}) |
| 110 | 108 | ||
| 111 | MESSAGE(STATUS "ZIP packaging enabled (destination: ${PACKAGE_DIR})") | 109 | message(STATUS "ZIP packaging enabled (destination: ${PACKAGE_DIR})") |
| 112 | endif() | 110 | endif() |
| 113 | 111 | ||
| 114 | if(CMAKE_TOOLCHAIN_FILE) | 112 | if(CMAKE_TOOLCHAIN_FILE) |
| 115 | list(APPEND BUILD_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) | 113 | list(APPEND BUILD_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) |
| 116 | MESSAGE(STATUS "Toolchain specified") | 114 | message(STATUS "Toolchain specified") |
| 117 | MESSAGE(STATUS ${BUILD_ARGS}) | 115 | message(STATUS ${BUILD_ARGS}) |
| 118 | endif() | 116 | endif() |
| 119 | 117 | ||
| 120 | if(NOT ADDONS_TO_BUILD) | 118 | if(NOT ADDONS_TO_BUILD) |
| @@ -122,7 +120,7 @@ if(NOT ADDONS_TO_BUILD) | |||
| 122 | else() | 120 | else() |
| 123 | string(STRIP "${ADDONS_TO_BUILD}" ADDONS_TO_BUILD) | 121 | string(STRIP "${ADDONS_TO_BUILD}" ADDONS_TO_BUILD) |
| 124 | message(STATUS "Building following addons: ${ADDONS_TO_BUILD}") | 122 | message(STATUS "Building following addons: ${ADDONS_TO_BUILD}") |
| 125 | separate_arguments(ADDONS_TO_BUILD) | 123 | string(REPLACE " " ";" ADDONS_TO_BUILD ${ADDONS_TO_BUILD}) |
| 126 | endif() | 124 | endif() |
| 127 | 125 | ||
| 128 | if(NOT ADDONS_DEFINITION_DIR) | 126 | if(NOT ADDONS_DEFINITION_DIR) |
| @@ -133,12 +131,14 @@ endif() | |||
| 133 | get_filename_component(ADDONS_DEFINITION_DIR "${ADDONS_DEFINITION_DIR}" ABSOLUTE) | 131 | get_filename_component(ADDONS_DEFINITION_DIR "${ADDONS_DEFINITION_DIR}" ABSOLUTE) |
| 134 | 132 | ||
| 135 | if(ADDON_SRC_PREFIX) | 133 | if(ADDON_SRC_PREFIX) |
| 136 | get_filename_component(ADDON_SRC_PREFIX "${ADDON_SRC_PREFIX}" ABSOLUTE) | 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}") | 137 | message(STATUS "Overriding addon source directory prefix: ${ADDON_SRC_PREFIX}") |
| 138 | endif() | 138 | endif() |
| 139 | 139 | ||
| 140 | if(NOT APP_LIB_DIR) | 140 | if(NOT APP_LIB_DIR) |
| 141 | set(APP_LIB_DIR "${DEPENDS_PATH}/lib/kodi") | 141 | set(APP_LIB_DIR "${ADDON_DEPENDS_PATH}/lib/kodi") |
| 142 | else() | 142 | else() |
| 143 | file(TO_CMAKE_PATH "${APP_LIB_DIR}" APP_LIB_DIR) | 143 | file(TO_CMAKE_PATH "${APP_LIB_DIR}" APP_LIB_DIR) |
| 144 | endif() | 144 | endif() |
| @@ -155,7 +155,7 @@ if(EXISTS ${PLATFORM_DIR}/defines.txt) | |||
| 155 | endif() | 155 | endif() |
| 156 | 156 | ||
| 157 | # include check_target_platform() function | 157 | # include check_target_platform() function |
| 158 | include(${APP_ROOT}/project/cmake/scripts/common/check_target_platform.cmake) | 158 | include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/CheckTargetPlatform.cmake) |
| 159 | 159 | ||
| 160 | set(ADDON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) | 160 | set(ADDON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) |
| 161 | if(NOT WIN32) | 161 | if(NOT WIN32) |
| @@ -164,21 +164,23 @@ if(NOT WIN32) | |||
| 164 | if(NOT ${can_write} AND CMAKE_SYSTEM_NAME STREQUAL "Linux") | 164 | if(NOT ${can_write} AND CMAKE_SYSTEM_NAME STREQUAL "Linux") |
| 165 | set(NEED_SUDO TRUE) | 165 | set(NEED_SUDO TRUE) |
| 166 | set(ADDON_INSTALL_DIR ${CMAKE_BINARY_DIR}/.install) | 166 | set(ADDON_INSTALL_DIR ${CMAKE_BINARY_DIR}/.install) |
| 167 | message(STATUS "NEED_SUDO: ${NEED_SUDO}") | 167 | list(APPEND BUILD_ARGS -DOVERRIDE_PATHS=ON) |
| 168 | message(STATUS "NEED_SUDO: ${NEED_SUDO} (no write permission for ${CMAKE_INSTALL_PREFIX})") | ||
| 168 | endif() | 169 | endif() |
| 169 | endif() | 170 | endif() |
| 170 | 171 | ||
| 171 | ### prepare the build environment for the binary addons | 172 | ### prepare the build environment for the binary addons |
| 172 | # copy the prepare-env.cmake script to the depends path so that we can include it | 173 | # copy the PrepareEnv.cmake script to the depends path so that we can include it |
| 173 | file(COPY ${APP_ROOT}/project/cmake/scripts/common/prepare-env.cmake DESTINATION ${APP_LIB_DIR}) | 174 | file(COPY ${CORE_SOURCE_DIR}/project/cmake/scripts/common/PrepareEnv.cmake DESTINATION ${APP_LIB_DIR}) |
| 174 | 175 | ||
| 175 | # add the location of prepare-env.cmake to CMAKE_MODULE_PATH so that it is found | 176 | # add the location of PrepareEnv.cmake to CMAKE_MODULE_PATH so that it is found |
| 176 | list(APPEND CMAKE_MODULE_PATH ${APP_LIB_DIR}) | 177 | list(APPEND CMAKE_MODULE_PATH ${APP_LIB_DIR}) |
| 177 | 178 | ||
| 178 | # include prepare-env.cmake which contains the logic to install the addon header bindings etc | 179 | # include PrepareEnv.cmake which contains the logic to install the addon header bindings etc |
| 179 | include(prepare-env) | 180 | include(PrepareEnv) |
| 180 | 181 | ||
| 181 | ### add the depends subdirectory for any general dependencies | 182 | ### add the depends subdirectory for any general dependencies |
| 183 | message(STATUS "\n-- ---- Preparing general dependencies ----") | ||
| 182 | add_subdirectory(depends) | 184 | add_subdirectory(depends) |
| 183 | 185 | ||
| 184 | # add a custom target "package-addons" which will package and install all addons | 186 | # add a custom target "package-addons" which will package and install all addons |
| @@ -198,12 +200,13 @@ if(NOT addons) | |||
| 198 | file(MAKE_DIRECTORY ${BOOTSTRAP_BUILD_DIR}) | 200 | file(MAKE_DIRECTORY ${BOOTSTRAP_BUILD_DIR}) |
| 199 | endif() | 201 | endif() |
| 200 | 202 | ||
| 201 | string (REPLACE ";" " " ADDONS_TO_BUILD_STR "${ADDONS_TO_BUILD}") | 203 | string(REPLACE ";" " " ADDONS_TO_BUILD_STR "${ADDONS_TO_BUILD}") |
| 202 | # generate the bootstrap buildsystem | 204 | # generate the bootstrap buildsystem |
| 203 | execute_process(COMMAND ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR}/bootstrap | 205 | execute_process(COMMAND ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR}/bootstrap |
| 204 | -DCMAKE_INSTALL_PREFIX:PATH=${ADDONS_DEFINITION_DIR} | 206 | -DCMAKE_INSTALL_PREFIX:PATH=${ADDONS_DEFINITION_DIR} |
| 205 | -DBUILD_DIR:PATH=${BOOTSTRAP_BUILD_DIR} | 207 | -DBUILD_DIR:PATH=${BOOTSTRAP_BUILD_DIR} |
| 206 | -DADDONS_TO_BUILD:STRING=${ADDONS_TO_BUILD_STR} | 208 | -DADDONS_TO_BUILD:STRING=${ADDONS_TO_BUILD_STR} |
| 209 | -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} | ||
| 207 | WORKING_DIRECTORY ${BOOTSTRAP_BUILD_DIR}) | 210 | WORKING_DIRECTORY ${BOOTSTRAP_BUILD_DIR}) |
| 208 | 211 | ||
| 209 | # execute the generated bootstrap buildsystem | 212 | # execute the generated bootstrap buildsystem |
| @@ -218,10 +221,14 @@ if(NOT addons) | |||
| 218 | endif() | 221 | endif() |
| 219 | endif() | 222 | endif() |
| 220 | 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 | |||
| 221 | foreach(addon ${addons}) | 228 | foreach(addon ${addons}) |
| 222 | if(NOT (addon MATCHES platforms.txt)) | 229 | if(NOT (addon MATCHES platforms.txt)) |
| 223 | file(STRINGS ${addon} def) | 230 | file(STRINGS ${addon} def) |
| 224 | separate_arguments(def) | 231 | string(REPLACE " " ";" def ${def}) |
| 225 | list(GET def 0 id) | 232 | list(GET def 0 id) |
| 226 | 233 | ||
| 227 | set(ADDON_FOUND FALSE) | 234 | set(ADDON_FOUND FALSE) |
| @@ -236,17 +243,18 @@ foreach(addon ${addons}) | |||
| 236 | endif() | 243 | endif() |
| 237 | 244 | ||
| 238 | if(ADDON_FOUND) | 245 | if(ADDON_FOUND) |
| 239 | get_filename_component(dir ${addon} PATH) | 246 | message(STATUS "\n-- ---- Configuring addon ${addon} ----") |
| 247 | set(SUPPORTED_ADDON_FOUND TRUE) | ||
| 248 | |||
| 249 | get_filename_component(dir ${addon} DIRECTORY) | ||
| 240 | 250 | ||
| 241 | # check if the addon has a platforms.txt | 251 | # check if the addon has a platforms.txt |
| 242 | set(platform_found FALSE) | 252 | set(platform_found FALSE) |
| 243 | check_target_platform(${dir} ${CORE_SYSTEM_NAME} platform_found) | 253 | check_target_platform(${dir} ${CORE_SYSTEM_NAME} platform_found) |
| 244 | 254 | ||
| 245 | if (${platform_found}) | 255 | if(${platform_found}) |
| 246 | # make sure the output directory is clean | 256 | # make sure the output directory is clean |
| 247 | if(EXISTS "${CMAKE_INSTALL_PREFIX}/${id}") | 257 | file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}/${id}/") |
| 248 | file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}/${id}/") | ||
| 249 | endif() | ||
| 250 | 258 | ||
| 251 | # get the URL and revision of the addon | 259 | # get the URL and revision of the addon |
| 252 | list(LENGTH def deflength) | 260 | list(LENGTH def deflength) |
| @@ -324,9 +332,7 @@ foreach(addon ${addons}) | |||
| 324 | endif() | 332 | endif() |
| 325 | 333 | ||
| 326 | # remove any previously extracted version of the addon | 334 | # remove any previously extracted version of the addon |
| 327 | if(EXISTS "${BUILD_DIR}/${id}") | 335 | file(REMOVE_RECURSE "${BUILD_DIR}/${id}") |
| 328 | file(REMOVE_RECURSE "${BUILD_DIR}/${id}") | ||
| 329 | endif() | ||
| 330 | 336 | ||
| 331 | # extract the addon from the archive | 337 | # extract the addon from the archive |
| 332 | execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzvf ${BUILD_DIR}/download/${archive_name}.tar.gz | 338 | execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzvf ${BUILD_DIR}/download/${archive_name}.tar.gz |
| @@ -365,7 +371,7 @@ foreach(addon ${addons}) | |||
| 365 | set(${id}_DEPENDS_DIR ${SOURCE_DIR}/depends) | 371 | set(${id}_DEPENDS_DIR ${SOURCE_DIR}/depends) |
| 366 | 372 | ||
| 367 | if(EXISTS ${${id}_DEPENDS_DIR}) | 373 | if(EXISTS ${${id}_DEPENDS_DIR}) |
| 368 | include(${APP_ROOT}/project/cmake/scripts/common/handle-depends.cmake) | 374 | include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/HandleDepends.cmake) |
| 369 | add_addon_depends(${id} ${${id}_DEPENDS_DIR}) | 375 | add_addon_depends(${id} ${${id}_DEPENDS_DIR}) |
| 370 | if(${id}_DEPS AND NOT "${${id}_DEPS}" STREQUAL "") | 376 | if(${id}_DEPS AND NOT "${${id}_DEPS}" STREQUAL "") |
| 371 | message(STATUS "${id} DEPENDENCIES: ${${id}_DEPS}") | 377 | message(STATUS "${id} DEPENDENCIES: ${${id}_DEPS}") |
| @@ -401,16 +407,28 @@ foreach(addon ${addons}) | |||
| 401 | endif() | 407 | endif() |
| 402 | endif() | 408 | endif() |
| 403 | endforeach() | 409 | endforeach() |
| 410 | message(STATUS "") | ||
| 404 | 411 | ||
| 405 | if(NEED_SUDO) | 412 | if(NEED_SUDO) |
| 406 | add_custom_target(install | 413 | add_custom_target(sudo-install |
| 407 | COMMAND ${CMAKE_COMMAND} -E echo "\n\n" | 414 | COMMAND ${CMAKE_COMMAND} -E echo "sudo rights needed to install to ${CMAKE_INSTALL_PREFIX}\n" |
| 408 | COMMAND ${CMAKE_COMMAND} -E echo "WARNING: sudo rights needed to install to ${CMAKE_INSTALL_PREFIX}\n" | ||
| 409 | COMMAND sudo ${CMAKE_COMMAND} -E copy_directory ${ADDON_INSTALL_DIR}/ ${CMAKE_INSTALL_PREFIX}/ | 415 | COMMAND sudo ${CMAKE_COMMAND} -E copy_directory ${ADDON_INSTALL_DIR}/ ${CMAKE_INSTALL_PREFIX}/ |
| 410 | COMMAND sudo ${CMAKE_COMMAND} -E remove_directory ${ADDON_INSTALL_DIR}/ | ||
| 411 | COMMAND sudo -k) | 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}).") | ||
| 412 | endif() | 429 | endif() |
| 413 | 430 | ||
| 414 | # add custom target "supported_addons" that returns all addons that are supported on this platform | 431 | # add custom target "supported_addons" that returns all addons that are supported on this platform |
| 415 | string(REPLACE ";" " " ALL_ADDONS_BUILDING "${ALL_ADDONS_BUILDING}") | 432 | string(REPLACE ";" " " ALL_ADDONS_BUILDING "${ALL_ADDONS_BUILDING}") |
| 416 | add_custom_target(supported_addons COMMAND ${CMAKE_COMMAND} -E echo "ALL_ADDONS_BUILDING: ${ALL_ADDONS_BUILDING}" VERBATIM) \ No newline at end of file | 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) | ||
