From 278039be063a9f4b12bdfcab872a4b09abab1041 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Tue, 27 Aug 2019 12:05:10 +1000 Subject: [PATCH] mpeg2enc: fix werror build with clang /usr/include/mjpegtools/mpeg2enc/ontheflyratectlpass1.hh:1:9: error: '_ONTHEFLYRATECTLPASS1_HH' is used as a header guard here, followed by #define of a different macro [-Werror,-Wheader-guard] #ifndef _ONTHEFLYRATECTLPASS1_HH ^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/mjpegtools/mpeg2enc/ontheflyratectlpass1.hh:2:9: note: '_ONTHELFYRATECTLPASS1_HH' is defined here; did you mean '_ONTHEFLYRATECTLPASS1_HH'? #define _ONTHELFYRATECTLPASS1_HH ^~~~~~~~~~~~~~~~~~~~~~~~ _ONTHEFLYRATECTLPASS1_HH In file included from ../subprojects/gst-plugins-bad/ext/mpeg2enc/gstmpeg2encoder.cc:31: /usr/include/mjpegtools/mpeg2enc/ontheflyratectlpass2.hh:1:9: error: '_ONTHEFLYRATECTLPASS2_HH' is used as a header guard here, followed by #define of a different macro [-Werror,-Wheader-guard] #ifndef _ONTHEFLYRATECTLPASS2_HH ^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/mjpegtools/mpeg2enc/ontheflyratectlpass2.hh:2:9: note: '_ONTHELFYRATECTLPASS2_HH' is defined here; did you mean '_ONTHEFLYRATECTLPASS2_HH'? #define _ONTHELFYRATECTLPASS2_HH ^~~~~~~~~~~~~~~~~~~~~~~~ _ONTHEFLYRATECTLPASS2_HH /usr/include/mjpegtools/mpeg2enc/encoderparams.hh:82:1: error: struct 'RateCtl' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Werror,-Wmismatched-tags] struct RateCtl; ^ /usr/include/mjpegtools/mpeg2enc/ratectl.hh:50:7: note: previous use is here class RateCtl ^ /usr/include/mjpegtools/mpeg2enc/encoderparams.hh:82:1: note: did you mean class here? struct RateCtl; ^~~~~~ class --- ext/mpeg2enc/meson.build | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ext/mpeg2enc/meson.build b/ext/mpeg2enc/meson.build index 0b1c1c79ee..af99bd564c 100644 --- a/ext/mpeg2enc/meson.build +++ b/ext/mpeg2enc/meson.build @@ -4,6 +4,17 @@ # if someone complains. mjpegtools_dep = dependency('mjpegtools', version : '>=2.0.0', required : get_option('mpeg2enc')) mpeg2enc_dep = cxx.find_library('mpeg2encpp', required : get_option('mpeg2enc')) + +no_warn_args = [] +foreach arg : [ + '-Wno-mismatched-tags', # mjpeg headers get class/struct mixed up + '-Wno-header-guard', + ] + if cxx.has_argument(arg) + no_warn_args += [arg] + endif +endforeach + if mjpegtools_dep.found() and mpeg2enc_dep.found() gstmpeg2enc = library('gstmpeg2enc', 'gstmpeg2enc.cc', @@ -11,7 +22,7 @@ if mjpegtools_dep.found() and mpeg2enc_dep.found() 'gstmpeg2encoder.cc', 'gstmpeg2encstreamwriter.cc', 'gstmpeg2encpicturereader.cc', - cpp_args : gst_plugins_bad_args + ['-DGST_MJPEGTOOLS_API=20000'], + cpp_args : gst_plugins_bad_args + ['-DGST_MJPEGTOOLS_API=20000'] + no_warn_args, link_args : noseh_link_args, include_directories : [configinc, libsinc], dependencies : [gstvideo_dep, mjpegtools_dep, mpeg2enc_dep],