Compare commits

..

11 Commits

Author SHA1 Message Date
Anatol Belski
cad50539cf improve crt usability check with multiple choices 2017-03-20 15:38:07 +01:00
Anatol Belski
6b50dabf00 fix condition 2017-03-13 18:39:15 +01:00
Anatol Belski
f5f5620c55 don't check for sdk 8.1 for vc15 and up, only vc14 is relevant 2017-03-13 18:22:19 +01:00
Anatol Belski
139ea9a86d extend readme with vc15 support 2017-03-09 15:29:12 +01:00
Anatol Belski
cf054fd362 version++ 2017-03-09 15:28:22 +01:00
Anatol Belski
2635a7936a add new line 2017-03-08 12:12:57 +01:00
Anatol Belski
9414d3a55c add dedicated vc15 starter scripts 2017-03-08 11:58:52 +01:00
Anatol Belski
36f67d7cce vc15 support, more to follow 2017-03-08 02:46:46 +01:00
Anatol Belski
e5b9fb320c add vswhere 2017-03-07 21:57:59 +01:00
Anatol Belski
edb52f1c34 add lemon to the list 2017-01-03 22:31:10 +01:00
Anatol Belski
aeeddd2e34 beta2 now 2017-01-03 20:47:26 +01:00
8 changed files with 70 additions and 33 deletions

View File

@@ -12,7 +12,7 @@ The PHP SDK 2.0 is compatible with PHP 7.0 and above. The compatibility with old
# Requirements
- `Visual C++ 2015` must be installed prior SDK usage
- `Visual C++ 2015` or `Visual C++ 2017` must be installed prior SDK usage
- if `Cygwin` is installed, please read notes in the pitfalls section
- if a 64-bit build is intended, a 64-bit system is required. Cross compilation of 64-bit on 32-bit system is not supported at the moment
@@ -31,7 +31,7 @@ All the tools included are either scripts or 32-bit binaries. They are therefore
## Other tools
- `bison` 3.0.2, `re2c` 0.15.3
- `bison` 3.0.2, `re2c` 0.15.3, `lemon`
- `awk`, `gawk`, `sed`, `grep`
- `diff`, `diff3`, `patch`
- `md5sum`, `sha1sum`, `sha224sum`, `sha256sum`, `sha384sum`, `sha512sum`

View File

@@ -1 +1 @@
2.0.0beta1
2.0.0beta3

View File

@@ -5,6 +5,8 @@ if "%PHP_SDK_OS_ARCH%"=="" (
exit /b 3
)
echo.
call %PHP_SDK_BIN_PATH%\phpsdk_version.bat
echo.

View File

