-
Notifications
You must be signed in to change notification settings - Fork 632
/
appveyor.yml
120 lines (111 loc) · 4.63 KB
/
appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# version format
version: 2.14.6-{branch}-build{build}
os: Visual Studio 2019
clone_folder: c:\projects\mrpt
platform: x64
configuration: Release
environment:
CTEST_OUTPUT_ON_FAILURE: 1
VERBOSE: 1 # for MRPT cmake scripts to show more info
build_script:
# NSIS: install required script for Windows binary packages:
- cd c:\projects\mrpt
- copy cmakemodules\registerExtension.nsh "C:\Program Files (x86)\NSIS\Include\"
- cd c:\projects\mrpt\build\
# Build debug libraries
# - cmake --build . --config Debug --target all_mrpt_libs
# re-call CMake to detect the debug libs and all them to the install package:
# - cmake .
# Do unit tests:
- cmake --build . --config Release --target test_legacy
# All seem OK. Build all.
# - cmake --build . --config Release
# Build package:
- cmake --build . --config Release --target PACKAGE
# Rename package:
- cd c:\projects\mrpt
- cmd: IF NOT DEFINED APPVEYOR_REPO_TAG_NAME SET PKG_NAME=branch-%APPVEYOR_REPO_BRANCH%
- cmd: IF DEFINED APPVEYOR_REPO_TAG_NAME SET PKG_NAME=release-%APPVEYOR_REPO_TAG_NAME%
- cmd: IF EXIST c:\projects\mrpt\build\MRPT*.exe move c:\projects\mrpt\build\MRPT*.exe c:\projects\mrpt\mrpt-%PKG_NAME%.exe
- dir
install:
# ====== Install OpenCV
- choco upgrade chocolatey
- choco install opencv -y
- tree c:\tools\opencv\build /F
- set OPENCVDIR=C:\tools\opencv\build\
# This variable is parsed by MRPT/cmakemodules/script_opencv.cmake:
- set OPENCV_DLLS_TO_INSTALL_DIRS=%OPENCVDIR%bin;%OPENCVDIR%x64\vc16\bin
- set PATH=%PATH%;%OPENCVDIR%\bin;%OPENCVDIR%\x64\vc16\bin
# ====== Install wxWidgets
- cd c:\
- ps: Start-FileDownload 'https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.3/wxMSW-3.1.3_vc14x_x64_Dev.7z'
- ps: Start-FileDownload 'https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.3/wxWidgets-3.1.3-headers.7z'
- ps: Start-FileDownload 'https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.3/wxMSW-3.1.3_vc14x_x64_ReleaseDLL.7z'
- 7z x wxMSW-3.1.3_vc14x_x64_Dev.7z -oc:\wxWidgets -aoa
- 7z x wxWidgets-3.1.3-headers.7z -oc:\wxWidgets -aoa
- 7z x wxMSW-3.1.3_vc14x_x64_ReleaseDLL.7z -oc:\wxWidgets -aoa
- set WXWIDGETSDIR=C:\wxWidgets
- set WXWIDGETSLIBDIR=%WXWIDGETSDIR%\lib\vc14x_x64_dll\
- set PATH=%PATH%;%WXWIDGETSLIBDIR%
# ====== Qt
- set QTDIR=C:\Qt\5.14.1\msvc2017_64
- set PATH=%PATH%;%QTDIR%\bin
# ====== NSIS for packaging
- choco install nsis
# ====== show final PATH
- PATH
before_build:
- cd c:\projects\mrpt
- git submodule update --init --recursive
- mkdir build
# AppVeyor has a 90 minutes limit: disable some parts.
- cmake -S. -Bbuild -G "Visual Studio 16 2019" \
-DMRPT_EIGEN_USE_EMBEDDED_VERSION=ON -DMRPT_BUILD_ASSIMP=OFF \
-DOpenCV_DIR=%OPENCVDIR% -DwxWidgets_ROOT_DIR=%WXWIDGETSDIR% -DwxWidgets_LIB_DIR=%WXWIDGETSLIBDIR% \
-DBUILD_APP_DifOdometry-Camera=OFF -DBUILD_APP_DifOdometry-Datasets=OFF \
-DBUILD_APP_benchmarking-image-features=OFF \
-DBUILD_APP_carmen2rawlog=OFF \
-DBUILD_APP_carmen2simplemap=OFF \
-DBUILD_APP_map-partition=OFF \
-DBUILD_APP_rosbag2rawlog=OFF \
-DBUILD_APP_simul-landmarks=OFF \
-DBUILD_APP_simul-beacons=OFF \
-DBUILD_APP_simul-gridmap=OFF \
-DBUILD_APP_kinect-3d-slam=OFF \
-DBUILD_APP_mrpt-performance=OFF \
-DBUILD_APP_yaml2ini=OFF \
-DBUILD_APP_ini2yaml=OFF \
-DMRPT_WITH_KINECT=OFF
on_failure:
- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
#---------------------------------#
# artifacts configuration #
#---------------------------------#
artifacts:
- path: 'mrpt*.exe'
#---------------------------------#
# deployment configuration #
#---------------------------------#
deploy:
- provider: GitHub
release: "Release of v$(APPVEYOR_REPO_TAG_NAME) [Windows binaries]"
description: 'Windows binary releases (nightly builds) from AppVeyor.'
auth_token:
secure: vUzG+a7umHCzqv0eUNXZS/dczNSMiJ37Ivuv50aIPXhYQenlxUiua+Merj/pjCmy
artifact: /.*\.exe/
draft: false
prerelease: false
on:
APPVEYOR_REPO_TAG: true # deploy on tag push only
- provider: GitHub
release: "Windows nightly builds"
description: '**Build timestamp: %APPVEYOR_REPO_COMMIT_TIMESTAMP%**\nWindows binary releases (develop) from AppVeyor CI.\nAPPVEYOR_BUILD_VERSION=%APPVEYOR_BUILD_VERSION%\nGit commit: %APPVEYOR_REPO_COMMIT% %APPVEYOR_REPO_COMMIT_MESSAGE%'
auth_token:
secure: vUzG+a7umHCzqv0eUNXZS/dczNSMiJ37Ivuv50aIPXhYQenlxUiua+Merj/pjCmy
artifact: /.*\.exe/
draft: false
prerelease: false
force_update: true
on:
branch: develop