From f8346d05cfabb4b46287c6b8a48a2461c0b50f79 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Thu, 2 Nov 2017 10:10:15 +0000 Subject: [PATCH] kodi: support building with ninja on posix platforms --- .../kodi/patches/kodi-100.70-fix-json.patch | 58 ------ .../kodi/patches/kodi-999.99-PR12936.patch | 178 ++++++++++++++++++ 2 files changed, 178 insertions(+), 58 deletions(-) delete mode 100644 packages/mediacenter/kodi/patches/kodi-100.70-fix-json.patch create mode 100644 packages/mediacenter/kodi/patches/kodi-999.99-PR12936.patch diff --git a/packages/mediacenter/kodi/patches/kodi-100.70-fix-json.patch b/packages/mediacenter/kodi/patches/kodi-100.70-fix-json.patch deleted file mode 100644 index 3411ba32a6..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-100.70-fix-json.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff --git a/cmake/scripts/common/GenerateVersionedFiles.cmake b/cmake/scripts/common/GenerateVersionedFiles.cmake -index 90b2173..2819371 100644 ---- a/cmake/scripts/common/GenerateVersionedFiles.cmake -+++ b/cmake/scripts/common/GenerateVersionedFiles.cmake -@@ -11,14 +11,12 @@ function(generate_versioned_file _SRC _DEST) - file(WRITE ${CMAKE_BINARY_DIR}/${_DEST} "${file_content}") - endfunction() - -+# workaround for xbmc.json -+file(STRINGS ${CORE_SOURCE_DIR}/xbmc/interfaces/json-rpc/schema/version.txt jsonrpc_version) -+ - # add-on xml's - file(GLOB ADDON_XML_IN_FILE ${CORE_SOURCE_DIR}/addons/*/addon.xml.in) - foreach(loop_var ${ADDON_XML_IN_FILE}) -- # prevent 'xbmc.json'; will be obtained from 'xbmc/interfaces/json-rpc/schema/CMakeLists.txt'. -- if(loop_var MATCHES "xbmc.json") -- continue() -- endif() -- - list(GET loop_var 0 xml_name) - - string(REPLACE "/addon.xml.in" "" source_dir ${xml_name}) -diff --git a/xbmc/interfaces/json-rpc/schema/CMakeLists.txt b/xbmc/interfaces/json-rpc/schema/CMakeLists.txt -index aa6142b..550c73b 100644 ---- a/xbmc/interfaces/json-rpc/schema/CMakeLists.txt -+++ b/xbmc/interfaces/json-rpc/schema/CMakeLists.txt -@@ -10,18 +10,8 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ServiceDescripti - DEPENDS ${JSON_SRCS} - COMMENT "Generating ServiceDescription.h") - --add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/addons/xbmc.json/addon.xml -- COMMAND ${CMAKE_COMMAND} -- -DCMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR} -- -DCORE_BINARY_DIR=${CMAKE_BINARY_DIR} -- -P ${CMAKE_CURRENT_SOURCE_DIR}/GenerateAddonXml.cmake -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -- DEPENDS ${JSON_SRCS} ${CMAKE_SOURCE_DIR}/addons/xbmc.json/addon.xml.in -- COMMENT "Generating xbmc.json/addon.xml") -- - add_custom_target(generate_json_header ALL -- DEPENDS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ServiceDescription.h -- ${CMAKE_BINARY_DIR}/addons/xbmc.json/addon.xml) -+ DEPENDS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ServiceDescription.h) - set_target_properties(generate_json_header PROPERTIES FOLDER "Build Utilities") - - if(BOOTSTRAP_IN_TREE) -diff --git a/xbmc/interfaces/json-rpc/schema/GenerateAddonXml.cmake b/xbmc/interfaces/json-rpc/schema/GenerateAddonXml.cmake -deleted file mode 100644 -index 53afaf8..0000000 ---- a/xbmc/interfaces/json-rpc/schema/GenerateAddonXml.cmake -+++ /dev/null -@@ -1,5 +0,0 @@ --file(STRINGS ${CMAKE_SOURCE_DIR}/xbmc/interfaces/json-rpc/schema/version.txt jsonrpc_version) -- --execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${CORE_BINARY_DIR}/addons/xbmc.json/addon.xml) --configure_file(${CMAKE_SOURCE_DIR}/addons/xbmc.json/addon.xml.in -- ${CORE_BINARY_DIR}/addons/xbmc.json/addon.xml @ONLY) - diff --git a/packages/mediacenter/kodi/patches/kodi-999.99-PR12936.patch b/packages/mediacenter/kodi/patches/kodi-999.99-PR12936.patch new file mode 100644 index 0000000000..09cb77d55b --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-999.99-PR12936.patch @@ -0,0 +1,178 @@ +From 64b82bba85398be323e61cba3d559997752f9e6f Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Thu, 19 Oct 2017 11:47:12 +0200 +Subject: [PATCH 1/2] [cmake] support building with ninja on posix platforms + +--- + addons/xbmc.json/addon.xml.in | 2 +- + cmake/scripts/common/GenerateVersionedFiles.cmake | 10 +++++----- + cmake/scripts/common/Macros.cmake | 10 ++++++++-- + xbmc/interfaces/json-rpc/schema/CMakeLists.txt | 1 + + xbmc/interfaces/json-rpc/schema/GenerateAddonXml.cmake | 5 +++-- + xbmc/interfaces/json-rpc/schema/version.txt | 2 +- + 6 files changed, 19 insertions(+), 11 deletions(-) + +diff --git a/addons/xbmc.json/addon.xml.in b/addons/xbmc.json/addon.xml.in +index fbd2923a8b02..6f09fa24126d 100644 +--- a/addons/xbmc.json/addon.xml.in ++++ b/addons/xbmc.json/addon.xml.in +@@ -1,5 +1,5 @@ + +- ++ + + + +diff --git a/cmake/scripts/common/GenerateVersionedFiles.cmake b/cmake/scripts/common/GenerateVersionedFiles.cmake +index 90b2173e6a4d..011f4956f1fe 100644 +--- a/cmake/scripts/common/GenerateVersionedFiles.cmake ++++ b/cmake/scripts/common/GenerateVersionedFiles.cmake +@@ -13,12 +13,11 @@ endfunction() + + # add-on xml's + file(GLOB ADDON_XML_IN_FILE ${CORE_SOURCE_DIR}/addons/*/addon.xml.in) +-foreach(loop_var ${ADDON_XML_IN_FILE}) +- # prevent 'xbmc.json'; will be obtained from 'xbmc/interfaces/json-rpc/schema/CMakeLists.txt'. +- if(loop_var MATCHES "xbmc.json") +- continue() +- endif() + ++# remove 'xbmc.json', will be created from 'xbmc/interfaces/json-rpc/schema/CMakeLists.txt' ++list(REMOVE_ITEM ADDON_XML_IN_FILE xbmc.json) ++ ++foreach(loop_var ${ADDON_XML_IN_FILE}) + list(GET loop_var 0 xml_name) + + string(REPLACE "/addon.xml.in" "" source_dir ${xml_name}) +@@ -35,4 +34,5 @@ foreach(loop_var ${ADDON_XML_IN_FILE}) + unset(xml_name) + endforeach() + ++ + generate_versioned_file(xbmc/CompileInfo.cpp.in ${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp) +diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake +index 205117720c83..10ed15163678 100644 +--- a/cmake/scripts/common/Macros.cmake ++++ b/cmake/scripts/common/Macros.cmake +@@ -643,6 +643,7 @@ endfunction() + # APP_VERSION - the app version (${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG}) + # APP_ADDON_API - the addon API version in the form of 16.9.702 + # FILE_VERSION - file version in the form of 16,9,702,0 - Windows only ++# JSONRPC_VERSION - the json api version in the form of 8.3.0 + # + # Set various variables defined in "versions.h" + macro(core_find_versions) +@@ -657,8 +658,9 @@ macro(core_find_versions) + + include(CMakeParseArguments) + core_file_read_filtered(version_list ${CORE_SOURCE_DIR}/version.txt) +- string(REPLACE " " ";" version_list "${version_list}") +- cmake_parse_arguments(APP "" "APP_NAME;COMPANY_NAME;WEBSITE;VERSION_MAJOR;VERSION_MINOR;VERSION_TAG;VERSION_CODE;ADDON_API;APP_PACKAGE" "" ${version_list}) ++ core_file_read_filtered(json_version ${CORE_SOURCE_DIR}/xbmc/interfaces/json-rpc/schema/version.txt) ++ string(REPLACE " " ";" version_list "${version_list} ${json_version}") ++ cmake_parse_arguments(APP "" "APP_NAME;COMPANY_NAME;WEBSITE;VERSION_MAJOR;VERSION_MINOR;VERSION_TAG;VERSION_CODE;ADDON_API;APP_PACKAGE;JSONRPC_VERSION" "" ${version_list}) + + if(NOT ${APP_VERSION_CODE} MATCHES "^[0-9]+\\.[0-9][0-9]?\\.[0-9][0-9]?[0-9]?$") + message(FATAL_ERROR "VERSION_CODE was set to ${APP_VERSION_CODE} in version.txt, but it has to match '^\\d+\\.\\d{1,2}\\.\\d{1,3}$'") +@@ -674,6 +676,7 @@ macro(core_find_versions) + string(TOLOWER ${APP_VERSION_TAG} APP_VERSION_TAG_LC) + endif() + string(REPLACE "." "," FILE_VERSION ${APP_ADDON_API}.0) ++ set(JSONRPC_VERSION ${APP_JSONRPC_VERSION}) + + # Set defines used in addon.xml.in and read from versions.h to set add-on + # version parts automatically +@@ -698,6 +701,9 @@ macro(core_find_versions) + if(NOT DEFINED APP_VERSION_MAJOR OR NOT DEFINED APP_VERSION_MINOR) + message(FATAL_ERROR "Could not determine app version! Make sure that ${CORE_SOURCE_DIR}/version.txt exists") + endif() ++ if(NOT DEFINED JSONRPC_VERSION) ++ message(FATAL_ERROR "Could not determine json-rpc version! Make sure that ${CORE_SOURCE_DIR}/xbmc/interfaces/json-rpc/schema/version.txt exists") ++ endif() + endmacro() + + # add-on xml's +diff --git a/xbmc/interfaces/json-rpc/schema/CMakeLists.txt b/xbmc/interfaces/json-rpc/schema/CMakeLists.txt +index aa6142bc7718..a4d5583fdbed 100644 +--- a/xbmc/interfaces/json-rpc/schema/CMakeLists.txt ++++ b/xbmc/interfaces/json-rpc/schema/CMakeLists.txt +@@ -14,6 +14,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/addons/xbmc.json/addon.xml + COMMAND ${CMAKE_COMMAND} + -DCMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR} + -DCORE_BINARY_DIR=${CMAKE_BINARY_DIR} ++ -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME} + -P ${CMAKE_CURRENT_SOURCE_DIR}/GenerateAddonXml.cmake + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + DEPENDS ${JSON_SRCS} ${CMAKE_SOURCE_DIR}/addons/xbmc.json/addon.xml.in +diff --git a/xbmc/interfaces/json-rpc/schema/GenerateAddonXml.cmake b/xbmc/interfaces/json-rpc/schema/GenerateAddonXml.cmake +index 53afaf8272f3..7f0817b6a801 100644 +--- a/xbmc/interfaces/json-rpc/schema/GenerateAddonXml.cmake ++++ b/xbmc/interfaces/json-rpc/schema/GenerateAddonXml.cmake +@@ -1,5 +1,6 @@ +-file(STRINGS ${CMAKE_SOURCE_DIR}/xbmc/interfaces/json-rpc/schema/version.txt jsonrpc_version) ++include(${CMAKE_SOURCE_DIR}/cmake/scripts/common/Macros.cmake) ++core_find_versions() + +-execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${CORE_BINARY_DIR}/addons/xbmc.json/addon.xml) ++file(REMOVE ${CORE_BINARY_DIR}/addons/xbmc.json/addon.xml) + configure_file(${CMAKE_SOURCE_DIR}/addons/xbmc.json/addon.xml.in + ${CORE_BINARY_DIR}/addons/xbmc.json/addon.xml @ONLY) +diff --git a/xbmc/interfaces/json-rpc/schema/version.txt b/xbmc/interfaces/json-rpc/schema/version.txt +index 2bf50aaf17a6..7b9e4ea4acce 100644 +--- a/xbmc/interfaces/json-rpc/schema/version.txt ++++ b/xbmc/interfaces/json-rpc/schema/version.txt +@@ -1 +1 @@ +-8.3.0 ++JSONRPC_VERSION 8.3.0 + +From 1cea4c73d24af3ed22789ece095379c66269fa6c Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 1 Nov 2017 20:20:19 +0100 +Subject: [PATCH 2/2] [JsonSchemabuilder] adjust version parsing + +--- + tools/depends/native/JsonSchemaBuilder/CMakeLists.txt | 2 ++ + tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder.cpp | 3 ++- + tools/depends/native/JsonSchemaBuilder/src/Makefile.am | 1 + + 3 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/tools/depends/native/JsonSchemaBuilder/CMakeLists.txt b/tools/depends/native/JsonSchemaBuilder/CMakeLists.txt +index 4fe8fdce40e8..783b8a3c5801 100644 +--- a/tools/depends/native/JsonSchemaBuilder/CMakeLists.txt ++++ b/tools/depends/native/JsonSchemaBuilder/CMakeLists.txt +@@ -1,3 +1,5 @@ + set(SOURCES src/JsonSchemaBuilder.cpp) + ++set(CMAKE_CXX_STANDARD 11) ++set(CMAKE_CXX_STANDARD_REQUIRED ON) + add_executable(JsonSchemaBuilder ${SOURCES}) +diff --git a/tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder.cpp b/tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder.cpp +index a267fd9d346e..9a8acdbd9bf5 100644 +--- a/tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder.cpp ++++ b/tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder.cpp +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + using namespace std; + +@@ -29,7 +30,7 @@ void print_version(ifstream &in, ofstream &out) + { + string line; + if (getline(in, line)) +- out << line; ++ out << regex_replace(line, regex("(\\s+)?JSONRPC_VERSION\\s+|(\\s+)?#.*"), ""); + } + + void print_license(ifstream &in, ofstream &out) +diff --git a/tools/depends/native/JsonSchemaBuilder/src/Makefile.am b/tools/depends/native/JsonSchemaBuilder/src/Makefile.am +index 1d5e071bcaab..99454a1005e8 100644 +--- a/tools/depends/native/JsonSchemaBuilder/src/Makefile.am ++++ b/tools/depends/native/JsonSchemaBuilder/src/Makefile.am +@@ -1,3 +1,4 @@ + bin_PROGRAMS = JsonSchemaBuilder + JsonSchemaBuilder_SOURCES = JsonSchemaBuilder.cpp ++AM_CXXFLAGS = -O2 -std=c++11 +