ref: e4d2c255f116f179796d43259a52a8c1f257d827
parent: a9e7243d1a7447f1596d9af97fce6d81ad1bc12b
author: James Zern <jzern@google.com>
date: Wed Jun 26 14:35:11 EDT 2013
test_libvpx: disable pthreads in gtest for win targets currently threading is internal to libvpx so thread safety is unneeded in libgtest -- visual studio builds already operate in this way as they do not have pthread.h available by default. this removes an unconditional link to libpthread using $(extralibs) should libvpx require it. Change-Id: I2f278b711f533d0f4d8a6c896833e3e2237d1f45
--- a/configure
+++ b/configure
@@ -682,6 +682,14 @@
# iOS/ARM builds do not work with gtest. This does not match
# x86 targets.
;;
+ *-win*)
+ # Some mingw toolchains don't have pthread available by default.
+ # Treat these more like visual studio where threading in gtest
+ # would be disabled for the same reason.
+ check_cxx "$@" <<EOF && soft_enable unit_tests
+int z;
+EOF
+ ;;
*)
enabled pthread_h && check_cxx "$@" <<EOF && soft_enable unit_tests
int z;
--- a/libs.mk
+++ b/libs.mk
@@ -448,6 +448,10 @@
include $(SRC_PATH_BARE)/third_party/googletest/gtest.mk
GTEST_SRCS := $(addprefix third_party/googletest/src/,$(call enabled,GTEST_SRCS))
GTEST_OBJS=$(call objs,$(GTEST_SRCS))
+ifeq ($(filter win%,$(TGT_OS)),$(TGT_OS))
+# Disabling pthreads globally will cause issues on darwin and possibly elsewhere
+$(GTEST_OBJS) $(GTEST_OBJS:.o=.d): CXXFLAGS += -DGTEST_HAS_PTHREAD=0
+endif
$(GTEST_OBJS) $(GTEST_OBJS:.o=.d): CXXFLAGS += -I$(SRC_PATH_BARE)/third_party/googletest/src
$(GTEST_OBJS) $(GTEST_OBJS:.o=.d): CXXFLAGS += -I$(SRC_PATH_BARE)/third_party/googletest/src/include
OBJS-$(BUILD_LIBVPX) += $(GTEST_OBJS)
@@ -472,7 +476,7 @@
lib$(CODEC_LIB)$(CODEC_LIB_SUF) libgtest.a ))\
$(if $(BUILD_LIBVPX),$(eval $(call linkerxx_template,$(bin),\
$(LIBVPX_TEST_OBJS) \
- -L. -lvpx -lgtest -lpthread -lm)\
+ -L. -lvpx -lgtest $(extralibs) -lm)\
)))\
$(if $(LIPO_LIBS),$(eval $(call lipo_bin_template,$(bin))))\
--
⑨