Przeglądaj źródła

Update for PHP7/VC14

Stefan Siegl 9 lat temu
rodzic
commit
10d0cc6e37
1 zmienionych plików z 27 dodań i 47 usunięć
  1. 27 47
      README.Win32.md

+ 27 - 47
README.Win32.md

@@ -12,25 +12,14 @@ currently broken).
 Compared to installation on GNU/Linux it's way more tedious to install V8Js
 on Windows, since you need to compile PHP with all its dependencies beforehand.
 
-The problem is that Google v8 requires (at least) Visual Studio 2013 as it
-uses certain C++11 features not available in Visual Studio 2012.
-
-Unfortunately the [PHP for Windows](http://windows.php.net/) project still
-relies on either Visual Studio 2012 or Visual Studio 2008.
-It supplies pre-compiled binary archives of required dependencies, however also
-compiled with Visual Studio 2008 and 2012 only.
-
-Since it is not compatible to link a v8 compiled with Visual Studio 2013 with
-a PHP interpreter compiled with Visual Studio 2012, you need to step up and
-compile PHP with Visual Studio 2013.  This requires to compile dependencies as
-well, if you would like to use certain extensions or e.g. the Apache SAPI.
-
+You need to have Visual Studio 2015 (aka VC14), make sure to install the C++
+compiler (which is not installed by default any longer).
 
 Compiling v8
 ------------
 
 The Google v8 project already has excellent step-by-step guide on
-[how to build with gyp](https://code.google.com/p/v8-wiki/wiki/BuildingWithGYP).
+[how to build with gyp](https://github.com/v8/v8/wiki/Building%20with%20Gyp).
 
 As a short run through:
 
@@ -42,18 +31,13 @@ As a short run through:
 Then open a command prompt
 
 ```
-cd \
-git clone https://github.com/v8/v8.git
-cd v8
-svn co http://gyp.googlecode.com/svn/trunk build/gyp
-svn co https://src.chromium.org/chrome/trunk/deps/third_party/icu46 third_party/icu
-svn co http://src.chromium.org/svn/trunk/tools/third_party/python_26@89111 third_party/python_26
-svn co http://src.chromium.org/svn/trunk/deps/third_party/cygwin@66844 third_party/cygwin
-svn co http://googletest.googlecode.com/svn/trunk testing/gtest --revision 643
-svn co http://googlemock.googlecode.com/svn/trunk testing/gmock --revision 410
-
+git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 
+fetch v8
+git checkout 4.7.80.25
+gclient sync
 python build\gyp_v8 -Dcomponent=shared_library -Dv8_use_snapshot=0
-"\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com" /build Release build/All.sln
+CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"
+msbuild build\All.sln /m /p:Configuration=Release
 ```
 
 (alternatively `start build/all.sln` ... and build within the Visual Studio GUI)
@@ -63,13 +47,8 @@ python build\gyp_v8 -Dcomponent=shared_library -Dv8_use_snapshot=0
 Compiling PHP
 -------------
 
-There [Build your own PHP on Windows](https://wiki.php.net/internals/windows/stepbystepbuild)
-guide on the PHP wiki.  However it concentrates on Visual Studio 2008 and 2012.
-Since you need to use Visual Studio 2013 it doesn't apply very well.
-
-This document concentrates on building V8Js for CLI SAPI (only).  In order
-to enable more extensions you need to provide further dependencies, which may
-be more or less cumbersome to build with Visual Studio beforehand.
+Then follow the [build your own PHP on Windows](https://wiki.php.net/internals/windows/stepbystepbuild)
+guide on the PHP wiki.  Use Visual Studio 2015 with PHP7.
 
 A quick run through:
 
@@ -78,33 +57,34 @@ A quick run through:
 * Download http://windows.php.net/downloads/php-sdk/php-sdk-binary-tools-20110915.zip
 * ... and unpack to \php-sdk
 
-Open "VS2013 x86 Native Tools Command Prompt"
+Open "VS2015 x86 Native Tools Command Prompt"
 
 ```
 cd \php-sdk
 bin\phpsdk_setvars.bat
 bin\phpsdk_buildtree.bat phpdev
 
-mkdir vc12
-mkdir vc12\x86
-mkdir vc12\x86\deps
-mkdir vc12\x86\deps\bin
-mkdir vc12\x86\deps\include
-mkdir vc12\x86\deps\lib
+mkdir vc14
+mkdir vc14\x86
+mkdir vc14\x86\deps
+mkdir vc14\x86\deps\bin
+mkdir vc14\x86\deps\include
+mkdir vc14\x86\deps\lib
 ```
 
-* download PHP from http://php.net/get/php-5.5.18.tar.gz/from/a/mirror
-  and unpack to below `\php-sdk\phpdev\vc12\x86`
-* from `\v8\build\Release\lib` copy `icui18n.lib`, `icuuc.lib` and `v8.lib`
-  to deps\lib folder
+* download PHP from http://php.net/get/php-7.0.1.tar.gz/from/a/mirror
+  and unpack to below `\php-sdk\phpdev\vc14\x86`
+* from `\v8\build\Release\lib` copy `icui18n.lib`, `icuuc.lib`, `v8.lib`,
+  `v8_libbase.lib` and `v8_libplatform.lib` to deps\lib folder
 * from `\v8\include` copy all v8*.h files to deps\include folder
+* copy `v8-platform.h` again to deps\include\include folder
 * download V8Js and unpack it into a separate directory below `ext` folder
 * make sure `config.w32` file inside that folder defines version of the compiled v8
 
-(still in "VS2013 x86 Native Tools Command Prompt")
+(still in "VS2015 x86 Native Tools Command Prompt")
 
 ```
-cd \php-sdk\phpdev\vc12\x86\php-5.5.18\
+cd \php-sdk\phpdev\vc14\x86\php-7.0.1\
 
 buildconf
 configure --disable-all --enable-cli --with-v8js
@@ -115,12 +95,12 @@ After nmake completes the php.exe is in Release_TS\ directory.
 
 In order to try things out in place, copy over `icui18n.dll`, `icuuc.dll` and
 `v8.dll` file from `\v8\build\Release` folder to
-`\php-sdk\phpdev\vc12\x86\php-5.5.18\Release_TS\` first.
+`\php-sdk\phpdev\vc14\x86\php-7.0.1\Release_TS\` first.
 
 Then run
 
 ```
-php.exe -d extension=php_v8js.dll -d extension_dir=\php-sdk\phpdev\vc12\x86\php-5.5.18\Release_TS\
+Release_TS\php.exe -d extension=php_v8js.dll -d extension_dir=Release_TS\
 ```
 
 Alternatively copy all stuff to c:\php\ (including the three DLL files from