ref: 36187e607dce3ae49cf9a78f908614cfd4568081
parent: 3d28ff98039134325cf689d8d08996fc8dabb225
author: James Zern <jzern@google.com>
date: Thu Apr 30 06:28:43 EDT 2020
libs.mk,msvc: add missing vp9rc project + fix some test_rc_interface issues: add a space before $^ in the vcproj rule to add sources to the target, one between the -I's, and make the guid unique; fixes build / link errors. Change-Id: Ia9c99f6a4482a001d993affbc3b3903c2a4e366a
--- a/libs.mk
+++ b/libs.mk
@@ -91,6 +91,13 @@
INSTALL_MAPS += include/vpx/% $(SRC_PATH_BARE)/$(VP9_PREFIX)/%
CODEC_DOC_SRCS += vpx/vp8.h vpx/vp8cx.h
CODEC_DOC_SECTIONS += vp9 vp9_encoder
+
+ RC_RTC_SRCS := $(addprefix $(VP9_PREFIX),$(call enabled,VP9_CX_SRCS))
+ RC_RTC_SRCS += $(VP9_PREFIX)vp9cx.mk vpx/vp8.h vpx/vp8cx.h
+ RC_RTC_SRCS += $(VP9_PREFIX)ratectrl_rtc.cc
+ RC_RTC_SRCS += $(VP9_PREFIX)ratectrl_rtc.h
+ INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += $(VP9_PREFIX)ratectrl_rtc.cc
+ INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += $(VP9_PREFIX)ratectrl_rtc.h
endif
ifeq ($(CONFIG_VP9_DECODER),yes)
@@ -115,6 +122,7 @@
ifeq ($(CONFIG_MSVS),yes)
CODEC_LIB=$(if $(CONFIG_STATIC_MSVCRT),vpxmt,vpxmd)
GTEST_LIB=$(if $(CONFIG_STATIC_MSVCRT),gtestmt,gtestmd)
+RC_RTC_LIB=$(if $(CONFIG_STATIC_MSVCRT),vp9rcmt,vp9rcmd)
# This variable uses deferred expansion intentionally, since the results of
# $(wildcard) may change during the course of the Make.
VS_PLATFORMS = $(foreach d,$(wildcard */Release/$(CODEC_LIB).lib),$(word 1,$(subst /, ,$(d))))
@@ -225,6 +233,36 @@
vpx.$(VCPROJ_SFX): vpx_config.asm
vpx.$(VCPROJ_SFX): $(RTCD)
+vp9rc.$(VCPROJ_SFX): \
+ VCPROJ_SRCS=$(filter-out $(addprefix %, $(ASM_INCLUDES)), $^)
+
+vp9rc.$(VCPROJ_SFX): $(RC_RTC_SRCS)
+ @echo " [CREATE] $@"
+ $(qexec)$(GEN_VCPROJ) \
+ $(if $(CONFIG_SHARED),--dll,--lib) \
+ --target=$(TOOLCHAIN) \
+ $(if $(CONFIG_STATIC_MSVCRT),--static-crt) \
+ --name=vp9rc \
+ --proj-guid=C26FF952-9494-4838-9A3F-7F3D4F613385 \
+ --ver=$(CONFIG_VS_VERSION) \
+ --src-path-bare="$(SRC_PATH_BARE)" \
+ --out=$@ $(CFLAGS) \
+ $(filter $(SRC_PATH_BARE)/vp9/%.c, $(VCPROJ_SRCS)) \
+ $(filter $(SRC_PATH_BARE)/vp9/%.cc, $(VCPROJ_SRCS)) \
+ $(filter $(SRC_PATH_BARE)/vp9/%.h, $(VCPROJ_SRCS)) \
+ $(filter $(SRC_PATH_BARE)/vpx/%, $(VCPROJ_SRCS)) \
+ $(filter $(SRC_PATH_BARE)/vpx_dsp/%, $(VCPROJ_SRCS)) \
+ $(filter-out $(addprefix $(SRC_PATH_BARE)/, \
+ vp8/%.c vp8/%.h vp9/%.c vp9/%.cc vp9/%.h vpx/% \
+ vpx_dsp/%), \
+ $(VCPROJ_SRCS)) \
+ --src-path-bare="$(SRC_PATH_BARE)" \
+
+PROJECTS-yes += vp9rc.$(VCPROJ_SFX)
+
+vp9rc.$(VCPROJ_SFX): vpx_config.asm
+vp9rc.$(VCPROJ_SFX): $(RTCD)
+
endif
else
LIBVPX_OBJS=$(call objs, $(filter-out $(ASM_INCLUDES), $(CODEC_SRCS)))
@@ -330,8 +368,17 @@
INSTALL-LIBS-yes += $(LIBSUBDIR)/pkgconfig/vpx.pc
INSTALL_MAPS += $(LIBSUBDIR)/pkgconfig/%.pc %.pc
CLEAN-OBJS += vpx.pc
+
+ifeq ($(CONFIG_VP9_ENCODER),yes)
+ RC_RTC_OBJS=$(call objs,$(RC_RTC_SRCS))
+ RC_RTC_OBJS=$(call objs,$(RC_RTC_SRCS))
+ OBJS-yes += $(RC_RTC_OBJS)
+ LIBS-yes += $(BUILD_PFX)libvp9rc.a $(BUILD_PFX)libvp9rc_g.a
+ $(BUILD_PFX)libvp9rc_g.a: $(RC_RTC_OBJS)
endif
+endif
+
libvpx.ver: $(call enabled,CODEC_EXPORTS)
@echo " [CREATE] $@"
$(qexec)echo "{ global:" > $@
@@ -493,8 +540,8 @@
ifneq ($(strip $(RC_INTERFACE_TEST_OBJS)),)
PROJECTS-$(CONFIG_MSVS) += test_rc_interface.$(VCPROJ_SFX)
-test_rc_interface.$(VCPROJ_SFX): \
- $(RC_INTERFACE_TEST_SRCS) vpx.$(VCPROJ_SFX) gtest.$(VCPROJ_SFX)
+test_rc_interface.$(VCPROJ_SFX): $(RC_INTERFACE_TEST_SRCS) vpx.$(VCPROJ_SFX) \
+ vp9rc.$(VCPROJ_SFX) gtest.$(VCPROJ_SFX)
@echo " [CREATE] $@"
$(qexec)$(GEN_VCPROJ) \
--exe \
@@ -501,13 +548,13 @@
--target=$(TOOLCHAIN) \
--name=test_rc_interface \
-D_VARIADIC_MAX=10 \
- --proj-guid=CD837F5F-52D8-4314-A370-895D614166A7 \
+ --proj-guid=30458F88-1BC6-4689-B41C-50F3737AAB27 \
--ver=$(CONFIG_VS_VERSION) \
--src-path-bare="$(SRC_PATH_BARE)" \
$(if $(CONFIG_STATIC_MSVCRT),--static-crt) \
--out=$@ $(INTERNAL_CFLAGS) $(CFLAGS) \
- -I.-I"$(SRC_PATH_BARE)/third_party/googletest/src/include" \
- -L. -l$(CODEC_LIB) -l$(GTEST_LIB) -lvp9rc$^
+ -I. -I"$(SRC_PATH_BARE)/third_party/googletest/src/include" \
+ -L. -l$(CODEC_LIB) -l$(RC_RTC_LIB) -l$(GTEST_LIB) $^
endif # RC_INTERFACE_TEST
endif
else
@@ -525,21 +572,6 @@
OBJS-yes += $(GTEST_OBJS)
LIBS-yes += $(BUILD_PFX)libgtest.a $(BUILD_PFX)libgtest_g.a
$(BUILD_PFX)libgtest_g.a: $(GTEST_OBJS)
-
-ifeq ($(CONFIG_VP9_ENCODER),yes)
- VP9_PREFIX=vp9/
- include $(SRC_PATH_BARE)/$(VP9_PREFIX)vp9cx.mk
- RC_RTC_SRCS := $(addprefix $(VP9_PREFIX),$(call enabled,VP9_CX_SRCS))
- RC_RTC_SRCS += $(VP9_PREFIX)vp9cx.mk vpx/vp8.h vpx/vp8cx.h
- RC_RTC_SRCS += $(VP9_PREFIX)ratectrl_rtc.cc
- RC_RTC_SRCS += $(VP9_PREFIX)ratectrl_rtc.h
- VP9_CX_SRCS-$(CONFIG_VP9_ENCODER) += ratectrl_rtc.cc
- VP9_CX_SRCS-$(CONFIG_VP9_ENCODER) += ratectrl_rtc.h
- RC_RTC_OBJS=$(call objs,$(RC_RTC_SRCS))
- OBJS-yes += $(RC_RTC_OBJS)
- LIBS-yes += $(BUILD_PFX)libvp9rc.a $(BUILD_PFX)libvp9rc_g.a
- $(BUILD_PFX)libvp9rc_g.a: $(RC_RTC_OBJS)
-endif
LIBVPX_TEST_OBJS=$(sort $(call objs,$(LIBVPX_TEST_SRCS)))
$(LIBVPX_TEST_OBJS) $(LIBVPX_TEST_OBJS:.o=.d): CXXFLAGS += $(GTEST_INCLUDES)