]> granicus.if.org Git - php/commitdiff
implement basic binary tools sdk version check
authorAnatol Belski <ab@php.net>
Thu, 30 Mar 2017 23:36:19 +0000 (01:36 +0200)
committerAnatol Belski <ab@php.net>
Thu, 30 Mar 2017 23:46:57 +0000 (01:46 +0200)
win32/build/buildconf.js
win32/build/confutils.js

index b7e964e3e7cbdd63ceaec56543cbf137fe28a1f4..dc2a6563057550387b60f1451370005558615312 100644 (file)
@@ -243,6 +243,8 @@ for (i = 0; i < calls.length; i++) {
        C.WriteLine("}");\r
 }\r
 \r
+C.WriteBlankLines(1);\r
+C.WriteLine("check_binary_tools_sdk();");\r
 C.WriteBlankLines(1);\r
 C.WriteLine("STDOUT.WriteLine(\"PHP Version: \" + PHP_VERSION_STRING);");\r
 C.WriteLine("STDOUT.WriteBlankLines(1);");\r
@@ -257,4 +259,5 @@ C.WriteBlankLines(1);
 C.Write(file_get_contents("win32/build/configure.tail"));\r
 \r
 B.WriteLine("@echo off");\r
-B.WriteLine("cscript /nologo configure.js %*");
\ No newline at end of file
+B.WriteLine("cscript /nologo configure.js %*");\r
+\r
index 456089578fd9f1cfc07c09c4c6eb276a2b0fc954..4db2a7c3303d4891161342900453798e18c2605d 100644 (file)
@@ -3345,3 +3345,23 @@ function SETUP_OPENSSL(target, path_to_check, common_name, use_env, add_dir_part
        return ret;
 }
 
+function check_binary_tools_sdk()
+{
+       var BIN_TOOLS_SDK_VER_MAJOR = 0;
+       var BIN_TOOLS_SDK_VER_MINOR = 0;
+       var BIN_TOOLS_SDK_VER_PATCH = 0;
+
+       var out = execute("cmd /c phpsdk_version");
+
+       if (out.match(/PHP SDK (\d+)\.(\d+)\.(\d+).*/)) {
+               BIN_TOOLS_SDK_VER_MAJOR = parseInt(RegExp.$1);
+               BIN_TOOLS_SDK_VER_MINOR = parseInt(RegExp.$2);
+               BIN_TOOLS_SDK_VER_PATCH = parseInt(RegExp.$3);
+       }
+
+       /* Basic test, extend by need. */
+       if (BIN_TOOLS_SDK_VER_MAJOR < 2) {
+               ERROR("Incompatible binary tools version. Please consult https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2");
+       }
+}
+