[Openvpn-devel,v2] travis: add Visual Studio build

Message ID 1573162174-28461-1-git-send-email-lstipakov@gmail.com
State Accepted
Headers show
Series
  • [Openvpn-devel,v2] travis: add Visual Studio build
Related show

Commit Message

Lev Stipakov Nov. 7, 2019, 9:29 p.m.
From: Lev Stipakov <lev@openvpn.net>

Signed-off-by: Lev Stipakov <lev@openvpn.net>
---

 v2; do not unconditionally print dependencies build output for non-Windows builds

 .travis.yml               |  9 ++++++++-
 .travis/build-check.sh    |  5 +++++
 .travis/build-deps.sh     |  9 +++++++++
 .travis/run-build-deps.sh | 10 ++++++++++
 4 files changed, 32 insertions(+), 1 deletion(-)
 create mode 100755 .travis/run-build-deps.sh

Comments

Gert Doering Nov. 8, 2019, 9:14 a.m. | #1
Acked-by: Gert Doering <gert@greenie.muc.de>

Thanks. Looks reasonable, let's see what Travis has to say about it :)

Your patch has been applied to the master branch.

commit 633fe5185d063a1d1a1bce4170b283ab4273d95d
Author: Lev Stipakov
Date:   Thu Nov 7 23:29:34 2019 +0200

     travis: add Visual Studio build

     Signed-off-by: Lev Stipakov <lev@openvpn.net>
     Acked-by: Gert Doering <gert@greenie.muc.de>
     Message-Id: <1573162174-28461-1-git-send-email-lstipakov@gmail.com>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19035.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/.travis.yml b/.travis.yml
index 2d07cdc..61be17c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -24,6 +24,13 @@  env:
 
 matrix:
   include:
+    - env:
+      - SSLLIB="openssl"
+      - OPENSSL_VERSION="1.1.1d"
+      - P7Z="c:\Program Files\7-Zip\7z.exe"
+      - CC="cl"
+      os: windows
+      compiler: cl
     - env: SSLLIB="openssl" RUN_COVERITY="1"
       os: linux
       compiler: gcc
@@ -89,7 +96,7 @@  cache:
 
 install:
   - if [ ! -z "${CHOST}" ]; then unset CC; fi
-  - .travis/build-deps.sh > build-deps.log 2>&1 || (cat build-deps.log && exit 1)
+  - .travis/run-build-deps.sh
 
 before_script:
   - .travis/coverity.sh
diff --git a/.travis/build-check.sh b/.travis/build-check.sh
index 74f3ae1..d2d2e8a 100755
--- a/.travis/build-check.sh
+++ b/.travis/build-check.sh
@@ -1,6 +1,11 @@ 
 #!/bin/sh
 set -eux
 
+if [ "${TRAVIS_OS_NAME}" = "windows" ]; then
+	PATH="/c/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/MSBuild/15.0/Bin/":$PATH
+	MSBuild.exe openvpn.sln //p:Platform=x64 && exit 0
+fi
+
 if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
 	export LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH:-}"
 fi
diff --git a/.travis/build-deps.sh b/.travis/build-deps.sh
index 391b35e..724ff30 100755
--- a/.travis/build-deps.sh
+++ b/.travis/build-deps.sh
@@ -1,6 +1,15 @@ 
 #!/bin/sh
 set -eux
 
+if [ "${TRAVIS_OS_NAME}" = "windows" ]; then
+    choco install strawberryperl nasm
+    cd ..
+    git clone https://github.com/openvpn/openvpn-build.git
+    cd openvpn-build
+    PATH="/c/Strawberry/perl/bin:":$PATH MODE=DEPS msvc/build.bat
+    exit 0
+fi
+
 # Set defaults
 PREFIX="${PREFIX:-${HOME}/opt}"
 
diff --git a/.travis/run-build-deps.sh b/.travis/run-build-deps.sh
new file mode 100755
index 0000000..b8eb41c
--- /dev/null
+++ b/.travis/run-build-deps.sh
@@ -0,0 +1,10 @@ 
+#!/bin/sh
+set -eux
+
+if [ "${TRAVIS_OS_NAME}" = "windows" ]; then
+    # for windows we need to print output since openssl build
+    # might take more than 10 minutes, which causes build abort
+    .travis/build-deps.sh
+else
+    .travis/build-deps.sh > build-deps.log 2>&1 || (cat build-deps.log && exit 1)
+fi