Building for Windows
Building PLV8 for Windows has some specific requirements:
- Git
- MSVC 2013, 2015, or 2017
- CMake - available as part of MSVC
- Postgres 9.5+ (it will work in 9.3 and 9.4, but will involve extra work)
Additional requirements to build V8:
- Python 2
- unzip.exe
- patch.exe - part of the Git install
Patching Postgres
Currently, Postgres requires a patch of one or more include
files in order to
compile PLV8.
First, find the directory that contains the include
files. This will typically
be inside something like C:\Program Files\PostgreSQL\10\include
, where the 10
is your version number. Inside of the include
directory:
PS> cd server\port\atomics
PS> copy \plv8\windows\generic-msvc.h.patch .
PS> patch < generic-msvc.h.patch
Bootstrapping
Bootstrapping will the build environment, download, and compile v8
. Watch for
any errors:
PS> bootstrap.bat
Configuring
Once v8
has been built, you can configure your build environment. This involves
specifying the path to your Postgres install, the version of Postgres you are
running, as well as the build target. Build targets will typically be one of the
following:
Visual Studio 15 2017
- 32 bit, MSVC 2017Visual Studio 15 2017 Win64
- 64 bit, MSVC 2017Visual Studio 14 2015
- 32 bit, MSVC 2015Visual Studio 14 2015 Win64
- 64 bit, MSVC 2015Visual Studio 12 2013
- 32 bit, MSVC 2013Visual Studio 12 2013 Win64
- 64 bit, MSVC 2013
PS> cmake . -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="C:\Program Files\PostgreSQL\10" -DPOSTGRESQL_VERSION=10
Compiling
After successfully configuring your build environment, compiling should be easy:
PS> cmake --build . --config Release --target Package
This will build and package the extension for installation.
Installing
To install, you simply need to unzip
the file created. The name will depend
on the version of PLV8 and the version of Postgres. An example is
plv8-3.0.0-postgresql-10-x64.zip
.
TODO
- Generate configuration files
- Generate control files
- Generate sql files