@@ -14,8 +14,10 @@ if "%1"=="--help" goto :help
if "%2"=="" goto :help
if /i not "%1"=="vc14" (
if /i not "%1"=="vc15" (
echo Unsupported runtime "%1"
goto out_error
)
)
if /i not "%2"=="x64" (
@@ -43,41 +45,56 @@ if not errorlevel 1 (
set TMPKEY=
rem get vc base dir
if /i "%PHP_SDK_OS_ARCH%"=="x64" (
set TMPKEY=HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\%PHP_SDK_VC:~2%.0\Setup\VC
) else (
set TMPKEY=HKLM\SOFTWARE\Microsoft\VisualStudio\%PHP_SDK_VC:~2%.0\Setup\VC
)
reg query !TMPKEY! /v ProductDir >nul 2>&1
if errorlevel 1 (
echo Couldn't determine VC%PHP_SDK_VC:~2% directory
goto out_error;
)
for /f "tokens=2*" %%a in ('reg query !TMPKEY! /v ProductDir') do set PHP_SDK_VC_DIR=%%b
set TMPKEY=
rem get sdk dir
if /i "%PHP_SDK_OS_ARCH%"=="x64" (
set TMPKEY=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1
) else (
set TMPKEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1
)
for /f "tokens=2*" %%a in ('reg query "!TMPKEY!" /v InstallationFolder') do (
if exist "%%b\Include\um\Windows.h" (
set PHP_SDK_WIN_SDK_DIR=%%b
if /i "%1"=="vc14" (
if /i "%PHP_SDK_OS_ARCH%"=="x64" (
set TMPKEY=HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\%PHP_SDK_VC:~2%.0\Setup\VC
) else (
set TMPKEY=HKLM\SOFTWARE\Microsoft\VisualStudio\%PHP_SDK_VC:~2%.0\Setup\VC
)
)
if not defined PHP_SDK_WIN_SDK_DIR (
echo Windows SDK not found.
goto out_error;
reg query !TMPKEY! /v ProductDir >nul 2>&1
if errorlevel 1 (
echo Couldn't determine VC%PHP_SDK_VC:~2% directory
goto out_error;
)
for /f "tokens=2*" %%a in ('reg query !TMPKEY! /v ProductDir') do set PHP_SDK_VC_DIR=%%b
) else (
rem vc15 support only for now, could parse out and pass on later
for /f "tokens=1* delims=: " %%a in ('%~dp0\vswhere -nologo -version 15 -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath -format text') do set PHP_SDK_VC_DIR=%%b\VC
set VSCMD_ARG_no_logo=nologo
)
set TMPKEY=
if /i "%PHP_SDK_VC%"=="vc14" (
rem get sdk dir
if /i "%PHP_SDK_OS_ARCH%"=="x64" (
set TMPKEY=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1
) else (
set TMPKEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1
)
for /f "tokens=2*" %%a in ('reg query "!TMPKEY!" /v InstallationFolder') do (
if exist "%%b\Include\um\Windows.h" (
set PHP_SDK_WIN_SDK_DIR=%%b
)
)
if not defined PHP_SDK_WIN_SDK_DIR (
echo Windows SDK not found.
goto out_error;
)
set TMPKEY=
)
if /i "%PHP_SDK_ARCH%"=="x64" (
set PHP_SDK_VC_SHELL_CMD="!PHP_SDK_VC_DIR!\vcvarsall.bat" amd64
if /i "%1"=="vc14" (
set PHP_SDK_VC_SHELL_CMD="!PHP_SDK_VC_DIR!\vcvarsall.bat" amd64
) else (
set PHP_SDK_VC_SHELL_CMD="!PHP_SDK_VC_DIR!\Auxiliary\Build\vcvarsall.bat" amd64
)
) else (
set PHP_SDK_VC_SHELL_CMD="!PHP_SDK_VC_DIR!\vcvarsall.bat" x86
if /i "%1"=="vc14" (
set PHP_SDK_VC_SHELL_CMD="!PHP_SDK_VC_DIR!\vcvarsall.bat" x86
) else (
set PHP_SDK_VC_SHELL_CMD="!PHP_SDK_VC_DIR!\Auxiliary\Build\vcvarsall.bat" x86
)
)
rem echo Visual Studio path %PHP_SDK_VC_DIR%

BIN
bin/vswhere.exe Normal file

Binary file not shown.

View File

@@ -134,8 +134,14 @@ class Config
throw new Exception("More than one CRT is available for branch '" . self::$currentBranchName . "', pass one explicitly.");
}
$crt = array_keys($branches[self::$currentBranchName])[0];
if ($cur_crt != $crt) {
$cur_crt_usable = false;
foreach (array_keys($branches[self::$currentBranchName]) as $crt) {
if ($cur_crt == $crt) {
$cur_crt_usable = true;
break;
}
}
if (!$cur_crt_usable) {
throw new Exception("The passed CRT '$cur_crt' doesn't match any availbale for branch '" . self::$currentBranchName . "'");
}
$data = $branches[self::$currentBranchName][$cur_crt];

6
phpsdk-vc15-x64.bat Normal file
View File

@@ -0,0 +1,6 @@
@echo off
call %~dp0phpsdk-starter.bat -c vc15 -a x64 %*
exit /b

6
phpsdk-vc15-x86.bat Normal file
View File

@@ -0,0 +1,6 @@
@echo off
call %~dp0phpsdk-starter.bat -c vc15 -a x86 %*
exit /b