aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo-Chuan Hsieh <sunpoet@FreeBSD.org>2023-04-05 17:07:18 +0000
committerPo-Chuan Hsieh <sunpoet@FreeBSD.org>2023-04-05 17:29:37 +0000
commitbca243c2404302e2c0c34f85f0a532d1ae6096fc (patch)
tree5c94a845cbd8c5c419c355e800c40ccc8edf24f2
parent6527bbb3b36546b7551195b54fea3d4a6da9e538 (diff)
downloadports-bca243c2404302e2c0c34f85f0a532d1ae6096fc.tar.gz
ports-bca243c2404302e2c0c34f85f0a532d1ae6096fc.zip
devel/libddwaf: Add libddwaf 1.8.2
libddwaf is Datadog's implementation of a Web Application Firewall (WAF) engine, with a goal of low performance and memory overhead, and embeddability in a wide variety of language runtimes through a C API.
-rw-r--r--devel/Makefile1
-rw-r--r--devel/libddwaf/Makefile38
-rw-r--r--devel/libddwaf/distinfo7
-rw-r--r--devel/libddwaf/files/patch-CMakeLists.txt207
-rw-r--r--devel/libddwaf/files/patch-perf-CMakeLists.txt19
-rw-r--r--devel/libddwaf/files/patch-src-ip_utils.cpp10
-rw-r--r--devel/libddwaf/files/patch-third_party-CMakeLists.txt328
-rw-r--r--devel/libddwaf/pkg-descr3
-rw-r--r--devel/libddwaf/pkg-plist5
9 files changed, 618 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index e0762d7ac67b..26ccd15a6148 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1183,6 +1183,7 @@
SUBDIR += libdbusmenu
SUBDIR += libdbusmenu-qt
SUBDIR += libddoc
+ SUBDIR += libddwaf
SUBDIR += libdevq
SUBDIR += libdfui
SUBDIR += libdill
diff --git a/devel/libddwaf/Makefile b/devel/libddwaf/Makefile
new file mode 100644
index 000000000000..ef17746a4c1b
--- /dev/null
+++ b/devel/libddwaf/Makefile
@@ -0,0 +1,38 @@
+PORTNAME= libddwaf
+PORTVERSION= 1.8.2
+CATEGORIES= devel
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Datadog WAF engine
+WWW= https://github.com/DataDog/libddwaf
+
+LICENSE= APACHE20 BSD3CLAUSE
+LICENSE_COMB= dual
+LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE.Apache
+LICENSE_FILE_BSD3CLAUSE=${WRKSRC}/LICENSE.BSD3
+
+BUILD_DEPENDS= rapidjson>=1.1.0.524:devel/rapidjson
+LIB_DEPENDS= libac.so:devel/libac \
+ libbenchmark.so:devel/benchmark \
+ libgtest.so:devel/googletest \
+ libinjection.so:devel/libinjection \
+ libre2.so:devel/re2 \
+ libutf8proc.so:textproc/utf8proc \
+ libyaml-cpp.so:devel/yaml-cpp
+
+USES= cmake compiler:c++17-lang localbase:ldflags
+
+CMAKE_OFF= LIBDDWAF_KEEP_SYMBOL_FILE LIBDDWAF_TESTING
+CMAEK_ON= LIBDDWAF_BUILD_SHARED LIBDDWAF_BUILD_STATIC
+
+USE_GITHUB= yes
+GH_ACCOUNT= DataDog
+GH_TUPLE= DataDog:appsec-event-rules:1.3.2:DataDog_appsec_event_rules/third_party/proj_event_rules \
+ Tencent:rapidjson:22a62fc:Tencent_rapidjson/third_party/rapidjson
+
+post-patch:
+# Clean up bundled libraries
+ @${RM} -r ${WRKSRC}/third_party/libinjection/
+ @${RM} -r ${WRKSRC}/third_party/lua-aho-corasick/
+
+.include <bsd.port.mk>
diff --git a/devel/libddwaf/distinfo b/devel/libddwaf/distinfo
new file mode 100644
index 000000000000..86e7503999e1
--- /dev/null
+++ b/devel/libddwaf/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1679498480
+SHA256 (DataDog-libddwaf-1.8.2_GH0.tar.gz) = f8f645088f555fcd3be54447513c64cb863c10324e3294712c6651cc6780412b
+SIZE (DataDog-libddwaf-1.8.2_GH0.tar.gz) = 691348
+SHA256 (DataDog-appsec-event-rules-1.3.2_GH0.tar.gz) = c890c46b5ae19f0a58fdec920dc5616b406ef5bac57ae8b1bffac91f05cf7bfd
+SIZE (DataDog-appsec-event-rules-1.3.2_GH0.tar.gz) = 140353
+SHA256 (Tencent-rapidjson-22a62fc_GH0.tar.gz) = 94068810b413fb5e7334a8bab6e8190b6f56497b660110e212a619793fc2d93f
+SIZE (Tencent-rapidjson-22a62fc_GH0.tar.gz) = 1107453
diff --git a/devel/libddwaf/files/patch-CMakeLists.txt b/devel/libddwaf/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..d57eba89f9e0
--- /dev/null
+++ b/devel/libddwaf/files/patch-CMakeLists.txt
@@ -0,0 +1,207 @@
+--- CMakeLists.txt.orig 2023-01-17 18:39:22 UTC
++++ CMakeLists.txt
+@@ -8,23 +8,23 @@ set(CMAKE_PROJECT_VERSION ${version})
+ configure_file(src/version.hpp.in ${CMAKE_CURRENT_SOURCE_DIR}/src/version.hpp)
+
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum OS X deployment version")
+-if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR
+- CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
+- set(CPU_TYPE ${CMAKE_OSX_ARCHITECTURES})
+-endif()
++#if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR
++# CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
++# set(CPU_TYPE ${CMAKE_OSX_ARCHITECTURES})
++#endif()
+
+ set(CMAKE_C_STANDARD 99)
+ set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+-set(LIBDDWAF_SHARED_LINKER_FLAGS "-static-libstdc++" CACHE STRING "Shared library extra linker flags")
++#set(LIBDDWAF_SHARED_LINKER_FLAGS "-static-libstdc++" CACHE STRING "Shared library extra linker flags")
+ set(LIBDDWAF_EXE_LINKER_FLAGS "" CACHE STRING "Executable extra linker flags")
+ set(LIBDDWAF_PACKAGE_SUFFIX "" CACHE STRING "Suffix for packaging purposes")
+-if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
+- set(LIBDDWAF_PACKAGE_PROCESSOR ${CMAKE_OSX_ARCHITECTURES} CACHE STRING "Alternative processor for packaging purposes")
+-else()
+- set(LIBDDWAF_PACKAGE_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR} CACHE STRING "Alternative processor for packaging purposes")
+-endif()
++#if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
++# set(LIBDDWAF_PACKAGE_PROCESSOR ${CMAKE_OSX_ARCHITECTURES} CACHE STRING "Alternative processor for packaging purposes")
++#else()
++# set(LIBDDWAF_PACKAGE_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR} CACHE STRING "Alternative processor for packaging purposes")
++#endif()
+
+ option(LIBDDWAF_BUILD_SHARED "Build shared library" ON)
+ option(LIBDDWAF_BUILD_STATIC "Build shared library" ON)
+@@ -59,7 +59,7 @@ endif()
+
+ include(GNUInstallDirs)
+
+-add_subdirectory(third_party)
++#add_subdirectory(third_party)
+
+ set(LIBDDWAF_SOURCE
+ ${libddwaf_SOURCE_DIR}/src/clock.cpp
+@@ -121,7 +121,8 @@ install(FILES ${libddwaf_SOURCE_DIR}/include/ddwaf.h D
+ # System dependencies
+ set(LIBDDWAF_INTERFACE_LIBRARIES "")
+ set(LIBDDWAF_PRIVATE_LIBRARIES
+- lib_re2 lib_rapidjson lib_ac lib_injection lib_radix lib_utf8proc)
++# lib_re2 lib_rapidjson lib_ac lib_injection lib_radix lib_utf8proc)
++ lib_radix)
+
+ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ # needed for glibc <2.17. We compile with --as-needed so the library won't
+@@ -149,6 +150,27 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ elseif(WIN32)
+ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES ws2_32)
+ endif()
++find_library(LIBAC ac)
++if (LIBAC)
++ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES ac)
++endif()
++find_library(LIBINJECTION injection)
++if (LIBINJECTION)
++ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES injection)
++endif()
++add_library(lib_radix STATIC ${PROJECT_SOURCE_DIR}/third_party/radixlib/radixlib.c)
++target_include_directories(lib_radix INTERFACE ${PROJECT_SOURCE_DIR}/third_party/radixlib)
++set_target_properties(lib_radix PROPERTIES POSITION_INDEPENDENT_CODE 1)
++add_library(lib_rapidjson INTERFACE IMPORTED GLOBAL)
++target_include_directories(lib_rapidjson INTERFACE ${PROJECT_SOURCE_DIR}/third_party/rapidjson/include)
++find_library(LIBRE2 re2)
++if (LIBRE2)
++ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES re2)
++endif()
++find_library(LIBUTF8PROC utf8proc)
++if (LIBUTF8PROC)
++ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES utf8proc)
++endif()
+
+ target_link_libraries(libddwaf_objects
+ PRIVATE ${LIBDDWAF_PRIVATE_LIBRARIES}
+@@ -173,66 +195,67 @@ if (LIBDDWAF_BUILD_STATIC)
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+ # Post-processing on the static library
+- if(MSVC)
+- add_custom_command(TARGET libddwaf_static POST_BUILD
+- COMMAND ${CMAKE_COMMAND} -E make_directory lib_comb
+- COMMAND ${CMAKE_COMMAND} -E chdir lib_comb lib.exe
+- /OUT:combined${CMAKE_STATIC_LIBRARY_SUFFIX}
+- $<TARGET_FILE:libddwaf_static> $<TARGET_FILE:lib_re2> $<TARGET_FILE:lib_ac>
+- $<TARGET_FILE:lib_injection> $<TARGET_FILE:lib_utf8proc> $<TARGET_FILE:lib_radix>
+- COMMAND ${CMAKE_COMMAND} -E copy lib_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+- else()
+- if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
+- add_custom_command(TARGET libddwaf_static POST_BUILD
+- COMMAND ${CMAKE_COMMAND} -E make_directory ar_comb
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:libddwaf_static>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_re2>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_ac>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_injection>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_utf8proc>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_radix>
+- COMMAND libtool -static -o ar_comb/combined.a -arch_only ${CMAKE_OSX_ARCHITECTURES} ar_comb/*.o*
+-
+- COMMAND ${CMAKE_COMMAND} -E copy ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
+- COMMAND rm -rf ar_comb
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+- else()
+- add_custom_command(TARGET libddwaf_static POST_BUILD
+- COMMAND ${CMAKE_COMMAND} -E make_directory ar_comb
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:libddwaf_static>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_re2>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_ac>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_injection>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_utf8proc>
+- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_radix>
+- COMMAND ${CMAKE_AR} -qcs ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} ar_comb/*.o*
+-
+- COMMAND ${CMAKE_COMMAND} -E copy ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
+- COMMAND rm -rf ar_comb
+- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+- endif()
+- if(NOT (CMAKE_BUILD_TYPE MATCHES Debug))
+- if (CMAKE_SYSTEM_NAME STREQUAL Darwin OR CMAKE_SYSTEM_NAME STREQUAL Linux)
+- find_program(STRIP strip)
+- if (STRIP STREQUAL "STRIP-NOTFOUND")
+- message(FATAL_ERROR "strip not found")
+- endif()
+- add_custom_command(TARGET libddwaf_static POST_BUILD
+- COMMAND ${STRIP} -x -S $<TARGET_FILE:libddwaf_static> -o $<TARGET_FILE:libddwaf_static>.stripped)
+- install(FILES $<TARGET_FILE:libddwaf_static>.stripped DESTINATION ${CMAKE_INSTALL_LIBDIR})
+- endif()
+- endif()
+- endif()
++# if(MSVC)
++# add_custom_command(TARGET libddwaf_static POST_BUILD
++# COMMAND ${CMAKE_COMMAND} -E make_directory lib_comb
++# COMMAND ${CMAKE_COMMAND} -E chdir lib_comb lib.exe
++# /OUT:combined${CMAKE_STATIC_LIBRARY_SUFFIX}
++# $<TARGET_FILE:libddwaf_static> $<TARGET_FILE:lib_re2> $<TARGET_FILE:lib_ac>
++# $<TARGET_FILE:lib_injection> $<TARGET_FILE:lib_utf8proc> $<TARGET_FILE:lib_radix>
++# COMMAND ${CMAKE_COMMAND} -E copy lib_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
++# WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
++# else()
++# if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
++# add_custom_command(TARGET libddwaf_static POST_BUILD
++# COMMAND ${CMAKE_COMMAND} -E make_directory ar_comb
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:libddwaf_static>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_re2>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_ac>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_injection>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_utf8proc>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_radix>
++# COMMAND libtool -static -o ar_comb/combined.a -arch_only ${CMAKE_OSX_ARCHITECTURES} ar_comb/*.o*
++#
++# COMMAND ${CMAKE_COMMAND} -E copy ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
++# COMMAND rm -rf ar_comb
++# WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
++# else()
++# add_custom_command(TARGET libddwaf_static POST_BUILD
++# COMMAND ${CMAKE_COMMAND} -E make_directory ar_comb
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:libddwaf_static>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_re2>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_ac>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_injection>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_utf8proc>
++# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_radix>
++# COMMAND ${CMAKE_AR} -qcs ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} ar_comb/*.o*
++#
++# COMMAND ${CMAKE_COMMAND} -E copy ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
++# COMMAND rm -rf ar_comb
++# WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
++# endif()
++# if(NOT (CMAKE_BUILD_TYPE MATCHES Debug))
++# if (CMAKE_SYSTEM_NAME STREQUAL Darwin OR CMAKE_SYSTEM_NAME STREQUAL Linux)
++# find_program(STRIP strip)
++# if (STRIP STREQUAL "STRIP-NOTFOUND")
++# message(FATAL_ERROR "strip not found")
++# endif()
++# add_custom_command(TARGET libddwaf_static POST_BUILD
++# COMMAND ${STRIP} -x -S $<TARGET_FILE:libddwaf_static> -o $<TARGET_FILE:libddwaf_static>.stripped)
++# install(FILES $<TARGET_FILE:libddwaf_static>.stripped DESTINATION ${CMAKE_INSTALL_LIBDIR})
++# endif()
++# endif()
++# endif()
+ endif()
+
+ # Shared library
+ if (LIBDDWAF_BUILD_SHARED)
+- execute_process(COMMAND git rev-parse HEAD
+- WORKING_DIRECTORY ${libddwaf_SOURCE_DIR}
+- OUTPUT_VARIABLE BUILD_ID
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- )
++# execute_process(COMMAND git rev-parse HEAD
++# WORKING_DIRECTORY ${libddwaf_SOURCE_DIR}
++# OUTPUT_VARIABLE BUILD_ID
++# OUTPUT_STRIP_TRAILING_WHITESPACE
++# )
++ set(BUILD_ID "4be56b648aa8ce8b86255b0edad78862d102f65d")
+ message(STATUS "Build id is ${BUILD_ID}")
+ string(SUBSTRING "${BUILD_ID}" 0 2 BUILD_ID_PREFIX)
+ string(SUBSTRING "${BUILD_ID}" 2 39 BUILD_ID_SUFFIX)
diff --git a/devel/libddwaf/files/patch-perf-CMakeLists.txt b/devel/libddwaf/files/patch-perf-CMakeLists.txt
new file mode 100644
index 000000000000..2a537f2ef704
--- /dev/null
+++ b/devel/libddwaf/files/patch-perf-CMakeLists.txt
@@ -0,0 +1,19 @@
+--- perf/CMakeLists.txt.orig 2022-09-22 09:00:38 UTC
++++ perf/CMakeLists.txt
+@@ -13,8 +13,8 @@ target_link_libraries(benchcmp PRIVATE lib_yamlcpp m)
+ add_executable(benchmerge benchmerge.cpp)
+ target_link_libraries(benchmerge PRIVATE lib_yamlcpp m)
+
+-ExternalProject_Get_property(proj_event_rules SOURCE_DIR)
+-set(EVENT_RULES_SOURCE_DIR ${SOURCE_DIR})
++#ExternalProject_Get_property(proj_event_rules SOURCE_DIR)
++set(EVENT_RULES_SOURCE_DIR ${CMAKE_BINARY_DIR}/third_party/proj_event_rules)
+
+ add_custom_target(run_benchmark
+ COMMAND ${CMAKE_BINARY_DIR}/perf/benchmark
+@@ -27,4 +27,4 @@ add_custom_target(run_benchmark
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ )
+
+-add_dependencies(run_benchmark benchmark proj_event_rules)
++#add_dependencies(run_benchmark benchmark proj_event_rules)
diff --git a/devel/libddwaf/files/patch-src-ip_utils.cpp b/devel/libddwaf/files/patch-src-ip_utils.cpp
new file mode 100644
index 000000000000..bc710d42960a
--- /dev/null
+++ b/devel/libddwaf/files/patch-src-ip_utils.cpp
@@ -0,0 +1,10 @@
+--- src/ip_utils.cpp.orig 2023-01-17 18:39:22 UTC
++++ src/ip_utils.cpp
+@@ -22,6 +22,7 @@
+
+ # include <ws2tcpip.h>
+ #else
++# include <sys/socket.h>
+ # include <arpa/inet.h>
+ # include <netinet/in.h>
+ #endif
diff --git a/devel/libddwaf/files/patch-third_party-CMakeLists.txt b/devel/libddwaf/files/patch-third_party-CMakeLists.txt
new file mode 100644
index 000000000000..ae2315a1b211
--- /dev/null
+++ b/devel/libddwaf/files/patch-third_party-CMakeLists.txt
@@ -0,0 +1,328 @@
+--- third_party/CMakeLists.txt.orig 2022-09-22 09:00:38 UTC
++++ third_party/CMakeLists.txt
+@@ -9,24 +9,24 @@ set(INSTALL_DIR ${CMAKE_BINARY_DIR}/third_party)
+ # workaround for using it in target_include_directories
+ file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
+
+-set(RAPIDJSON_COMMIT 22a62fcc2c2fa2418f5d358cdf65c1df73b418ae)
+-ExternalProject_Add(proj_rapidjson
+- URL https://github.com/Tencent/rapidjson/archive/${RAPIDJSON_COMMIT}.tar.gz
+- INSTALL_DIR ${INSTALL_DIR}
+- CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+- -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
+- -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+- -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
+- -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
+- BUILD_COMMAND ""
+- INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory "<SOURCE_DIR>/include/" "<INSTALL_DIR>/include/"
+-)
++#set(RAPIDJSON_COMMIT 22a62fcc2c2fa2418f5d358cdf65c1df73b418ae)
++#ExternalProject_Add(proj_rapidjson
++# URL https://github.com/Tencent/rapidjson/archive/${RAPIDJSON_COMMIT}.tar.gz
++# INSTALL_DIR ${INSTALL_DIR}
++# CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
++# -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
++# -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
++# -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
++# -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
++# -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
++# -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
++# -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
++# BUILD_COMMAND ""
++# INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory "<SOURCE_DIR>/include/" "<INSTALL_DIR>/include/"
++#)
+ add_library(lib_rapidjson INTERFACE IMPORTED GLOBAL)
+-target_include_directories(lib_rapidjson INTERFACE ${INSTALL_DIR}/include)
+-add_dependencies(lib_rapidjson proj_rapidjson)
++target_include_directories(lib_rapidjson INTERFACE ${INSTALL_DIR}/rapidjson/include)
++#add_dependencies(lib_rapidjson proj_rapidjson)
+ target_compile_definitions(lib_rapidjson INTERFACE RAPIDJSON_HAS_STDSTRING=1)
+
+ if(NOT MSVC)
+@@ -38,153 +38,153 @@ endif()
+ # To avoid building everything for re2, including test binvaries:
+ # BUILD_COMMAND cmake --build <BINARY_DIR> --target re2
+ # But this is not enough, because the install target run afterwards insists on building everything
+-set(RE2_COMMIT 885eb38accf49e2ccdd2fa6786f3590cf40a3e23)
+-ExternalProject_Add(proj_re2
+- URL https://github.com/google/re2/archive/${RE2_COMMIT}.tar.gz
+- INSTALL_DIR ${INSTALL_DIR}
+- CMAKE_ARGS -DCMAKE_VERBOSE_MAKEFILE=1 -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+- -DCMAKE_INSTALL_LIBDIR=lib
+- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+- -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
+- -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+- -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
+- -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
+- -DRE2_BUILD_TESTING=0
+-)
++#set(RE2_COMMIT 885eb38accf49e2ccdd2fa6786f3590cf40a3e23)
++#ExternalProject_Add(proj_re2
++# URL https://github.com/google/re2/archive/${RE2_COMMIT}.tar.gz
++# INSTALL_DIR ${INSTALL_DIR}
++# CMAKE_ARGS -DCMAKE_VERBOSE_MAKEFILE=1 -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
++# -DCMAKE_INSTALL_LIBDIR=lib
++# -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
++# -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
++# -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
++# -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
++# -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
++# -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
++# -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
++# -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
++# -DRE2_BUILD_TESTING=0
++#)
+ # alas, we can't use find_package because by the package is not downloaded by config time
+ # so manually creating the library
+-add_library(lib_re2 STATIC IMPORTED GLOBAL)
+-set_property(TARGET lib_re2 PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}re2${CMAKE_STATIC_LIBRARY_SUFFIX})
+-target_include_directories(lib_re2 INTERFACE ${INSTALL_DIR}/include)
+-if(NOT MSVC)
+- target_link_libraries(lib_re2 INTERFACE -lpthread)
+-endif()
+-add_dependencies(lib_re2 proj_re2)
++#add_library(lib_re2 STATIC IMPORTED GLOBAL)
++#set_property(TARGET lib_re2 PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}re2${CMAKE_STATIC_LIBRARY_SUFFIX})
++#target_include_directories(lib_re2 INTERFACE ${INSTALL_DIR}/include)
++#if(NOT MSVC)
++# target_link_libraries(lib_re2 INTERFACE -lpthread)
++#endif()
++#add_dependencies(lib_re2 proj_re2)
+
+-set(GOOGLETEST_COMMIT 955c7f837efad184ec63e771c42542d37545eaef)
+-ExternalProject_Add(proj_gtest
+- URL https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz
+- INSTALL_DIR ${INSTALL_DIR}
+- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+- -DCMAKE_INSTALL_LIBDIR=lib
+- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+- -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
+- -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+- -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
+- -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
+- -DBUILD_SHARED_LIBS=0
+-)
+-if(CMAKE_BUILD_TYPE MATCHES Debug)
+- set(LIBGTEST_FILENAME ${CMAKE_STATIC_LIBRARY_PREFIX}gtestd${CMAKE_STATIC_LIBRARY_SUFFIX})
+-else()
+- set(LIBGTEST_FILENAME ${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
+-endif()
++#set(GOOGLETEST_COMMIT 955c7f837efad184ec63e771c42542d37545eaef)
++#ExternalProject_Add(proj_gtest
++# URL https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz
++# INSTALL_DIR ${INSTALL_DIR}
++# CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
++# -DCMAKE_INSTALL_LIBDIR=lib
++# -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
++# -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
++# -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
++# -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
++# -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
++# -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
++# -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
++# -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
++# -DBUILD_SHARED_LIBS=0
++#)
++#if(CMAKE_BUILD_TYPE MATCHES Debug)
++# set(LIBGTEST_FILENAME ${CMAKE_STATIC_LIBRARY_PREFIX}gtestd${CMAKE_STATIC_LIBRARY_SUFFIX})
++#else()
++# set(LIBGTEST_FILENAME ${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
++#endif()
+
+-add_library(lib_gtest STATIC IMPORTED GLOBAL)
+-set_property(TARGET lib_gtest PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/${LIBGTEST_FILENAME})
+-target_include_directories(lib_gtest INTERFACE ${INSTALL_DIR}/include)
+-if(NOT MSVC)
+- target_link_libraries(lib_gtest INTERFACE -lpthread)
+-endif()
+-add_dependencies(lib_gtest proj_gtest)
+-set_target_properties(lib_gtest proj_gtest PROPERTIES EXCLUDE_FROM_ALL TRUE)
++#add_library(lib_gtest STATIC IMPORTED GLOBAL)
++#set_property(TARGET lib_gtest PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/${LIBGTEST_FILENAME})
++#target_include_directories(lib_gtest INTERFACE ${INSTALL_DIR}/include)
++#if(NOT MSVC)
++# target_link_libraries(lib_gtest INTERFACE -lpthread)
++#endif()
++#add_dependencies(lib_gtest proj_gtest)
++#set_target_properties(lib_gtest proj_gtest PROPERTIES EXCLUDE_FROM_ALL TRUE)
+
+-add_library(lib_injection STATIC
+- libinjection/src/xss.c
+- libinjection/src/libinjection_html5.c
+- libinjection/src/libinjection_xss.c
+- libinjection/src/libinjection_sqli.c)
+-target_include_directories(lib_injection INTERFACE ${PROJECT_SOURCE_DIR}/libinjection/src)
+-set_target_properties(lib_injection PROPERTIES POSITION_INDEPENDENT_CODE 1)
++#add_library(lib_injection STATIC
++# libinjection/src/xss.c
++# libinjection/src/libinjection_html5.c
++# libinjection/src/libinjection_xss.c
++# libinjection/src/libinjection_sqli.c)
++#target_include_directories(lib_injection INTERFACE ${PROJECT_SOURCE_DIR}/libinjection/src)
++#set_target_properties(lib_injection PROPERTIES POSITION_INDEPENDENT_CODE 1)
+
+-add_library(lib_ac STATIC
+- lua-aho-corasick/ac_fast.cxx
+- lua-aho-corasick/ac_slow.cxx
+- lua-aho-corasick/ac.cxx)
+-target_include_directories(lib_ac INTERFACE ${PROJECT_SOURCE_DIR}/lua-aho-corasick)
+-set_target_properties(lib_ac PROPERTIES POSITION_INDEPENDENT_CODE 1)
++#add_library(lib_ac STATIC
++# lua-aho-corasick/ac_fast.cxx
++# lua-aho-corasick/ac_slow.cxx
++# lua-aho-corasick/ac.cxx)
++#target_include_directories(lib_ac INTERFACE ${PROJECT_SOURCE_DIR}/lua-aho-corasick)
++#set_target_properties(lib_ac PROPERTIES POSITION_INDEPENDENT_CODE 1)
+
+ add_library(lib_radix STATIC
+ radixlib/radixlib.c)
+ target_include_directories(lib_radix INTERFACE ${PROJECT_SOURCE_DIR}/radixlib)
+ set_target_properties(lib_radix PROPERTIES POSITION_INDEPENDENT_CODE 1)
+
+-set(UTF8PROC_VERSION v2.7.0)
+-ExternalProject_Add(proj_utf8proc
+- URL https://github.com/JuliaStrings/utf8proc/archive/refs/tags/${UTF8PROC_VERSION}.tar.gz
+- INSTALL_DIR ${INSTALL_DIR}
+- CMAKE_ARGS -DCMAKE_VERBOSE_MAKEFILE=1 -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+- -DCMAKE_INSTALL_LIBDIR=lib
+- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+- -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
+- -DCMAKE_C_FLAGS_RELWITHDEBINFO=${CMAKE_C_FLAGS_RELWITHDEBINFO}
+- -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
+- -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
+-)
++#set(UTF8PROC_VERSION v2.7.0)
++#ExternalProject_Add(proj_utf8proc
++# URL https://github.com/JuliaStrings/utf8proc/archive/refs/tags/${UTF8PROC_VERSION}.tar.gz
++# INSTALL_DIR ${INSTALL_DIR}
++# CMAKE_ARGS -DCMAKE_VERBOSE_MAKEFILE=1 -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
++# -DCMAKE_INSTALL_LIBDIR=lib
++# -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
++# -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
++# -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
++# -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
++# -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
++# -DCMAKE_C_FLAGS_RELWITHDEBINFO=${CMAKE_C_FLAGS_RELWITHDEBINFO}
++# -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
++# -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
++#)
+
+-add_library(lib_utf8proc STATIC IMPORTED GLOBAL)
+-if (MSVC)
+- set_property(TARGET lib_utf8proc PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}utf8proc_static${CMAKE_STATIC_LIBRARY_SUFFIX})
+-else ()
+- set_property(TARGET lib_utf8proc PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}utf8proc${CMAKE_STATIC_LIBRARY_SUFFIX})
+-endif()
+-target_include_directories(lib_utf8proc INTERFACE ${INSTALL_DIR}/include)
+-add_dependencies(lib_utf8proc proj_utf8proc)
++#add_library(lib_utf8proc STATIC IMPORTED GLOBAL)
++#if (MSVC)
++# set_property(TARGET lib_utf8proc PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}utf8proc_static${CMAKE_STATIC_LIBRARY_SUFFIX})
++#else ()
++# set_property(TARGET lib_utf8proc PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}utf8proc${CMAKE_STATIC_LIBRARY_SUFFIX})
++#endif()
++#target_include_directories(lib_utf8proc INTERFACE ${INSTALL_DIR}/include)
++#add_dependencies(lib_utf8proc proj_utf8proc)
+
+ # yaml-cpp
+-ExternalProject_Add(proj_yamlcpp
+- URL https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.zip
+- INSTALL_DIR ${INSTALL_DIR}
+- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+- -DCMAKE_INSTALL_LIBDIR=lib
+- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+- -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+- -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
+- -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+- -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
+- -DYAML_CPP_BUILD_TESTS=OFF
+- -DYAML_CPP_BUILD_CONTRIB=OFF
+- -DYAML_CPP_BUILD_TOOLS=OFF
+- -DYAML_CPP_INSTALL=ON
+- -DYAML_BUILD_SHARED_LIBS=OFF
+- -DYAML_MSVC_SHARED_RT=OFF
+- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
+- -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
+-)
+-add_library(lib_yamlcpp STATIC IMPORTED GLOBAL)
+-if (NOT MSVC)
+- if(CMAKE_BUILD_TYPE MATCHES Debug)
+- set(LIBYAML_FILENAME libyaml-cppd${CMAKE_STATIC_LIBRARY_SUFFIX})
+- else()
+- set(LIBYAML_FILENAME libyaml-cpp${CMAKE_STATIC_LIBRARY_SUFFIX})
+- endif()
+-else()
+- set(LIBYAML_FILENAME yaml-cpp${CMAKE_STATIC_LIBRARY_SUFFIX})
+-endif()
++#ExternalProject_Add(proj_yamlcpp
++# URL https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.zip
++# INSTALL_DIR ${INSTALL_DIR}
++# CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
++# -DCMAKE_INSTALL_LIBDIR=lib
++# -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
++# -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
++# -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
++# -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
++# -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
++# -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
++# -DYAML_CPP_BUILD_TESTS=OFF
++# -DYAML_CPP_BUILD_CONTRIB=OFF
++# -DYAML_CPP_BUILD_TOOLS=OFF
++# -DYAML_CPP_INSTALL=ON
++# -DYAML_BUILD_SHARED_LIBS=OFF
++# -DYAML_MSVC_SHARED_RT=OFF
++# -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
++# -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
++#)
++#add_library(lib_yamlcpp STATIC IMPORTED GLOBAL)
++#if (NOT MSVC)
++# if(CMAKE_BUILD_TYPE MATCHES Debug)
++# set(LIBYAML_FILENAME libyaml-cppd${CMAKE_STATIC_LIBRARY_SUFFIX})
++# else()
++# set(LIBYAML_FILENAME libyaml-cpp${CMAKE_STATIC_LIBRARY_SUFFIX})
++# endif()
++#else()
++# set(LIBYAML_FILENAME yaml-cpp${CMAKE_STATIC_LIBRARY_SUFFIX})
++#endif()
+
+-set_target_properties(lib_yamlcpp PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/${LIBYAML_FILENAME})
+-target_include_directories(lib_yamlcpp INTERFACE ${INSTALL_DIR}/include)
+-add_dependencies(lib_yamlcpp proj_yamlcpp)
+-set_target_properties(lib_yamlcpp proj_yamlcpp PROPERTIES EXCLUDE_FROM_ALL TRUE)
++#set_target_properties(lib_yamlcpp PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/${LIBYAML_FILENAME})
++#target_include_directories(lib_yamlcpp INTERFACE ${INSTALL_DIR}/include)
++#add_dependencies(lib_yamlcpp proj_yamlcpp)
++#set_target_properties(lib_yamlcpp proj_yamlcpp PROPERTIES EXCLUDE_FROM_ALL TRUE)
+
+ # Appsec event rules
+-ExternalProject_Add(proj_event_rules
+- GIT_REPOSITORY https://github.com/DataDog/appsec-event-rules.git
+- GIT_TAG 1.3.2
+- GIT_SHALLOW ON
+- CONFIGURE_COMMAND ""
+- BUILD_COMMAND ""
+- INSTALL_COMMAND "")
++#ExternalProject_Add(proj_event_rules
++# GIT_REPOSITORY https://github.com/DataDog/appsec-event-rules.git
++# GIT_TAG 1.3.2
++# GIT_SHALLOW ON
++# CONFIGURE_COMMAND ""
++# BUILD_COMMAND ""
++# INSTALL_COMMAND "")
+
+-set_target_properties(proj_event_rules PROPERTIES EXCLUDE_FROM_ALL TRUE)
++#set_target_properties(proj_event_rules PROPERTIES EXCLUDE_FROM_ALL TRUE)
+ # vim: et
diff --git a/devel/libddwaf/pkg-descr b/devel/libddwaf/pkg-descr
new file mode 100644
index 000000000000..1f74c29624fc
--- /dev/null
+++ b/devel/libddwaf/pkg-descr
@@ -0,0 +1,3 @@
+libddwaf is Datadog's implementation of a Web Application Firewall (WAF) engine,
+with a goal of low performance and memory overhead, and embeddability in a wide
+variety of language runtimes through a C API.
diff --git a/devel/libddwaf/pkg-plist b/devel/libddwaf/pkg-plist
new file mode 100644
index 000000000000..811a6838b441
--- /dev/null
+++ b/devel/libddwaf/pkg-plist
@@ -0,0 +1,5 @@
+include/ddwaf.h
+lib/libddwaf.a
+lib/libddwaf.so
+share/cmake/libddwaf/libddwaf-config-%%CMAKE_BUILD_TYPE%%.cmake
+share/cmake/libddwaf/libddwaf-config.cmake