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" 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 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() { 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() { 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() { 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) + diff --git a/packages/addons/addon-depends/ninja/package.mk b/packages/python/devel/ninja/package.mk similarity index 89% rename from packages/addons/addon-depends/ninja/package.mk rename to packages/python/devel/ninja/package.mk index ebdfb4854d..657a3497c5 100644 --- a/packages/addons/addon-depends/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() { 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 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" 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