-
Notifications
You must be signed in to change notification settings - Fork 2
/
.appveyor.yml
134 lines (116 loc) · 5.61 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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Authors: see AUTHORS.md at project root.
# CopyPolicy: released under the terms of the LGPLv2.1, see LICENSE at project root.
# URL: https://github.com/asrob-uc3m/yarp-devices
version: appveyor.{build}
image: Visual Studio 2019
configuration: Release
environment:
global:
ACE_VC_SLN: ACE_wrappers_vs2019.sln
matrix:
- platform: Win32
- platform: x64
cache:
- C:\ACE
- C:\YCM
- C:\YARP
branches:
except:
- /^.*travis.*$/
init:
# Dependency version tags
- cmd: set ACE_LATEST=6.5.11
- cmd: set YCM_LATEST=0.13.0
- cmd: set YARP_LATEST=3.6.0
- cmd: set GTEST_LATEST=1.8.1
# Download/clone paths and URLs
- cmd: set CLONES_PATH=C:\git
- cmd: set DOWNLOADS_PATH=C:\downloads
- cmd: set ACE_DOWNLOAD_URL=http://download.dre.vanderbilt.edu/previous_versions/ACE-%ACE_LATEST%.zip
- cmd: set YCM_DOWNLOAD_URL=https://github.com/robotology/ycm/archive/v%YCM_LATEST%.zip
- cmd: set YARP_DOWNLOAD_URL=https://github.com/robotology/yarp/archive/v%YARP_LATEST%.zip
- cmd: set GTEST_DOWNLOAD_URL=https://github.com/google/googletest/archive/release-%GTEST_LATEST%.zip
# Print some useful informations:
- cmd: set
- cmd: cmake --version
- cmd: msbuild /version
install:
# Create folders
- cmd: md %CLONES_PATH%
- cmd: md %DOWNLOADS_PATH%
# Download and build ACE (if not in cache)
- ps: >-
if (
(Test-Path -Path C:\ACE -PathType Container) -And
(Test-Path -Path C:\ACE\.version -PathType Leaf) -And
(Get-Content C:\ACE\.version | Where-Object { $_.Equals("$env:ACE_LATEST") })
) {
Write-Host "ACE found in cache ($env:ACE_LATEST)"
} else {
Write-Host "ACE not in cache or version mismatch, running download and build step..."
Write-Host "Downloading $env:ACE_DOWNLOAD_URL"
Start-FileDownload "$env:ACE_DOWNLOAD_URL" -FileName "$env:DOWNLOADS_PATH\ace.zip"
7z x -y -o"$env:DOWNLOADS_PATH" "$env:DOWNLOADS_PATH\ace.zip"
Add-Content "$env:DOWNLOADS_PATH\ACE_wrappers\ace\config.h" "#include `"ace/config-win32.h`""
msbuild "$env:DOWNLOADS_PATH\ACE_wrappers\$env:ACE_VC_SLN" /m /v:m
Write-Host "Copying selected contents of $env:DOWNLOADS_PATH\ACE_wrappers to C:\ACE"
robocopy "$env:DOWNLOADS_PATH\ACE_wrappers\ace" C:\ACE\ace /e /xd "$env:DOWNLOADS_PATH\ACE_wrappers\ace\$env:CONFIGURATION" /ns /nc /nfl /ndl /njh
xcopy "$env:DOWNLOADS_PATH\ACE_wrappers\lib" C:\ACE\lib /e /i /y /q
Set-Content C:\ACE\.version "$env:ACE_LATEST"
}
- cmd: set ACE_ROOT=C:\ACE
- cmd: set PATH=%ACE_ROOT%\lib;%PATH%
# Download and build YCM (if not in cache)
- ps: >-
if (
(Test-Path -Path C:\YCM -PathType Container) -And
(Test-Path -Path C:\YCM\.version -PathType Leaf) -And
(Get-Content C:\YCM\.version | Where-Object { $_.Equals("$env:YCM_LATEST") })
) {
Write-Host "YCM found in cache ($env:YCM_LATEST)"
} else {
Write-Host "YCM not in cache or version mismatch, running download and build step..."
Write-Host "Downloading $env:YCM_DOWNLOAD_URL"
Start-FileDownload "$env:YCM_DOWNLOAD_URL" -FileName "$env:DOWNLOADS_PATH\ycm.zip"
7z x -y -o"$env:DOWNLOADS_PATH" "$env:DOWNLOADS_PATH\ycm.zip"
$env:ycm_temp = "$env:DOWNLOADS_PATH\ycm-$env:YCM_LATEST"
cmake -H"$env:ycm_temp" -B"$env:ycm_temp\build" -A"$env:PLATFORM" -DCMAKE_INSTALL_PREFIX:PATH=C:\YCM
cmake --build "$env:ycm_temp\build" --config "$env:CONFIGURATION" --target INSTALL -- /m /v:m
Set-Content C:\YCM\.version "$env:YCM_LATEST"
}
- cmd: set YCM_DIR=C:\YCM\CMake
# Download and build YARP (if not in cache)
- ps: >-
if (
(Test-Path -Path C:\YARP -PathType Container) -And
(Test-Path -Path C:\YARP\.version -PathType Leaf) -And
(Get-Content C:\YARP\.version | Where-Object { $_.Equals("$env:YARP_LATEST") })
) {
Write-Host "YARP found in cache ($env:YARP_LATEST)"
} else {
Write-Host "YARP not in cache or version mismatch, running download and build step..."
Write-Host "Downloading $env:YARP_DOWNLOAD_URL"
Start-FileDownload "$env:YARP_DOWNLOAD_URL" -FileName "$env:DOWNLOADS_PATH\yarp.zip"
7z x -y -o"$env:DOWNLOADS_PATH" "$env:DOWNLOADS_PATH\yarp.zip"
$env:yarp_temp = "$env:DOWNLOADS_PATH\yarp-$env:YARP_LATEST"
cmake -H"$env:yarp_temp" -B"$env:yarp_temp\build" -A"$env:PLATFORM" -DCMAKE_INSTALL_PREFIX:PATH=C:\YARP -DENABLE_yarpmod_serialport:BOOL=ON
cmake --build "$env:yarp_temp\build" --config "$env:CONFIGURATION" --target INSTALL -- /m /v:m
Set-Content C:\YARP\.version "$env:YARP_LATEST"
}
- cmd: set YARP_DIR=C:\YARP\CMake
- cmd: set PATH=C:\YARP\bin;%PATH%
# Download googletest
- cmd: echo Downloading %GTEST_DOWNLOAD_URL%
- cmd: appveyor DownloadFile "%GTEST_DOWNLOAD_URL%" -FileName "%DOWNLOADS_PATH%\gtest.zip"
- cmd: 7z x -y -o"%DOWNLOADS_PATH%" "%DOWNLOADS_PATH%\gtest.zip"
- cmd: set GTEST_ROOT=%DOWNLOADS_PATH%\googletest-release-%GTEST_LATEST%
before_build:
- cmd: echo %PATH%
- cmd: echo Configuring project %APPVEYOR_PROJECT_NAME%
- cmd: cmake -H"%APPVEYOR_BUILD_FOLDER%" -B"%APPVEYOR_BUILD_FOLDER%\build" -A"%PLATFORM%" -DCMAKE_INSTALL_PREFIX:PATH="%APPVEYOR_BUILD_FOLDER%\install" -DENABLE_examples:BOOL=ON
build:
project: build\ASROB_YARP_DEVICES.sln
parallel: false
verbosity: minimal
after_build:
- cmd: cmake --build "%APPVEYOR_BUILD_FOLDER%\build" --config "%CONFIGURATION%" --target INSTALL -- /m /v:m