]> granicus.if.org Git - libevent/commitdiff
appveyor: support cmake & autotools using build matrix (like travis-ci has)
authorAzat Khuzhin <a3at.mail@gmail.com>
Sun, 19 Jun 2016 11:15:41 +0000 (14:15 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Tue, 9 Aug 2016 12:47:57 +0000 (15:47 +0300)
This will allow us to avoid possible compilation regressions, and also some
failures in different environments (for example because of different
sizeof(size_t)).

For example we can avoid next issues:
- #361
- #314
- #311
(And I'm pretty sure that this is not complete list)

And of course it reduce job for maintainers.
But it also have one downside, appveyor doesn't have such concurrency like
travis-ci, so it can take a while to finish the whole build, but we can resolve
this later, or reduce build matrix to only one for autotools and one for cmake.

Fixes: #364
appveyor.yml

index f9af62d2dbd309126c638286bf40822271f24be0..b4781a34062fc523f9576fca2adffc516d0773e9 100644 (file)
@@ -1,45 +1,61 @@
 version: 2.1.5.{build}
 shallow_clone: true
 
-os: Visual Studio 2015 RC
+os: Visual Studio 2015
 
 build:
-          verbosity: detailed
+  verbosity: detailed
 
 environment:
-    global:
-        CYG_ROOT: C:/MinGW/msys/1.0
-
+  global:
+    CYG_ROOT: C:/MinGW/msys/1.0
+  matrix:
+    - EVENT_BUILD_METHOD: "autotools"
+      EVENT_CONFIGURE_OPTIONS: ""
+    - EVENT_BUILD_METHOD: "autotools"
+      EVENT_CONFIGURE_OPTIONS: "--disable-openssl"
+    - EVENT_BUILD_METHOD: "autotools"
+      EVENT_CONFIGURE_OPTIONS: "--disable-thread-support"
+    - EVENT_BUILD_METHOD: "autotools"
+      EVENT_CONFIGURE_OPTIONS: "--disable-debug-mode"
+    - EVENT_BUILD_METHOD: "autotools"
+      EVENT_CONFIGURE_OPTIONS: "--disable-malloc-replacement"
+    - EVENT_BUILD_METHOD: "cmake"
+      EVENT_CMAKE_OPTIONS: ""
+    - EVENT_BUILD_METHOD: "cmake"
+      EVENT_CMAKE_OPTIONS: "-DEVENT__DISABLE_OPENSSL=ON"
+    - EVENT_BUILD_METHOD: "cmake"
+      EVENT_CMAKE_OPTIONS: "-DEVENT__DISABLE_THREAD_SUPPORT=ON"
+    - EVENT_BUILD_METHOD: "cmake"
+      EVENT_CMAKE_OPTIONS: "-DEVENT__DISABLE_DEBUG_MODE=ON"
+    - EVENT_BUILD_METHOD: "cmake"
+      EVENT_CMAKE_OPTIONS: "-DEVENT__DISABLE_MM_REPLACEMENT=ON"
+    - EVENT_BUILD_METHOD: "cmake"
+      EVENT_CMAKE_OPTIONS: "-DEVENT__ENABLE_VERBOSE_DEBUG=ON"
 init:
-    - 'echo Building libevent %version% for Windows'
-    - 'echo System architecture: %PLATFORM%'
-    - 'echo Repo build branch is: %APPVEYOR_REPO_BRANCH%'
-    - 'echo Build folder is: %APPVEYOR_BUILD_FOLDER%'
-
+  - 'echo Building libevent %version% for Windows'
+  - 'echo System architecture: %PLATFORM%'
+  - 'echo Repo build branch is: %APPVEYOR_REPO_BRANCH%'
+  - 'echo Build folder is: %APPVEYOR_BUILD_FOLDER%'
+  - 'echo Repo build commit is: %APPVEYOR_REPO_COMMIT%'
+  - 'echo Cygwin root is: %CYG_ROOT%'
 install:
-    - set PATH=%PATH%;C:\MinGW\msys\1.0\bin;C:\MinGW\bin
-    - appveyor DownloadFile https://strcpy.net/packages/Win32OpenSSL-1_0_2a.exe
-    - Win32OpenSSL-1_0_2a.exe /silent /verysilent /sp- /suppressmsgboxes
-
+  - appveyor DownloadFile https://strcpy.net/packages/Win32OpenSSL-1_0_2a.exe
+  - Win32OpenSSL-1_0_2a.exe /silent /verysilent /sp- /suppressmsgboxes
 build_script:
-    - cmd: 'echo Cygwin root is: %CYG_ROOT%'
-    - cmd: 'echo Build folder is: %APPVEYOR_BUILD_FOLDER%'
-    - cmd: 'echo Repo build branch is: %APPVEYOR_REPO_BRANCH%'
-    - cmd: 'echo Repo build commit is: %APPVEYOR_REPO_COMMIT%'
-    - cmd: "echo installing stuff"
-    - cmd: 'echo "C:\MinGW   /mingw" >%CYG_ROOT%/etc/fstab'
-    - cmd: 'C:\MinGW\bin\mingw-get install autotools autoconf automake python'
-    - cmd: 'echo Autogen running...'
-    - cmd: '%CYG_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; exec 0</dev/null;mount C:/MinGW /mingw; bash -x ./autogen.sh; ./configure; make; make verify"'
-
-#install:
-#  - appveyor DownloadFile https://strcpy.net/packages/Win32OpenSSL-1_0_2a.exe 
-#  - Win32OpenSSL-1_0_2a.exe /silent /verysilent /sp- /suppressmsgboxes
-#build_script:
-#  - md build
-#  - cd build
-#  - cmake ..
-#  - cmake --build .
-#  - ctest --output-on-failure
+  - ps: |
+      if ($env:EVENT_BUILD_METHOD -eq 'autotools') {
+        $env:PATH="$env:CYG_ROOT\bin;C:\MinGW\bin;$($env:PATH)"
+        mingw-get install autotools autoconf automake
+        bash -lc "echo 'C:\MinGW   /mingw' > /etc/fstab"
+        $env:APPVEYOR_BUILD_FOLDER = $env:APPVEYOR_BUILD_FOLDER -replace "\\", "/"
+        bash -lc "exec 0</dev/null; cd $env:APPVEYOR_BUILD_FOLDER; bash -x ./autogen.sh && ./configure $env:EVENT_CONFIGURE_OPTIONS && make && make verify"
+      } else {
+        md build
+        cd build
+        cmake .. $env:EVENT_CMAKE_OPTIONS
+        cmake --build .
+        ctest --output-on-failure
+      }
 cache:
   - C:\OpenSSL-Win32