Commit fc23d6e6 authored by Ghislain MARY's avatar Ghislain MARY
Browse files

Update prebuilt libvpx libraries so that they do not use getenv that do not...

Update prebuilt libvpx libraries so that they do not use getenv that do not pass the Windows Store Cert Kit.
parent 3d7f1ab5
From cb038cd774e87da57c1721b37c24aa0e882e4405 Mon Sep 17 00:00:00 2001
From: Ghislain MARY <ghislain.mary@belledonne-communications.com>
Date: Tue, 28 Jul 2015 16:00:41 +0200
Subject: [PATCH] Support build with Visual Studio 14.
---
README | 3 +++
build/make/gen_msvs_sln.sh | 11 +++++++----
build/make/gen_msvs_vcxproj.sh | 7 +++++--
configure | 5 ++++-
vp8/common/generic/systemdependent.c | 5 +++++
vpx_ports/x86.h | 7 +++++++
6 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/README b/README
index 7b44ba7..fc91edd 100644
--- a/README
+++ b/README
@@ -59,6 +59,7 @@ COMPILING THE APPLICATIONS/LIBRARIES:
armv7-none-rvct
armv7-win32-vs11
armv7-win32-vs12
+ armv7-win32-vs14
armv7s-darwin-gcc
mips32-linux-gcc
mips64-linux-gcc
@@ -85,6 +86,7 @@ COMPILING THE APPLICATIONS/LIBRARIES:
x86-win32-vs10
x86-win32-vs11
x86-win32-vs12
+ x86-win32-vs14
x86_64-darwin9-gcc
x86_64-darwin10-gcc
x86_64-darwin11-gcc
@@ -101,6 +103,7 @@ COMPILING THE APPLICATIONS/LIBRARIES:
x86_64-win64-vs10
x86_64-win64-vs11
x86_64-win64-vs12
+ x86_64-win64-vs14
generic-gnu
The generic-gnu target, in conjunction with the CROSS environment variable,
diff --git a/build/make/gen_msvs_sln.sh b/build/make/gen_msvs_sln.sh
index ffa3706..664b404 100755
--- a/build/make/gen_msvs_sln.sh
+++ b/build/make/gen_msvs_sln.sh
@@ -19,13 +19,13 @@ show_help() {
cat <<EOF
Usage: ${self_basename} [options] file1 [file2 ...]
-This script generates a Visual Studio 2005 solution file from a list of project
+This script generates a Visual Studio solution file from a list of project
files.
Options:
--help Print this message
--out=outfile Redirect output to a file
- --ver=version Version (7,8,9,10,11) of visual studio to generate for
+ --ver=version Version (7,8,9,10,11,12,14) of visual studio to generate for
--target=isa-os-cc Target specifier
EOF
exit 1
@@ -255,7 +255,7 @@ for opt in "$@"; do
;;
--ver=*) vs_ver="$optval"
case $optval in
- [789]|10|11|12)
+ [789]|10|11|12|14)
;;
*) die Unrecognized Visual Studio Version in $opt
;;
@@ -300,12 +300,15 @@ case "${vs_ver:-8}" in
12) sln_vers="12.00"
sln_vers_str="Visual Studio 2013"
;;
+ 14) sln_vers="14.00"
+ sln_vers_str="Visual Studio 2015"
+ ;;
esac
case "${vs_ver:-8}" in
[789])
sfx=vcproj
;;
- 10|11|12)
+ 10|11|12|14)
sfx=vcxproj
;;
esac
diff --git a/build/make/gen_msvs_vcxproj.sh b/build/make/gen_msvs_vcxproj.sh
index b653651..96b9691 100755
--- a/build/make/gen_msvs_vcxproj.sh
+++ b/build/make/gen_msvs_vcxproj.sh
@@ -168,7 +168,7 @@ for opt in "$@"; do
--ver=*)
vs_ver="$optval"
case "$optval" in
- 10|11|12)
+ 10|11|12|14)
;;
*) die Unrecognized Visual Studio Version in $opt
;;
@@ -218,7 +218,7 @@ guid=${guid:-`generate_uuid`}
asm_use_custom_step=false
uses_asm=${uses_asm:-false}
case "${vs_ver:-11}" in
- 10|11|12)
+ 10|11|12|14)
asm_use_custom_step=$uses_asm
;;
esac
@@ -344,6 +344,9 @@ generate_vcxproj() {
# has to enable AppContainerApplication as well.
tag_content PlatformToolset v120
fi
+ if [ "$vs_ver" = "14" ]; then
+ tag_content PlatformToolset v140
+ fi
tag_content CharacterSet Unicode
if [ "$config" = "Release" ]; then
tag_content WholeProgramOptimization true
diff --git a/configure b/configure
index 6cac15a..3bb4916 100755
--- a/configure
+++ b/configure
@@ -106,6 +106,7 @@ all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8
all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8
all_platforms="${all_platforms} armv7-win32-vs11"
all_platforms="${all_platforms} armv7-win32-vs12"
+all_platforms="${all_platforms} armv7-win32-vs14"
all_platforms="${all_platforms} armv7s-darwin-gcc"
all_platforms="${all_platforms} mips32-linux-gcc"
all_platforms="${all_platforms} mips64-linux-gcc"
@@ -132,6 +133,7 @@ all_platforms="${all_platforms} x86-win32-vs9"
all_platforms="${all_platforms} x86-win32-vs10"
all_platforms="${all_platforms} x86-win32-vs11"
all_platforms="${all_platforms} x86-win32-vs12"
+all_platforms="${all_platforms} x86-win32-vs14"
all_platforms="${all_platforms} x86_64-darwin9-gcc"
all_platforms="${all_platforms} x86_64-darwin10-gcc"
all_platforms="${all_platforms} x86_64-darwin11-gcc"
@@ -148,6 +150,7 @@ all_platforms="${all_platforms} x86_64-win64-vs9"
all_platforms="${all_platforms} x86_64-win64-vs10"
all_platforms="${all_platforms} x86_64-win64-vs11"
all_platforms="${all_platforms} x86_64-win64-vs12"
+all_platforms="${all_platforms} x86_64-win64-vs14"
all_platforms="${all_platforms} generic-gnu"
# all_targets is a list of all targets that can be configured
@@ -638,7 +641,7 @@ process_toolchain() {
VCPROJ_SFX=vcproj
gen_vcproj_cmd=${source_path}/build/make/gen_msvs_proj.sh
;;
- 10|11|12)
+ 10|11|12|14)
VCPROJ_SFX=vcxproj
gen_vcproj_cmd=${source_path}/build/make/gen_msvs_vcxproj.sh
enabled werror && gen_vcproj_cmd="${gen_vcproj_cmd} --enable-werror"
diff --git a/vp8/common/generic/systemdependent.c b/vp8/common/generic/systemdependent.c
index 4393ced..834b8d4 100644
--- a/vp8/common/generic/systemdependent.c
+++ b/vp8/common/generic/systemdependent.c
@@ -45,6 +45,10 @@ static int get_cpu_count()
#endif
#elif defined(_WIN32)
{
+#if _WIN32_WINNT >= 0x0501
+ SYSTEM_INFO sysinfo;
+ GetNativeSystemInfo(&sysinfo);
+#else
PGNSI pGNSI;
SYSTEM_INFO sysinfo;
@@ -57,6 +61,7 @@ static int get_cpu_count()
pGNSI(&sysinfo);
else
GetSystemInfo(&sysinfo);
+#endif
core_count = sysinfo.dwNumberOfProcessors;
}
diff --git a/vpx_ports/x86.h b/vpx_ports/x86.h
index 7d93710..0fef6a5 100644
--- a/vpx_ports/x86.h
+++ b/vpx_ports/x86.h
@@ -136,6 +136,13 @@ static INLINE uint64_t xgetbv(void) {
#define xgetbv() 0U // no AVX for older x64 or unrecognized toolchains.
#endif
+#if defined(_MSC_VER)
+#include <windows.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_FAMILY_APP)
+#define getenv(x) NULL
+#endif
+#endif
+
#define HAS_MMX 0x01
#define HAS_SSE 0x02
#define HAS_SSE2 0x04
--
1.9.5.msysgit.0
Here is how the libvpx prebuilt libraries have been generated.
The patch 0001-Support-build-with-Visual-Studio-14.patch needs to be applied to revision commit f8b869f573cd2503847f80043bfd4751a78a091b of libvpx for these instructions to be successful.
The commands are to be executed in a msys shell.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment