This is an automated email from the ASF dual-hosted git repository.
aboda pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
The following commit(s) were added to refs/heads/main by this push:
new 305dab8 MINIFICPP-1405 - Update civetweb version, remove patch,
disable building lua and duktape deps
305dab8 is described below
commit 305dab8043e9ce82dc813e510eea5392264e171a
Author: Adam Hunyadi <[email protected]>
AuthorDate: Fri Dec 4 09:40:12 2020 +0100
MINIFICPP-1405 - Update civetweb version, remove patch, disable building
lua and duktape deps
MINIFICPP-1405 - Add patch fixing how civetweb checks available compiler
options
Signed-off-by: Arpad Boda <[email protected]>
This closes #952
---
cmake/BundledCivetWeb.cmake | 27 +++++++-----
thirdparty/civetweb/civetweb.patch | 90 ++++++++++++--------------------------
2 files changed, 45 insertions(+), 72 deletions(-)
diff --git a/cmake/BundledCivetWeb.cmake b/cmake/BundledCivetWeb.cmake
index 7ed493e..38c9163 100644
--- a/cmake/BundledCivetWeb.cmake
+++ b/cmake/BundledCivetWeb.cmake
@@ -21,17 +21,21 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
# Define patch step
set(PC "${Patch_EXECUTABLE}" -p1 -i
"${SOURCE_DIR}/thirdparty/civetweb/civetweb.patch")
+ set(LIBDIR "lib")
# Define byproducts
if (WIN32)
set(SUFFIX "lib")
else()
set(PREFIX "lib")
- set(SUFFIX "a")
+ include(GNUInstallDirs)
+ set(LIBDIR "${CMAKE_INSTALL_LIBDIR}")
+ set(SUFFIX "a")
+
endif()
set(BYPRODUCTS
- "lib/${PREFIX}civetweb.${SUFFIX}"
- "lib/${PREFIX}civetweb-cpp.${SUFFIX}"
+ "${LIBDIR}/${PREFIX}civetweb.${SUFFIX}"
+ "${LIBDIR}/${PREFIX}civetweb-cpp.${SUFFIX}"
)
set(CIVETWEB_BIN_DIR "${BINARY_DIR}/thirdparty/civetweb-install/" CACHE
STRING "" FORCE)
@@ -44,11 +48,12 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
set(CIVETWEB_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${CIVETWEB_BIN_DIR}"
-DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF
+ -DCIVETWEB_BUILD_TESTING=OFF
+ -DCIVETWEB_ENABLE_DUKTAPE=OFF
+ -DCIVETWEB_ENABLE_LUA=OFF
-DCIVETWEB_ENABLE_CXX=ON
- -DBUILD_TESTING=OFF
-DCIVETWEB_ALLOW_WARNINGS=ON
- -DCIVETWEB_ENABLE_ASAN=OFF # TODO
- )
+ -DCIVETWEB_ENABLE_ASAN=OFF)
if (OPENSSL_OFF)
list(APPEND CIVETWEB_CMAKE_ARGS -DCIVETWEB_ENABLE_SSL=OFF)
endif()
@@ -58,8 +63,8 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
# Build project
ExternalProject_Add(
civetweb-external
- URL "https://github.com/civetweb/civetweb/archive/v1.10.tar.gz"
- URL_HASH
"SHA256=e6958f005aa01b02645bd3ff9760dd085e83d30530cdd97b584632419195bea5"
+ URL "https://github.com/civetweb/civetweb/archive/v1.12.tar.gz"
+ URL_HASH
"SHA256=8cab1e2ad8fb3e2e81fed0b2321a5afbd7269a644c44ed4c3607e0a212c6d9e1"
SOURCE_DIR "${BINARY_DIR}/thirdparty/civetweb-src"
LIST_SEPARATOR % # This is needed for passing semicolon-separated
lists
CMAKE_ARGS ${CIVETWEB_CMAKE_ARGS}
@@ -76,7 +81,7 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
# Set variables
set(CIVETWEB_FOUND "YES" CACHE STRING "" FORCE)
set(CIVETWEB_INCLUDE_DIR "${CIVETWEB_BIN_DIR}/include" CACHE STRING ""
FORCE)
- set(CIVETWEB_LIBRARIES
"${CIVETWEB_BIN_DIR}/lib/${PREFIX}civetweb.${SUFFIX}"
"${CIVETWEB_BIN_DIR}/lib/${PREFIX}civetweb-cpp.${SUFFIX}" CACHE STRING "" FORCE)
+ set(CIVETWEB_LIBRARIES
"${CIVETWEB_BIN_DIR}/${LIBDIR}/${PREFIX}civetweb.${SUFFIX}"
"${CIVETWEB_BIN_DIR}/${LIBDIR}/${PREFIX}civetweb-cpp.${SUFFIX}" CACHE STRING ""
FORCE)
# Set exported variables for FindPackage.cmake
set(PASSTHROUGH_VARIABLES ${PASSTHROUGH_VARIABLES}
"-DEXPORTED_CIVETWEB_INCLUDE_DIR=${CIVETWEB_INCLUDE_DIR}" CACHE STRING "" FORCE)
@@ -86,7 +91,7 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
file(MAKE_DIRECTORY ${CIVETWEB_INCLUDE_DIR})
add_library(CIVETWEB::c-library STATIC IMPORTED)
- set_target_properties(CIVETWEB::c-library PROPERTIES IMPORTED_LOCATION
"${CIVETWEB_BIN_DIR}/lib/${PREFIX}civetweb.${SUFFIX}")
+ set_target_properties(CIVETWEB::c-library PROPERTIES IMPORTED_LOCATION
"${CIVETWEB_BIN_DIR}/${LIBDIR}/${PREFIX}civetweb.${SUFFIX}")
set_property(TARGET CIVETWEB::c-library APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${CIVETWEB_INCLUDE_DIR})
add_dependencies(CIVETWEB::c-library civetweb-external)
if (NOT OPENSSL_OFF)
@@ -94,7 +99,7 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
endif()
add_library(CIVETWEB::civetweb-cpp STATIC IMPORTED)
- set_target_properties(CIVETWEB::civetweb-cpp PROPERTIES IMPORTED_LOCATION
"${CIVETWEB_BIN_DIR}/lib/${PREFIX}civetweb-cpp.${SUFFIX}")
+ set_target_properties(CIVETWEB::civetweb-cpp PROPERTIES IMPORTED_LOCATION
"${CIVETWEB_BIN_DIR}/${LIBDIR}/${PREFIX}civetweb-cpp.${SUFFIX}")
set_property(TARGET CIVETWEB::civetweb-cpp APPEND PROPERTY
INTERFACE_LINK_LIBRARIES CIVETWEB::c-library)
add_dependencies(CIVETWEB::civetweb-cpp civetweb-external)
endfunction(use_bundled_civetweb)
diff --git a/thirdparty/civetweb/civetweb.patch
b/thirdparty/civetweb/civetweb.patch
index c55ce58..dc574e4 100644
--- a/thirdparty/civetweb/civetweb.patch
+++ b/thirdparty/civetweb/civetweb.patch
@@ -1,61 +1,29 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2c08bd28..ccb4fd7f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -101,7 +101,7 @@ message(STATUS "Lua CGI support - ${CIVETWEB_ENABLE_LUA}")
- # Enable installing CivetWeb executables
- option(CIVETWEB_INSTALL_EXECUTABLE "Enable installing CivetWeb executable" ON)
- mark_as_advanced(FORCE CIVETWEB_INSTALL_EXECUTABLE) # Advanced users can
disable
--message(STATUS "Executable installation - ${CIVETWEB_INSTALL_EXECUTABLE}")
-+message(STATUS "Executable installation - ${CIVETWEB_INSTALL_EXECUTABLE}")
-
- # Allow builds to complete with warnings (do not set -Werror)
- # CivetWeb Linux support is stable:
-@@ -294,8 +294,8 @@ if (MINGW)
- endif()
- if (NOT CIVETWEB_ALLOW_WARNINGS)
- add_c_compiler_flag(-Werror)
-+ add_c_compiler_flag(/WX)
- endif()
--add_c_compiler_flag(/WX)
- add_c_compiler_flag(-pedantic-errors)
- add_c_compiler_flag(-fvisibility=hidden)
- add_c_compiler_flag(-fstack-protector-strong RELEASE)
-diff --git a/src/civetweb.c b/src/civetweb.c
-index c0ccbaa2..c692d1c8 100644
---- a/src/civetweb.c
-+++ b/src/civetweb.c
-@@ -14202,7 +14202,7 @@ ssl_get_protocol(int version_id)
- * https://www.openssl.org/docs/man1.1.0/ssl/SSL_set_info_callback.html
- * https://linux.die.net/man/3/ssl_set_info_callback */
- static void
--ssl_info_callback(SSL *ssl, int what, int ret)
-+ssl_info_callback(const SSL *ssl, int what, int ret)
- {
- (void)ret;
-
-@@ -16237,10 +16237,13 @@ worker_thread_run(struct worker_thread_args
*thread_args)
- mg_free(conn->request_info.client_cert);
- conn->request_info.client_cert = 0;
- }
-- }
-+ } else {
-+ /* make sure the connection is cleaned up on SSL failure */
-+ close_connection(conn);
-+ }
- #endif
-- } else {
-- /* process HTTP connection */
-+ } else {
-+ /* process HTTP connection */
- process_new_connection(conn);
- }
-
-@@ -17249,7 +17252,6 @@ mg_get_system_info_impl(char *buffer, int buflen)
- #pragma GCC diagnostic push
- /* Disable bogus compiler warning -Wdate-time */
- #pragma GCC diagnostic ignored "-Wall"
--#pragma GCC diagnostic ignored "-Werror"
- #endif
- mg_snprintf(NULL,
- NULL,
+--- a/cmake/AddCCompilerFlag.cmake
++++ b/cmake/AddCCompilerFlag.cmake
+@@ -24,9 +24,8 @@ function(add_c_compiler_flag FLAG)
+ string(REPLACE "+" "X" SANITIZED_FLAG ${SANITIZED_FLAG})
+ string(REGEX REPLACE "[^A-Za-z_0-9]" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+ string(REGEX REPLACE "_+" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+- set(CMAKE_REQUIRED_FLAGS "${FLAG}")
+- check_c_compiler_flag("" ${SANITIZED_FLAG})
+- if(${SANITIZED_FLAG})
++ check_c_compiler_flag(${SANITIZED_FLAG} NO_DIAGNOSTICS_PRODUCED)
++ if(${NO_DIAGNOSTICS_PRODUCED})
+ set(VARIANT ${ARGV1})
+ if(ARGV1)
+ string(REGEX REPLACE "[^A-Za-z_0-9]" "_" VARIANT "${VARIANT}")
+diff --git a/cmake/AddCXXCompilerFlag.cmake b/cmake/AddCXXCompilerFlag.cmake
+--- a/cmake/AddCXXCompilerFlag.cmake
++++ b/cmake/AddCXXCompilerFlag.cmake
+@@ -24,9 +24,8 @@ function(add_cxx_compiler_flag FLAG)
+ string(REPLACE "+" "X" SANITIZED_FLAG ${SANITIZED_FLAG})
+ string(REGEX REPLACE "[^A-Za-z_0-9]" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+ string(REGEX REPLACE "_+" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+- set(CMAKE_REQUIRED_FLAGS "${FLAG}")
+- check_cxx_compiler_flag("" ${SANITIZED_FLAG})
+- if(${SANITIZED_FLAG})
++ check_cxx_compiler_flag(${SANITIZED_FLAG} NO_DIAGNOSTICS_PRODUCED)
++ if(${NO_DIAGNOSTICS_PRODUCED})
+ set(VARIANT ${ARGV1})
+ if(ARGV1)
+ string(REGEX REPLACE "[^A-Za-z_0-9]" "_" VARIANT "${VARIANT}")