From 2d2e77f1c1d6c079a7f07bc819207569c17f9b55 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Sat, 7 Oct 2017 12:40:14 -0700 Subject: [PATCH 01/11] ninja: move package out of add-ons --- packages/{addons/addon-depends => python/devel}/ninja/package.mk | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/{addons/addon-depends => python/devel}/ninja/package.mk (100%) diff --git a/packages/addons/addon-depends/ninja/package.mk b/packages/python/devel/ninja/package.mk similarity index 100% rename from packages/addons/addon-depends/ninja/package.mk rename to packages/python/devel/ninja/package.mk From f3520a24b19b0b8a1e5e8c8efae942c69ae04cbf Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Sat, 7 Oct 2017 12:46:55 -0700 Subject: [PATCH 02/11] ninja: update to 1.8.2 --- packages/python/devel/ninja/package.mk | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/python/devel/ninja/package.mk b/packages/python/devel/ninja/package.mk index ebdfb4854d..657a3497c5 100644 --- a/packages/python/devel/ninja/package.mk +++ b/packages/python/devel/ninja/package.mk @@ -17,18 +17,16 @@ ################################################################################ PKG_NAME="ninja" -PKG_VERSION="1.6.0" -PKG_SHA256="b43e88fb068fe4d92a3dfd9eb4d19755dae5c33415db2e9b7b61b4659009cde7" +PKG_VERSION="1.8.2" +PKG_SHA256="86b8700c3d0880c2b44c2ff67ce42774aaf8c28cbf57725cb881569288c1c6f4" PKG_ARCH="any" PKG_LICENSE="Apache" PKG_SITE="http://martine.github.io/ninja/" PKG_URL="https://github.com/ninja-build/ninja/archive/v$PKG_VERSION.tar.gz" -PKG_DEPENDS_HOST="toolchain Python2:host" +PKG_DEPENDS_HOST="Python2:host" PKG_SECTION="devel" PKG_SHORTDESC="Small build system with a focus on speed" PKG_LONGDESC="Small build system with a focus on speed" - -PKG_IS_ADDON="no" PKG_AUTORECONF="no" configure_host() { From e1195995187db23c5ce91c6f1e942c7d09b14c6d Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 2 Dec 2016 11:22:20 -0800 Subject: [PATCH 03/11] scripts/build: use ninja for cmake builds --- scripts/build | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/scripts/build b/scripts/build index 43f9fbed9d..7a12224e99 100755 --- a/scripts/build +++ b/scripts/build @@ -133,7 +133,15 @@ if [ ! -f $STAMP ]; then CMAKE_BUILD_TYPE="MinSizeRel" fi - TARGET_CMAKE_OPTS="-DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + if [ "$PKG_USE_NINJA" = "no" ]; then + CMAKE_GENERATOR="" + else + CMAKE_GENERATOR="-GNinja \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON" + fi + + TARGET_CMAKE_OPTS="$CMAKE_GENERATOR \ + -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE" @@ -149,9 +157,9 @@ if [ ! -f $STAMP ]; then --disable-static \ --enable-shared" - HOST_CMAKE_OPTS="-DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ - -DCMAKE_INSTALL_PREFIX=$TOOLCHAIN \ - -DCMAKE_BUILD_TYPE=Release" + HOST_CMAKE_OPTS="$CMAKE_GENERATOR \ + -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=$TOOLCHAIN" # configure INIT build defaults INIT_CONFIGURE_OPTS="$TARGET_CONFIGURE_OPTS" @@ -301,6 +309,20 @@ if [ ! -f $STAMP ]; then fi if [ "$(type -t make_$TARGET)" = "function" ]; then make_$TARGET + elif [ -f "$PKG_CMAKE_SCRIPT" -a ! "$PKG_USE_CMAKE" = "no" -a ! "$PKG_USE_NINJA" = "no" ]; then + if [ "$TARGET" = "target" ]; then + echo "Executing (target): ninja $PKG_MAKE_OPTS_TARGET" | tr -s " " + ninja $PKG_MAKE_OPTS_TARGET + elif [ "$TARGET" = "host" ]; then + echo "Executing (host): ninja $PKG_MAKE_OPTS_HOST" | tr -s " " + ninja $PKG_MAKE_OPTS_HOST + elif [ "$TARGET" = "init" ]; then + echo "Executing (init): ninja $PKG_MAKE_OPTS_INIT" | tr -s " " + ninja $PKG_MAKE_OPTS_INIT + elif [ "$TARGET" = "bootstrap" ]; then + echo "Executing (bootstrap): ninja $PKG_MAKE_OPTS_BOOTSTRAP" | tr -s " " + ninja $PKG_MAKE_OPTS_BOOTSTRAP + fi else if [ "$TARGET" = "target" ]; then echo "Executing (target): make $PKG_MAKE_OPTS_TARGET" | tr -s " " @@ -326,6 +348,17 @@ if [ ! -f $STAMP ]; then fi if [ "$(type -t makeinstall_$TARGET)" = "function" ]; then makeinstall_$TARGET + elif [ -f "$PKG_CMAKE_SCRIPT" -a ! "$PKG_USE_CMAKE" = "no" -a ! "$PKG_USE_NINJA" = "no" ]; then + if [ "$TARGET" = "target" ]; then + DESTDIR=$SYSROOT_PREFIX ninja install $PKG_MAKEINSTALL_OPTS_TARGET + DESTDIR=$INSTALL ninja install $PKG_MAKEINSTALL_OPTS_TARGET + elif [ "$TARGET" = "host" ]; then + ninja install $PKG_MAKEINSTALL_OPTS_HOST + elif [ "$TARGET" = "init" ]; then + DESTDIR=$INSTALL ninja install $PKG_MAKEINSTALL_OPTS_INIT + elif [ "$TARGET" = "bootstrap" ]; then + ninja install $PKG_MAKEINSTALL_OPTS_BOOTSTRAP + fi else if [ "$TARGET" = "target" ]; then $MAKEINSTALL $PKG_MAKEINSTALL_OPTS_TARGET From c75f0262571648dd35c64e5cfb142040944a3dba Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 2 Dec 2016 11:22:20 -0800 Subject: [PATCH 04/11] mysql: use ninja --- packages/databases/mysql/package.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/databases/mysql/package.mk b/packages/databases/mysql/package.mk index 0e41201c99..ceddade333 100644 --- a/packages/databases/mysql/package.mk +++ b/packages/databases/mysql/package.mk @@ -63,9 +63,9 @@ if [ "$DEBUG" = yes -a "$TARGET_ARCH" = aarch64 ]; then fi make_host() { - make comp_err - make gen_lex_hash - make comp_sql + ninja comp_err + ninja gen_lex_hash + ninja comp_sql } post_make_host() { From 5d2acd82c9ec2addd730220de468893a0f04c731 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 2 Dec 2016 11:22:20 -0800 Subject: [PATCH 05/11] llvm: use ninja --- packages/lang/llvm/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/lang/llvm/package.mk b/packages/lang/llvm/package.mk index 756ccc2104..f640907dc3 100644 --- a/packages/lang/llvm/package.mk +++ b/packages/lang/llvm/package.mk @@ -55,7 +55,7 @@ PKG_CMAKE_OPTS_HOST="-DLLVM_INCLUDE_TOOLS=ON \ -DLLVM_APPEND_VC_REV=OFF" make_host() { - make llvm-config llvm-tblgen + ninja llvm-config llvm-tblgen } makeinstall_host() { From 16530d539e2c25623fc5ba06714633e33a9ee679 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 2 Dec 2016 11:22:21 -0800 Subject: [PATCH 06/11] cmake: disable cmake build --- packages/devel/cmake/package.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/devel/cmake/package.mk b/packages/devel/cmake/package.mk index 9fc5c4129c..8f6d3c3fad 100644 --- a/packages/devel/cmake/package.mk +++ b/packages/devel/cmake/package.mk @@ -29,6 +29,7 @@ PKG_SHORTDESC="cmake: A cross-platform, open-source make system" PKG_LONGDESC="CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. CMake is quite sophisticated: it is possible to support complex environments requiring system configuration, preprocessor generation, code generation, and template instantiation." PKG_IS_ADDON="no" +PKG_USE_CMAKE="no" PKG_AUTORECONF="no" configure_host() { From c1d346a253edbdd8882220cfbf6cdb1854a1da70 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 10 Oct 2017 12:04:36 -0700 Subject: [PATCH 07/11] bzip2: fix depends --- packages/compress/bzip2/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compress/bzip2/package.mk b/packages/compress/bzip2/package.mk index cc26111c0e..852c1c18e2 100644 --- a/packages/compress/bzip2/package.mk +++ b/packages/compress/bzip2/package.mk @@ -23,7 +23,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.bzip.org" PKG_URL="http://www.bzip.org/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS_HOST="toolchain" +PKG_DEPENDS_HOST="" PKG_DEPENDS_TARGET="toolchain" PKG_SECTION="compress" PKG_SHORTDESC="bzip2 data compressor" From a130ffaee930801c42738746ad8b51af95b07932 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 10 Oct 2017 12:04:52 -0700 Subject: [PATCH 08/11] zlib: don't build with ninja --- packages/compress/zlib/package.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/compress/zlib/package.mk b/packages/compress/zlib/package.mk index 9a2a4d1735..006a7f30a1 100644 --- a/packages/compress/zlib/package.mk +++ b/packages/compress/zlib/package.mk @@ -29,6 +29,7 @@ PKG_SECTION="compress" PKG_SHORTDESC="zlib: A general purpose (ZIP) data compression library" PKG_LONGDESC="zlib is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format)." PKG_AUTORECONF="no" +PKG_USE_NINJA="no" post_configure_target() { ## configure minizip From d701a7d1e2d3438fb7e35d91f73537b9762e923f Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 10 Oct 2017 12:07:08 -0700 Subject: [PATCH 09/11] expat: add patch to not build docs --- packages/textproc/expat/package.mk | 7 +----- ...expat-0001-allow-disabling-doc-build.patch | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 packages/textproc/expat/patches/expat-0001-allow-disabling-doc-build.patch diff --git a/packages/textproc/expat/package.mk b/packages/textproc/expat/package.mk index 4525d18441..232c442f0d 100644 --- a/packages/textproc/expat/package.mk +++ b/packages/textproc/expat/package.mk @@ -31,9 +31,4 @@ PKG_LONGDESC="Expat is an XML parser library written in C. It is a stream-orient PKG_IS_ADDON="no" PKG_AUTORECONF="no" -PKG_CMAKE_OPTS_TARGET="-DBUILD_tools=OFF -DBUILD_examples=OFF -DBUILD_tests=OFF -DBUILD_shared=ON" - -pre_make_target() { - # fix builderror when building in subdirs - cp -r ../doc . -} +PKG_CMAKE_OPTS_TARGET="-DBUILD_docs=OFF -DBUILD_tools=OFF -DBUILD_examples=OFF -DBUILD_tests=OFF -DBUILD_shared=ON" diff --git a/packages/textproc/expat/patches/expat-0001-allow-disabling-doc-build.patch b/packages/textproc/expat/patches/expat-0001-allow-disabling-doc-build.patch new file mode 100644 index 0000000000..85f12b13b2 --- /dev/null +++ b/packages/textproc/expat/patches/expat-0001-allow-disabling-doc-build.patch @@ -0,0 +1,23 @@ +diff -Naur a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2016-06-21 05:58:38.000000000 -0700 ++++ b/CMakeLists.txt 2017-10-10 09:39:36.713079492 -0700 +@@ -10,6 +10,7 @@ + set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") + set(PACKAGE_TARNAME "${PACKAGE_NAME}") + ++option(BUILD_docs "build the docs for expat library" ON) + option(BUILD_tools "build the xmlwf tool for expat library" ON) + option(BUILD_examples "build the examples for expat library" ON) + option(BUILD_tests "build the tests for expat library" ON) +@@ -92,8 +93,9 @@ + install(FILES lib/expat.h lib/expat_external.h DESTINATION include) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/expat.pc DESTINATION lib/pkgconfig) + +- +-add_custom_command(TARGET expat PRE_BUILD COMMAND $(MAKE) -C doc xmlwf.1) ++if(BUILD_docs) ++ add_custom_command(TARGET expat PRE_BUILD COMMAND $(MAKE) -C doc xmlwf.1) ++endif() + + if(BUILD_tools AND NOT WINCE) + set(xmlwf_SRCS From 66c84dd2be936346624770b15bc91c82bef32c52 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 10 Oct 2017 12:09:34 -0700 Subject: [PATCH 10/11] virtual/toolchain: add ninja:host --- packages/virtual/toolchain/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/virtual/toolchain/package.mk b/packages/virtual/toolchain/package.mk index 5b71694896..4bb3981b67 100644 --- a/packages/virtual/toolchain/package.mk +++ b/packages/virtual/toolchain/package.mk @@ -22,7 +22,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="https://libreelec.tv" PKG_URL="" -PKG_DEPENDS_TARGET="configtools:host make:host xz:host sed:host pkg-config:host autoconf:host automake:host libtool:host intltool:host autoconf-archive:host gcc:host bison:host flex:host cmake:host xmlstarlet:host yasm:host p7zip:host" +PKG_DEPENDS_TARGET="configtools:host make:host xz:host sed:host pkg-config:host autoconf:host automake:host libtool:host intltool:host autoconf-archive:host gcc:host bison:host flex:host cmake:host xmlstarlet:host yasm:host p7zip:host ninja:host" PKG_SECTION="virtual" PKG_SHORTDESC="toolchain: LibreELEC.tv' toolchain" PKG_LONGDESC="a crosscompiling toolchain to compile all packages" From 71c9563fc8f99451454943517105001e8bcc6893 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Sun, 8 Oct 2017 22:02:11 -0700 Subject: [PATCH 11/11] kodi: add patch to fix ninja build --- .../kodi/patches/kodi-100.70-fix-json.patch | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 packages/mediacenter/kodi/patches/kodi-100.70-fix-json.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 new file mode 100644 index 0000000000..3411ba32a6 --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-100.70-fix-json.patch @@ -0,0 +1,58 @@ +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) +