From 8bfd6eaef75ecf715779cec2706ed2595fcefa1a Mon Sep 17 00:00:00 2001 From: Lorenzo Fontana Date: Fri, 14 Aug 2020 17:44:21 +0200 Subject: [PATCH] build: fix JQ compilation issues and link oniguruma Signed-off-by: Lorenzo Fontana --- cmake/modules/jq.cmake | 48 ++++++++++++++++++++------------------ cmake/modules/sysdig.cmake | 5 ++-- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/cmake/modules/jq.cmake b/cmake/modules/jq.cmake index 3b48a0e6..2dd07b11 100644 --- a/cmake/modules/jq.cmake +++ b/cmake/modules/jq.cmake @@ -10,26 +10,28 @@ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. # -if(NOT USE_BUNDLED_DEPS) - find_path(JQ_INCLUDE jq.h PATH_SUFFIXES jq) - find_library(JQ_LIB NAMES jq) - if(JQ_INCLUDE AND JQ_LIB) - message(STATUS "Found jq: include: ${JQ_INCLUDE}, lib: ${JQ_LIB}") - else() - message(FATAL_ERROR "Couldn't find system jq") - endif() -else() - set(JQ_SRC "${PROJECT_BINARY_DIR}/jq-prefix/src/jq") - message(STATUS "Using bundled jq in '${JQ_SRC}'") - set(JQ_INCLUDE "${JQ_SRC}") - set(JQ_LIB "${JQ_SRC}/.libs/libjq.a") - ExternalProject_Add( - jq - URL "https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz" - URL_HASH "SHA256=c4d2bfec6436341113419debf479d833692cc5cdab7eb0326b5a4d4fbe9f493c" - CONFIGURE_COMMAND ./configure --disable-maintainer-mode --enable-all-static --disable-dependency-tracking - BUILD_COMMAND ${CMD_MAKE} LDFLAGS=-all-static - BUILD_IN_SOURCE 1 - PATCH_COMMAND curl -L https://github.com/stedolan/jq/commit/8eb1367ca44e772963e704a700ef72ae2e12babd.patch | patch - INSTALL_COMMAND "") -endif() +if (NOT USE_BUNDLED_DEPS) + find_path(JQ_INCLUDE jq.h PATH_SUFFIXES jq) + find_library(JQ_LIB NAMES jq) + if (JQ_INCLUDE AND JQ_LIB) + message(STATUS "Found jq: include: ${JQ_INCLUDE}, lib: ${JQ_LIB}") + else () + message(FATAL_ERROR "Couldn't find system jq") + endif () +else () + set(JQ_SRC "${PROJECT_BINARY_DIR}/jq-prefix/src/jq") + message(STATUS "Using bundled jq in '${JQ_SRC}'") + set(JQ_INCLUDE "${JQ_SRC}") + set(JQ_INSTALL_DIR "${JQ_SRC}/target") + set(JQ_LIB "${JQ_INSTALL_DIR}/lib/libjq.a") + set(ONIGURUMA_LIB "${JQ_INSTALL_DIR}/lib/libonig.a") + + ExternalProject_Add( + jq + URL "https://github.com/stedolan/jq/releases/download/jq-1.6/jq-1.6.tar.gz" + URL_HASH "SHA256=5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72" + CONFIGURE_COMMAND autoreconf -fi && ./configure --disable-maintainer-mode --enable-all-static --disable-dependency-tracking --with-oniguruma=builtin --prefix=${JQ_INSTALL_DIR} + BUILD_COMMAND ${CMD_MAKE} LDFLAGS=-all-static + BUILD_IN_SOURCE 1 + INSTALL_COMMAND ${CMD_MAKE} install) +endif () diff --git a/cmake/modules/sysdig.cmake b/cmake/modules/sysdig.cmake index 4024bf5c..02fc771e 100644 --- a/cmake/modules/sysdig.cmake +++ b/cmake/modules/sysdig.cmake @@ -18,6 +18,7 @@ set(SYSDIG_CMAKE_WORKING_DIR "${CMAKE_BINARY_DIR}/sysdig-repo") if(USE_BUNDLED_DEPS) # explicitly force this dependency to use the bundled OpenSSL set(USE_BUNDLED_OPENSSL ON) + set(USE_BUNDLED_JQ ON) endif() file(MAKE_DIRECTORY ${SYSDIG_CMAKE_WORKING_DIR}) @@ -26,8 +27,8 @@ file(MAKE_DIRECTORY ${SYSDIG_CMAKE_WORKING_DIR}) # To update sysdig version for the next release, change the default below # In case you want to test against another sysdig version just pass the variable - ie., `cmake -DSYSDIG_VERSION=dev ..` if(NOT SYSDIG_VERSION) - set(SYSDIG_VERSION "113c22c4693fac5cc2db1b115c2f1ee0b6b701b7") - set(SYSDIG_CHECKSUM "SHA256=48fb9ec586ec217d8509e4d20a94e911a9679c78ddc23877d07c6dda26ff34db") + set(SYSDIG_VERSION "build/jq-update") # todo(fntlnz): revert this before merging + set(SYSDIG_CHECKSUM "SHA256=be04af32ade8f4c77ae39c45cb8820975f023b46fdf45edcdd28be104d89110b") endif() set(PROBE_VERSION "${SYSDIG_VERSION}")