diff options
author | montellese <montellese@xbmc.org> | 2014-11-01 00:02:56 +0100 |
---|---|---|
committer | montellese <montellese@xbmc.org> | 2014-11-01 00:19:52 +0100 |
commit | 683e36e73c776cc8ce7653c1ba5abebe731aa9a9 (patch) | |
tree | c1ea7f091c60997679fcca84f39cf30f96a7142c | |
parent | eda7cc530f9770879a771252179fe4872b878ddf (diff) |
cmake: rebrand from xbmc to kodi with backwards compatibility
22 files changed, 117 insertions, 86 deletions
diff --git a/.gitignore b/.gitignore index 124a1a4d26..88753aaea0 100644 --- a/.gitignore +++ b/.gitignore @@ -339,6 +339,7 @@ lib/cpluff/stamp-h1 /project/output # /project/cmake +/project/cmake/kodi-config.cmake /project/cmake/xbmc-config.cmake /project/cmake/*.error /project/cmake/addons/build diff --git a/configure.in b/configure.in index f72ea4d15d..1c6746890d 100644 --- a/configure.in +++ b/configure.in @@ -2506,6 +2506,7 @@ OUTPUT_FILES="Makefile \ xbmc/osx/Info.plist \ xbmc/osx/ios/XBMCIOS-Info.plist \ xbmc/osx/atv2/XBMCATV2-Info.plist \ + project/cmake/kodi-config.cmake \ project/cmake/xbmc-config.cmake \ tools/android/packaging/xbmc/AndroidManifest.xml \ tools/android/packaging/Makefile \ diff --git a/project/cmake/addons/CMakeLists.txt b/project/cmake/addons/CMakeLists.txt index d62643d4f7..755ba9e733 100644 --- a/project/cmake/addons/CMakeLists.txt +++ b/project/cmake/addons/CMakeLists.txt @@ -1,4 +1,4 @@ -project(xbmc-addons) +project(kodi-addons) cmake_minimum_required(VERSION 2.8) @@ -70,14 +70,14 @@ else() endif() if(NOT WIN32) - # copy the xbmc-prepare-env.cmake script to the depends path so that we can include it - file(COPY ${XBMCROOT}/project/cmake/scripts/common/xbmc-prepare-env.cmake DESTINATION ${DEPENDS_PATH}/lib/xbmc) + # copy the prepare-env.cmake script to the depends path so that we can include it + file(COPY ${XBMCROOT}/project/cmake/scripts/common/prepare-env.cmake DESTINATION ${DEPENDS_PATH}/lib/kodi) - # add the location of xbmc-prepare-env.cmake to CMAKE_MODULE_PATH so that it is found - list(APPEND CMAKE_MODULE_PATH ${DEPENDS_PATH}/lib/xbmc) + # add the location of prepare-env.cmake to CMAKE_MODULE_PATH so that it is found + list(APPEND CMAKE_MODULE_PATH ${DEPENDS_PATH}/lib/kodi) - # include xbmc-prepare-env.cmake which contains the logic to install the addon header bindings etc - include(xbmc-prepare-env) + # include prepare-env.cmake which contains the logic to install the addon header bindings etc + include(prepare-env) endif() ### get and build all the binary addons diff --git a/project/cmake/addons/README b/project/cmake/addons/README index 2af5f0f826..93f2f8e607 100644 --- a/project/cmake/addons/README +++ b/project/cmake/addons/README @@ -1,4 +1,4 @@ -XBMC ADDONS +KODI ADDONS =========== This directory contains the cmake-based buildsystem for addons. It looks into the "addons" sub-directory and parses all *.txt files recursively. Each addon @@ -30,11 +30,11 @@ specific paths: builds. * DEPENDS_PATH points to the directory containing the "include" and "lib" directories of the addons' dependencies. - * XBMCROOT points to the root directory of the xbmc project (default is the + * XBMCROOT points to the root directory of the project (default is the absolute representation of ../../.. starting from this directory). * PACKAGE_ZIP=1 will mean the add-ons will be 'packaged' into a common folder, - rather than being placed in <CMAKE_INSTALL_PREFIX>/lib/xbmc/addons and - <CMAKE_INSTALL_PREFIX>/share/xbmc/addons. + rather than being placed in <CMAKE_INSTALL_PREFIX>/lib/kodi/addons and + <CMAKE_INSTALL_PREFIX>/share/kodi/addons. * ARCH_DEFINES specifies the platform-specific C/C++ preprocessor defines (defaults to empty). @@ -57,7 +57,7 @@ In case of additional options the call might look like this cmake <path> [-G <generator>] \ -DCMAKE_BUILD_TYPE=Release \ - -DXBMCROOT="<path-to-xbmc-root>" \ + -DXBMCROOT="<path-to-app-root>" \ -DARCH_DEFINES="-DTARGET_LINUX" \ -DDEPENDS_PATH="<path-to-built-depends>" \ -DCMAKE_INSTALL_PREFIX="<path-to-install-directory" diff --git a/project/cmake/addons/depends/CMakeLists.txt b/project/cmake/addons/depends/CMakeLists.txt index b801475eb4..042a739690 100644 --- a/project/cmake/addons/depends/CMakeLists.txt +++ b/project/cmake/addons/depends/CMakeLists.txt @@ -1,4 +1,4 @@ -project(xbmc-addons-depends) +project(kodi-addons-depends) cmake_minimum_required(VERSION 2.8) diff --git a/project/cmake/addons/depends/README b/project/cmake/addons/depends/README index 3ea8d8bd27..36ae24a46d 100644 --- a/project/cmake/addons/depends/README +++ b/project/cmake/addons/depends/README @@ -1,4 +1,4 @@ -XBMC ADDON DEPENDENCIES +KODI ADDON DEPENDENCIES ======================= This directory contains the cmake-based buildsystem for addon dependencies. It looks into the "common" and the "<platform>/cmake" sub-directories and parses @@ -36,7 +36,7 @@ specific paths: builds. * CORE_SYSTEM_NAME is the name of the platform (e.g. "linux" or "android") in lower-case (defaults to lowercase(CMAKE_SYSTEM_NAME)). - * XBMCROOT points to the root directory of the xbmc project (default is the + * XBMCROOT points to the root directory of the project (default is the absolute representation of ../../.. starting from this directory). * ARCH_DEFINES specifies the platform-specific C/C++ preprocessor defines (defaults to empty). @@ -56,6 +56,6 @@ In case of additional options the call might look like this cmake <path> [-G <generator>] \ -DCMAKE_BUILD_TYPE=Release \ - -DXBMCROOT="<path-to-xbmc-root>" \ + -DXBMCROOT="<path-to-project-root>" \ -DARCH_DEFINES="-DTARGET_LINUX" \ -DCMAKE_INSTALL_PREFIX="<path-to-install-directory" diff --git a/project/cmake/addons/depends/windows/CMakeLists.txt b/project/cmake/addons/depends/windows/CMakeLists.txt index 9a71543202..83df09bb23 100644 --- a/project/cmake/addons/depends/windows/CMakeLists.txt +++ b/project/cmake/addons/depends/windows/CMakeLists.txt @@ -1,4 +1,4 @@ -project(xbmc-addons-depends-windows) +project(kodi-addons-depends-windows) cmake_minimum_required(VERSION 2.8) diff --git a/project/cmake/addons/depends/windows/README b/project/cmake/addons/depends/windows/README index 3512f32ae6..67dc59451d 100644 --- a/project/cmake/addons/depends/windows/README +++ b/project/cmake/addons/depends/windows/README @@ -1,4 +1,4 @@ -XBMC WIN32 ADDON DEPENDENCIES +KODI WIN32 ADDON DEPENDENCIES ============================= This directory contains the cmake-based buildsystem for dependencies (currently only prebuilt) used by one or multiple addons. The buildsystem looks into the diff --git a/project/cmake/addons/depends/windows/cmake/xbmc/CMakeLists.txt b/project/cmake/addons/depends/windows/cmake/kodi/CMakeLists.txt index 404378a3e2..ab49ddf0a1 100644 --- a/project/cmake/addons/depends/windows/cmake/xbmc/CMakeLists.txt +++ b/project/cmake/addons/depends/windows/cmake/kodi/CMakeLists.txt @@ -1,4 +1,4 @@ -project(xbmc) +project(kodi) cmake_minimum_required(VERSION 2.8) @@ -21,11 +21,11 @@ endif() get_filename_component(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE) ### prepare the environment -# set the DEPENDS_PATH variable used by xbmc-prepare-env +# set the DEPENDS_PATH variable used by prepare-env set(DEPENDS_PATH "${CMAKE_INSTALL_PREFIX}") -# copy the xbmc-prepare-env.cmake script so that we can include it -file(COPY ${XBMCROOT}/project/cmake/scripts/common/xbmc-prepare-env.cmake DESTINATION ${CMAKE_BINARY_DIR}) +# copy the prepare-env.cmake script so that we can include it +file(COPY ${XBMCROOT}/project/cmake/scripts/common/prepare-env.cmake DESTINATION ${CMAKE_BINARY_DIR}) -# include xbmc-prepare-env.cmake which contains the logic to install the addon header bindings etc -include(xbmc-prepare-env)
\ No newline at end of file +# include prepare-env.cmake which contains the logic to install the addon header bindings etc +include(prepare-env)
\ No newline at end of file diff --git a/project/cmake/addons/depends/windows/cmake/kodi/kodi.txt b/project/cmake/addons/depends/windows/cmake/kodi/kodi.txt new file mode 100644 index 0000000000..355d1b91e5 --- /dev/null +++ b/project/cmake/addons/depends/windows/cmake/kodi/kodi.txt @@ -0,0 +1 @@ +kodi
\ No newline at end of file diff --git a/project/cmake/addons/depends/windows/cmake/xbmc/noinstall.txt b/project/cmake/addons/depends/windows/cmake/kodi/noinstall.txt index e69de29bb2..e69de29bb2 100644 --- a/project/cmake/addons/depends/windows/cmake/xbmc/noinstall.txt +++ b/project/cmake/addons/depends/windows/cmake/kodi/noinstall.txt diff --git a/project/cmake/addons/depends/windows/cmake/xbmc/xbmc.txt b/project/cmake/addons/depends/windows/cmake/xbmc/xbmc.txt deleted file mode 100644 index 0d53f64477..0000000000 --- a/project/cmake/addons/depends/windows/cmake/xbmc/xbmc.txt +++ /dev/null @@ -1 +0,0 @@ -xbmc
\ No newline at end of file diff --git a/project/cmake/addons/depends/windows/prebuilt/README b/project/cmake/addons/depends/windows/prebuilt/README index 11a05a5838..a0c70d6bde 100644 --- a/project/cmake/addons/depends/windows/prebuilt/README +++ b/project/cmake/addons/depends/windows/prebuilt/README @@ -1,4 +1,4 @@ -XBMC WIN32 PREBUILT ADDON DEPENDENCIES +KODI WIN32 PREBUILT ADDON DEPENDENCIES ====================================== This directory contains a file or sub-directory for every prebuilt dependency used by one of the addons being built. There are two different modes supported. diff --git a/project/cmake/kodi-config.cmake.in b/project/cmake/kodi-config.cmake.in new file mode 100644 index 0000000000..50e12a8a71 --- /dev/null +++ b/project/cmake/kodi-config.cmake.in @@ -0,0 +1,8 @@ +SET(KODI_INCLUDE_DIR @prefix@/include) +SET(APP_NAME @APP_NAME@) +SET(APP_VERSION_MAJOR @APP_VERSION_MAJOR@) +SET(APP_VERSION_MINOR @APP_VERSION_MINOR@) +LIST(APPEND CMAKE_MODULE_PATH @prefix@/lib/kodi) +ADD_DEFINITIONS(@ARCH_DEFINES@) + +include(addon-helpers) diff --git a/project/cmake/scripts/common/xbmc-addon-helpers.cmake b/project/cmake/scripts/common/addon-helpers.cmake index c882cfcd02..3f42ffa595 100644 --- a/project/cmake/scripts/common/xbmc-addon-helpers.cmake +++ b/project/cmake/scripts/common/addon-helpers.cmake @@ -62,13 +62,13 @@ macro (build_addon target prefix libs) ENDIF(WIN32) add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext}) ELSE(PACKAGE_ZIP OR PACKAGE_TGZ) - INSTALL(TARGETS ${target} DESTINATION lib/xbmc/addons/${target}) - INSTALL(DIRECTORY ${target} DESTINATION share/xbmc/addons) + INSTALL(TARGETS ${target} DESTINATION lib/kodi/addons/${target}) + INSTALL(DIRECTORY ${target} DESTINATION share/kodi/addons) ENDIF(PACKAGE_ZIP OR PACKAGE_TGZ) endmacro() # finds a path to a given file (recursive) -function (xbmc_find_path var_name filename search_path strip_file) +function (kodi_find_path var_name filename search_path strip_file) file(GLOB_RECURSE PATH_TO_FILE ${search_path} ${filename}) if(strip_file) string(REPLACE ${filename} "" PATH_TO_FILE ${PATH_TO_FILE}) diff --git a/project/cmake/scripts/common/prepare-env.cmake b/project/cmake/scripts/common/prepare-env.cmake new file mode 100644 index 0000000000..6885f4347e --- /dev/null +++ b/project/cmake/scripts/common/prepare-env.cmake @@ -0,0 +1,71 @@ +# parse version.txt to get the version info +if(EXISTS "${XBMCROOT}/version.txt") + file(STRINGS "${XBMCROOT}/version.txt" versions) + foreach (version ${versions}) + string(REGEX MATCH "^[^ ]+" version_name ${version}) + string(REPLACE "${version_name} " "" version_value ${version}) + set(APP_${version_name} "${version_value}") + endforeach() +endif() + +# bail if we can't parse versions +if(NOT DEFINED APP_VERSION_MAJOR OR NOT DEFINED APP_VERSION_MINOR) + message(FATAL_ERROR "Could not determine app version! make sure that ${XBMCROOT}/version.txt exists") +endif() + +### copy all the addon binding header files to include/kodi +# make sure include/kodi exists and is empty +set(KODI_LIB_DIR ${DEPENDS_PATH}/lib/kodi) +if(NOT EXISTS "${KODI_LIB_DIR}/") + file(MAKE_DIRECTORY ${KODI_LIB_DIR}) +endif() + +set(KODI_INCLUDE_DIR ${DEPENDS_PATH}/include/kodi) +if(NOT EXISTS "${KODI_INCLUDE_DIR}/") + file(MAKE_DIRECTORY ${KODI_INCLUDE_DIR}) +endif() + +# we still need XBMC_INCLUDE_DIR and XBMC_LIB_DIR for backwards compatibility to xbmc +set(XBMC_LIB_DIR ${DEPENDS_PATH}/lib/xbmc) +if(NOT EXISTS "${XBMC_LIB_DIR}/") + file(MAKE_DIRECTORY ${XBMC_LIB_DIR}) +endif() +set(XBMC_INCLUDE_DIR ${DEPENDS_PATH}/include/xbmc) +if(NOT EXISTS "${XBMC_INCLUDE_DIR}/") + file(MAKE_DIRECTORY ${XBMC_INCLUDE_DIR}) +endif() + +# kodi-config.cmake.in (further down) expects a "prefix" variable +get_filename_component(prefix "${DEPENDS_PATH}" ABSOLUTE) + +# generate the proper kodi-config.cmake file +configure_file(${XBMCROOT}/project/cmake/kodi-config.cmake.in ${KODI_LIB_DIR}/kodi-config.cmake @ONLY) +# copy cmake helpers to lib/kodi +file(COPY ${XBMCROOT}/project/cmake/scripts/common/addon-helpers.cmake ${XBMCROOT}/project/cmake/scripts/common/addoptions.cmake DESTINATION ${KODI_LIB_DIR}) + +# generate xbmc-config.cmake for backwards compatibility to xbmc +configure_file(${XBMCROOT}/project/cmake/xbmc-config.cmake.in ${XBMC_LIB_DIR}/xbmc-config.cmake @ONLY) + +### copy all the addon binding header files to include/kodi +# parse addon-bindings.mk to get the list of header files to copy +file(STRINGS ${XBMCROOT}/xbmc/addons/addon-bindings.mk bindings) +string(REPLACE "\n" ";" bindings "${bindings}") +foreach(binding ${bindings}) + string(REPLACE " =" ";" binding "${binding}") + string(REPLACE "+=" ";" binding "${binding}") + list(GET binding 1 header) + # copy the header file to include/kodi + file(COPY ${XBMCROOT}/${header} DESTINATION ${KODI_INCLUDE_DIR}) + + # auto-generate header files for backwards comaptibility to xbmc with deprecation warning + get_filename_component(headerfile ${header} NAME) + file(WRITE ${XBMC_INCLUDE_DIR}/${headerfile} +"#pragma once +#define DEPRECATION_WARNING \"Including xbmc/${headerfile} has been deprecated, please use kodi/${headerfile}\" +#ifdef _MSC_VER + #pragma message(\"WARNING: \" DEPRECATION_WARNING) +#else + #warning DEPRECATION_WARNING +#endif +#include \"kodi/${headerfile}\"") +endforeach()
\ No newline at end of file diff --git a/project/cmake/scripts/common/xbmc-prepare-env.cmake b/project/cmake/scripts/common/xbmc-prepare-env.cmake deleted file mode 100644 index ae3b9f28b8..0000000000 --- a/project/cmake/scripts/common/xbmc-prepare-env.cmake +++ /dev/null @@ -1,46 +0,0 @@ -# parse version.txt to get the version info -if(EXISTS "${XBMCROOT}/version.txt") - file(STRINGS "${XBMCROOT}/version.txt" versions) - foreach (version ${versions}) - string(REGEX MATCH "^[^ ]+" version_name ${version}) - string(REPLACE "${version_name} " "" version_value ${version}) - set(APP_${version_name} "${version_value}") - endforeach() -endif() - -# bail if we can't parse versions -if(NOT DEFINED APP_VERSION_MAJOR OR NOT DEFINED APP_VERSION_MINOR) - message(FATAL_ERROR "Could not determine app version! make sure that ${XBMCROOT}/version.txt exists") -endif() - -### copy all the addon binding header files to include/xbmc -# make sure include/xbmc exists and is empty -set(XBMC_LIB_DIR ${DEPENDS_PATH}/lib/xbmc) -if(NOT EXISTS "${XBMC_LIB_DIR}/") - file(MAKE_DIRECTORY ${XBMC_LIB_DIR}) -endif() - -set(XBMC_INCLUDE_DIR ${DEPENDS_PATH}/include/xbmc) -if(NOT EXISTS "${XBMC_INCLUDE_DIR}/") - file(MAKE_DIRECTORY ${XBMC_INCLUDE_DIR}) -endif() - -# xbmc-config.cmake.in (further down) expects a "prefix" variable -get_filename_component(prefix "${DEPENDS_PATH}" ABSOLUTE) - -# generate the proper xbmc-config.cmake file -configure_file(${XBMCROOT}/project/cmake/xbmc-config.cmake.in ${XBMC_LIB_DIR}/xbmc-config.cmake @ONLY) -# copy cmake helpers to lib/xbmc -file(COPY ${XBMCROOT}/project/cmake/scripts/common/xbmc-addon-helpers.cmake ${XBMCROOT}/project/cmake/scripts/common/addoptions.cmake DESTINATION ${XBMC_LIB_DIR}) - -### copy all the addon binding header files to include/xbmc -# parse addon-bindings.mk to get the list of header files to copy -file(STRINGS ${XBMCROOT}/xbmc/addons/addon-bindings.mk bindings) -string(REPLACE "\n" ";" bindings "${bindings}") -foreach(binding ${bindings}) - string(REPLACE " =" ";" binding "${binding}") - string(REPLACE "+=" ";" binding "${binding}") - list(GET binding 1 header) - # copy the header file to include/xbmc - file(COPY ${XBMCROOT}/${header} DESTINATION ${XBMC_INCLUDE_DIR}) -endforeach()
\ No newline at end of file diff --git a/project/cmake/scripts/windows/xbmc-c-flag-overrides.cmake b/project/cmake/scripts/windows/c-flag-overrides.cmake index ab19701707..ab19701707 100644 --- a/project/cmake/scripts/windows/xbmc-c-flag-overrides.cmake +++ b/project/cmake/scripts/windows/c-flag-overrides.cmake diff --git a/project/cmake/scripts/windows/xbmc-cxx-flag-overrides.cmake b/project/cmake/scripts/windows/cxx-flag-overrides.cmake index ad3a0908ef..ad3a0908ef 100644 --- a/project/cmake/scripts/windows/xbmc-cxx-flag-overrides.cmake +++ b/project/cmake/scripts/windows/cxx-flag-overrides.cmake diff --git a/project/cmake/xbmc-config.cmake.in b/project/cmake/xbmc-config.cmake.in index ba271f3a6e..73d1c9c3a5 100644 --- a/project/cmake/xbmc-config.cmake.in +++ b/project/cmake/xbmc-config.cmake.in @@ -1,8 +1,4 @@ -SET(XBMC_INCLUDE_DIR @prefix@/include) -SET(APP_NAME @APP_NAME@) -SET(APP_VERSION_MAJOR @APP_VERSION_MAJOR@) -SET(APP_VERSION_MINOR @APP_VERSION_MINOR@) -LIST(APPEND CMAKE_MODULE_PATH @prefix@/lib/xbmc) -ADD_DEFINITIONS(@ARCH_DEFINES@) +message(WARNING "find_package(xbmc) has been deprecated, please use find_package(kodi)") -include(xbmc-addon-helpers) +find_package(kodi REQUIRED) +set(XBMC_INCLUDE_DIR ${KODI_INCLUDE_DIR})
\ No newline at end of file diff --git a/tools/buildsteps/win32/make-addon-depends.bat b/tools/buildsteps/win32/make-addon-depends.bat index d649445a37..fd4ac3ce4a 100644 --- a/tools/buildsteps/win32/make-addon-depends.bat +++ b/tools/buildsteps/win32/make-addon-depends.bat @@ -66,8 +66,8 @@ IF "%dependency%" NEQ "" ( rem execute cmake to generate makefiles processable by nmake cmake "%ADDON_DEPENDS_PATH%" -G "NMake Makefiles" ^ -DCMAKE_BUILD_TYPE=Release ^ - -DCMAKE_USER_MAKE_RULES_OVERRIDE="%SCRIPTS_PATH%/xbmc-c-flag-overrides.cmake" ^ - -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="%SCRIPTS_PATH%/xbmc-cxx-flag-overrides.cmake" ^ ^ + -DCMAKE_USER_MAKE_RULES_OVERRIDE="%SCRIPTS_PATH%/c-flag-overrides.cmake" ^ + -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="%SCRIPTS_PATH%/cxx-flag-overrides.cmake" ^ ^ -DCMAKE_INSTALL_PREFIX=%ADDONS_OUTPUT_PATH% ^ -DARCH_DEFINES="-DTARGET_WINDOWS -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -D_USE_32BIT_TIME_T -D_WINSOCKAPI_" ^ -DDEPENDS_TO_BUILD="%DEPENDS_TO_BUILD%" diff --git a/tools/buildsteps/win32/make-addons.bat b/tools/buildsteps/win32/make-addons.bat index c10b340396..45764791a8 100644 --- a/tools/buildsteps/win32/make-addons.bat +++ b/tools/buildsteps/win32/make-addons.bat @@ -93,8 +93,8 @@ IF "%addon%" NEQ "" ( rem execute cmake to generate makefiles processable by nmake cmake "%ADDONS_PATH%" -G "NMake Makefiles" ^ -DCMAKE_BUILD_TYPE=Release ^ - -DCMAKE_USER_MAKE_RULES_OVERRIDE="%SCRIPTS_PATH%/xbmc-c-flag-overrides.cmake" ^ - -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="%SCRIPTS_PATH%/xbmc-cxx-flag-overrides.cmake" ^ + -DCMAKE_USER_MAKE_RULES_OVERRIDE="%SCRIPTS_PATH%/c-flag-overrides.cmake" ^ + -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="%SCRIPTS_PATH%/cxx-flag-overrides.cmake" ^ -DCMAKE_INSTALL_PREFIX=%ADDONS_INSTALL_PATH% ^ -DXBMCROOT=%WORKDIR% ^ -DCMAKE_PREFIX_PATH=%ADDON_DEPENDS_PATH% ^ |