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}")

Reply via email to