]> granicus.if.org Git - handbrake/commitdiff
contrib: Add libgnurx to provide POSIX regex on Windows.
authorbradleys <bradley@bradleysepos.com>
Wed, 15 Oct 2014 23:32:41 +0000 (23:32 +0000)
committerbradleys <bradley@bradleysepos.com>
Wed, 15 Oct 2014 23:32:41 +0000 (23:32 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6445 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/module.defs
make/configure.py
make/include/main.defs
test/module.defs

index b1920fdbd4c394f5b7c210624ee4ed27cb1ff07d..f45c7e40b84f2d34ea7ea3387aa2f90b3dd6e8f3 100644 (file)
@@ -1,6 +1,6 @@
 __deps__ := A52DEC BZIP2 LIBVPX FFMPEG FONTCONFIG FREETYPE LAME LIBASS LIBDCA \
     LIBDVDREAD LIBDVDNAV LIBICONV LIBOGG LIBSAMPLERATE LIBTHEORA LIBVORBIS LIBXML2 \
-    PTHREADW32 X264 X265 ZLIB LIBBLURAY FDKAAC LIBMFX
+    PTHREADW32 X264 X265 ZLIB LIBBLURAY FDKAAC LIBMFX LIBGNURX
 
 $(eval $(call import.MODULE.defs,LIBHB,libhb,$(__deps__)))
 $(eval $(call import.GCC,LIBHB))
@@ -128,6 +128,12 @@ else
     LIBHB.GCC.l += iconv
 endif
 
+ifneq ($(HAS.regex),1)
+LIBHB.dll.libs += $(CONTRIB.build/)lib/libregex.a
+else
+    LIBHB.GCC.l += regex
+endif
+
 ifeq (1,$(FRIBIDI.enabled))
     LIBHB.dll.libs += $(CONTRIB.build/)lib/libfribidi.a
 else
index 89a1edec6642aeef689c72cd52dd4bd0f13f895e..334ff07dd1879c970d1983d38289b610974fdb4d 100644 (file)
@@ -1580,6 +1580,42 @@ int main ()
         iconv = LDProbe( 'static iconv', '%s -static' % Tools.gcc.pathname, '-liconv', iconv_test )
         iconv.run()
 
+        regex_test = """
+#include <stdio.h>
+#include <regex.h>
+
+int match(regex_t *x, char *s)
+{
+    regmatch_t matches[1];
+    return regexec(x, s, 1, matches, 0);
+}
+
+int main()
+{
+    int     rv;
+    regex_t exp;
+
+    rv = regcomp(&exp, "^[0-9]+$";", REG_EXTENDED);
+    if (rv != 0) {
+        return 1;
+    }
+
+    if (match(&exp, "7") != 0)
+    {
+        return 1;
+    }
+    if (match(&exp, "foo") == 0)
+    {
+        return 1;
+    }
+
+    regfree(&exp);
+    return 0;
+}
+"""
+        regex = LDProbe( 'static regex', '%s -static' % Tools.gcc.pathname, '-lregex', regex_test )
+        regex.run()
+
     ## cfg hook before doc prep
     cfg.doc_ready()
 
@@ -1703,6 +1739,8 @@ int main ()
             doc.add( 'HAS.libz', 1 )
         if not iconv.fail:
             doc.add( 'HAS.iconv', 1 )
+        if not regex.fail:
+            doc.add( 'HAS.regex', 1 )
 
     doc.addMake( '' )
     doc.addMake( '## define debug mode and optimize before other includes' )
index 6d27f96697060d567199421fe0abbacb70e5aae2..445796d71bb3d976a2ed838f2d839c81e82132b0 100644 (file)
@@ -84,6 +84,9 @@ endif
 ifneq ($(HAS.libz),1)
     MODULES += contrib/zlib
 endif
+ifneq ($(HAS.regex),1)
+    MODULES += contrib/libgnurx
+endif
 endif
 
 ifneq (,$(filter $(BUILD.system),solaris))
index 37187ed99da261e38d03c46290441e02a95540d6..609c96b5d735444aef51954a99f9990ee34b1db9 100644 (file)
@@ -60,7 +60,7 @@ endif
 ifeq (1,$(FEATURE.hwd))
     TEST.GCC.D += USE_HWD
 endif
-    TEST.GCC.l += pthreadGC2 iconv ws2_32
+    TEST.GCC.l += pthreadGC2 iconv ws2_32 regex
     TEST.GCC.D += PTW32_STATIC_LIB
     TEST.GCC.args.extra.exe++ += -static
 endif #   (1-mingw,$(BUILD.cross)-$(BUILD.system))