Brotli: prefer new C++ API header (compressor.h). No functional changes. Change-Id: Ie88775d3451483ac65d0d5d9d61b896b48fe6a0e Signed-off-by: Piotr Sikora <piotrsikora@google.com> Reviewed-on: https://nginx-review.googlesource.com/1171 Reviewed-by: Martin Maly <mmaly@google.com>
diff --git a/BUILD b/BUILD index e89e15b..8ce09fa 100644 --- a/BUILD +++ b/BUILD
@@ -46,6 +46,7 @@ ], copts = nginx_cxxopts, defines = [ + "NGX_HAVE_BROTLI_ENC_COMPRESSOR_H", "NGX_HTTP_BROTLI_FILTER", ], visibility = [
diff --git a/config b/config index 9f4d15f..0f829c7 100644 --- a/config +++ b/config
@@ -54,17 +54,20 @@ fi # -# filter module (depends on Brotli library) +# filter module (depends on Brotli C++ library) # +# new C++ API header (compressor.h) + +ngx_feature_name=NGX_HAVE_BROTLI_ENC_COMPRESSOR_H ngx_feature_run=no ngx_feature_cpp=yes -ngx_feature_incs="#include <brotli/enc/encode.h>" +ngx_feature_incs="#include <brotli/enc/compressor.h>" ngx_feature_test="brotli::BrotliParams params; params.quality = 11" # auto-discovery -ngx_feature="Brotli library" +ngx_feature="Brotli C++ library (compressor.h)" ngx_feature_cpp=yes ngx_feature_path= ngx_feature_libs="-lbrotlienc -lstdc++" @@ -72,7 +75,7 @@ if [ $ngx_found = no ]; then # FreeBSD, OpenBSD - ngx_feature="Brotli library in /usr/local/" + ngx_feature="Brotli C++ library (compressor.h) in /usr/local/" ngx_feature_cpp=yes ngx_feature_path="/usr/local/include" if [ $NGX_RPATH = YES ]; then @@ -85,7 +88,7 @@ if [ $ngx_found = no ]; then # NetBSD - ngx_feature="Brotli library in /usr/pkg/" + ngx_feature="Brotli C++ library (compressor.h) in /usr/pkg/" ngx_feature_cpp=yes ngx_feature_path="/usr/pkg/include" if [ $NGX_RPATH = YES ]; then @@ -98,7 +101,60 @@ if [ $ngx_found = no ]; then # MacPorts - ngx_feature="Brotli library in /opt/local/" + ngx_feature="Brotli C++ library (compressor.h) in /opt/local/" + ngx_feature_cpp=yes + ngx_feature_path="/opt/local/include" + if [ $NGX_RPATH = YES ]; then + ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lbrotlienc -lstdc++" + else + ngx_feature_libs="-L/opt/local/lib -lbrotlienc -lstdc++" + fi + . $ngx_addon_dir/auto/feature +fi + +# original C++ API header (encode.h) + +ngx_feature_name= +ngx_feature_incs="#include <brotli/enc/encode.h>" + +if [ $ngx_found = no ]; then + # auto-discovery + ngx_feature="Brotli C++ library (encode.h)" + ngx_feature_cpp=yes + ngx_feature_path= + ngx_feature_libs="-lbrotlienc -lstdc++" + . $ngx_addon_dir/auto/feature +fi + +if [ $ngx_found = no ]; then + # FreeBSD, OpenBSD + ngx_feature="Brotli C++ library (encode.h) in /usr/local/" + ngx_feature_cpp=yes + ngx_feature_path="/usr/local/include" + if [ $NGX_RPATH = YES ]; then + ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lbrotlienc -lstdc++" + else + ngx_feature_libs="-L/usr/local/lib -lbrotlienc -lstdc++" + fi + . $ngx_addon_dir/auto/feature +fi + +if [ $ngx_found = no ]; then + # NetBSD + ngx_feature="Brotli C++ library (encode.h) in /usr/pkg/" + ngx_feature_cpp=yes + ngx_feature_path="/usr/pkg/include" + if [ $NGX_RPATH = YES ]; then + ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lbrotlienc -lstdc++" + else + ngx_feature_libs="-L/usr/pkg/lib -lbrotlienc -lstdc++" + fi + . $ngx_addon_dir/auto/feature +fi + +if [ $ngx_found = no ]; then + # MacPorts + ngx_feature="Brotli C++ library (encode.h) in /opt/local/" ngx_feature_cpp=yes ngx_feature_path="/opt/local/include" if [ $NGX_RPATH = YES ]; then @@ -110,7 +166,7 @@ fi if [ $ngx_found = no ]; then - echo "$0: error: ngx_brotli filter module requires Brotli library." + echo "$0: error: ngx_brotli filter module requires Brotli C++ library." exit 1 fi
diff --git a/src/ngx_http_brotli_filter_module.cc b/src/ngx_http_brotli_filter_module.cc index 02280a1..19da345 100644 --- a/src/ngx_http_brotli_filter_module.cc +++ b/src/ngx_http_brotli_filter_module.cc
@@ -12,7 +12,11 @@ #include <ngx_http.h> } +#if (NGX_HAVE_BROTLI_ENC_COMPRESSOR_H) +#include <brotli/enc/compressor.h> +#else #include <brotli/enc/encode.h> +#endif typedef struct {