Skip to content

Commit 477a2b1

Browse files
committed
Update building & depedencies (#48)
* Update building & depedencies * Fix build for clang 7 * Xenial and s3 upload
1 parent 4be32ea commit 477a2b1

File tree

11 files changed

+136
-77
lines changed

11 files changed

+136
-77
lines changed

.travis.yml

Lines changed: 48 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@ branches:
55
- /^v\d+\.\d+(\.\d+)?(-\S*)?$/
66
sudo: required
77
os: linux
8-
group: travis_latest
8+
dist: xenial
99

1010
matrix:
1111
include:
1212
- addons:
1313
apt:
1414
sources:
15-
- llvm-toolchain-trusty-5.0
15+
- llvm-toolchain-xenial-6.0
1616
- ubuntu-toolchain-r-test
17-
- deadsnakes #python
17+
- deadsnakes
1818
- sourceline: 'ppa:ricotz/toolchain' #meson & ninja
1919
packages:
20-
- clang-5.0
21-
- lld-5.0
20+
- clang-6.0
21+
- lld-6.0
2222
- gcc-multilib
2323
- g++-multilib
2424
- python3.7
@@ -29,19 +29,19 @@ matrix:
2929
- libc6-dev-i386
3030
- linux-libc-dev
3131
env:
32-
- CLANG_VERSION=5 LINK_TYPE=static
32+
- CLANG_VERSION=6 LINK_TYPE=static
3333
compiler: clang
3434

3535
- addons:
3636
apt:
3737
sources:
38-
- llvm-toolchain-trusty-6.0
38+
- llvm-toolchain-xenial-7
3939
- ubuntu-toolchain-r-test
40-
- deadsnakes #python
40+
- deadsnakes
4141
- sourceline: 'ppa:ricotz/toolchain' #meson & ninja
4242
packages:
43-
- clang-6.0
44-
- lld-6.0
43+
- clang-7
44+
- lld-7
4545
- gcc-multilib
4646
- g++-multilib
4747
- python3.7
@@ -52,19 +52,19 @@ matrix:
5252
- libc6-dev-i386
5353
- linux-libc-dev
5454
env:
55-
- CLANG_VERSION=6 LINK_TYPE=static CC_VERSION=6
55+
- CLANG_VERSION=7 LINK_TYPE=static CC_VERSION=7
5656
compiler: clang
5757

5858
- addons:
5959
apt:
6060
sources:
61-
- llvm-toolchain-trusty-6.0
62-
- ubuntu-toolchain-r-test
63-
- deadsnakes #python
64-
- sourceline: 'ppa:ricotz/toolchain' #meson & ninja
61+
- llvm-toolchain-xenial-7
62+
- ubuntu-toolchain-r-test
63+
- deadsnakes
64+
- sourceline: 'ppa:ricotz/toolchain' #meson & ninja
6565
packages:
66-
- clang-6.0
67-
- lld-6.0
66+
- clang-7
67+
- lld-7
6868
- gcc-multilib
6969
- g++-multilib
7070
- python3.7
@@ -75,14 +75,14 @@ matrix:
7575
- libc6-dev-i386
7676
- linux-libc-dev
7777
env:
78-
- CLANG_VERSION=6 LINK_TYPE=dynamic CC_VERSION=6
78+
- CLANG_VERSION=7 LINK_TYPE=dynamic CC_VERSION=7
7979
compiler: clang
8080

8181
- addons:
8282
apt:
8383
sources:
8484
- ubuntu-toolchain-r-test
85-
- deadsnakes #python3.6
85+
- deadsnakes
8686
- sourceline: 'ppa:ricotz/toolchain' #meson & ninja
8787
packages:
8888
- gcc-7
@@ -104,7 +104,7 @@ matrix:
104104
apt:
105105
sources:
106106
- ubuntu-toolchain-r-test
107-
- deadsnakes #python3.6
107+
- deadsnakes
108108
- sourceline: 'ppa:ricotz/toolchain' #meson & ninja
109109
packages:
110110
- gcc-8
@@ -126,8 +126,8 @@ matrix:
126126
apt:
127127
sources:
128128
- ubuntu-toolchain-r-test
129-
- deadsnakes #python3.6
130-
- sourceline: 'ppa:ricotz/toolchain' #meson & ninja
129+
- deadsnakes
130+
- sourceline: 'ppa:ricotz/toolchain'
131131
packages:
132132
- gcc-8
133133
- g++-8
@@ -146,21 +146,36 @@ matrix:
146146

147147
before_script:
148148
- export PATH=/usr/bin:$PATH LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/build:$LD_LIBRARY_PATH
149+
- export COMMIT_NUM="$(git rev-list --count HEAD)"
150+
- export COMMIT_SHORT_SHA="$(git rev-parse --short HEAD)"
149151
- travis/prepare.sh
150152
script:
151153
- travis/build.sh
152154

153155
before_deploy:
156+
- git fetch --unshallow
154157
- travis/package.sh
155158
deploy:
156-
provider: releases
157-
api_key:
158-
secure: LGXp5xFYtOnWozrsn8OpmRBBQN0M62GFjvYK4BFyjnxhYjBXnazFg9EOjr3EKgPm7iS7SgzLjjXNGIaSObVSCyFM5/WTcgcewhY2YdL8BzqsFKE/90s0x5mKilOLZPOGfMHwrWV5tK9KgZsdh4ddScY8uaoqNirbXvqaCz56reTk3rTnE+csAYhM5vtE+SnlSQJf1xlACtP30v5YEtYUw1msyH2S50j+d8ezztQT6PA5xpPJVXAGA2q4Z5AafvhIp1IY7br6BxRY5osyKGOpM7coN+b5oqaTs2PbxaYyZDZFEqGnW4sCVXwdgl4Ps+OAQCLfoLWqa9ALYCW9YD8SOkE3AMksjK5eewmXQ5W61R5ejGmUa7h1zEGd+judrP6qQKDP3tBlD21EFwiflGFkze1ocbYu7xA5tjuMndQ+JFl55Yz14tQdVtQRVi8u398go7ueTnkghkQSZbTS60wMyetoxajVYCEVlPAhrxawhXu30CAbSGdGSLLAntZKFa7N6cN2TvfTZ9S9LuSQopRV4rnH7ekqAnH0FuOIaPZNEt9EO08pGMjVhUnLOk0EHh7VbPrQ8vqOzVcvLgGrbA4tFIFbDXTYzeFg34oqxePyGJToOGxUHD1l6nVFRndtNiNFD8cV2n61kyMKffoU8GmZIxADIGdISJvFKDVJWoLf+Ps=
159-
file: spmod-$TRAVIS_OS_NAME-$TRAVIS_TAG-$CC$CC_VERSION-$LINK_TYPE.tar.xz
160-
skip_cleanup: true
161-
draft: true
162-
tag_name: $TRAVIS_TAG
163-
on:
164-
tags: true
165-
branch: /^v\d+\.\d+(\.\d+)?(-\S*)?$/
166-
condition: $CLANG_VERSION = 6 || $GCC_VERSION = 8
159+
- provider: releases
160+
api_key:
161+
secure: LGXp5xFYtOnWozrsn8OpmRBBQN0M62GFjvYK4BFyjnxhYjBXnazFg9EOjr3EKgPm7iS7SgzLjjXNGIaSObVSCyFM5/WTcgcewhY2YdL8BzqsFKE/90s0x5mKilOLZPOGfMHwrWV5tK9KgZsdh4ddScY8uaoqNirbXvqaCz56reTk3rTnE+csAYhM5vtE+SnlSQJf1xlACtP30v5YEtYUw1msyH2S50j+d8ezztQT6PA5xpPJVXAGA2q4Z5AafvhIp1IY7br6BxRY5osyKGOpM7coN+b5oqaTs2PbxaYyZDZFEqGnW4sCVXwdgl4Ps+OAQCLfoLWqa9ALYCW9YD8SOkE3AMksjK5eewmXQ5W61R5ejGmUa7h1zEGd+judrP6qQKDP3tBlD21EFwiflGFkze1ocbYu7xA5tjuMndQ+JFl55Yz14tQdVtQRVi8u398go7ueTnkghkQSZbTS60wMyetoxajVYCEVlPAhrxawhXu30CAbSGdGSLLAntZKFa7N6cN2TvfTZ9S9LuSQopRV4rnH7ekqAnH0FuOIaPZNEt9EO08pGMjVhUnLOk0EHh7VbPrQ8vqOzVcvLgGrbA4tFIFbDXTYzeFg34oqxePyGJToOGxUHD1l6nVFRndtNiNFD8cV2n61kyMKffoU8GmZIxADIGdISJvFKDVJWoLf+Ps=
162+
file: spmod-$TRAVIS_OS_NAME-$TRAVIS_TAG-$CC$CC_VERSION-$LINK_TYPE.tar.xz
163+
skip_cleanup: true
164+
draft: true
165+
tag_name: $TRAVIS_TAG
166+
on:
167+
tags: true
168+
branch: /^v\d+\.\d+(\.\d+)?(-\S*)?$/
169+
condition: $CLANG_VERSION = 7 || $GCC_VERSION = 8
170+
- provider: s3
171+
local-dir: upload
172+
access_key_id:
173+
secure: g5eMcCQxblr3kXOtnGeAn/HWVLlRilOjU2+DsO/q0pcnkE6mqRQvXRhWt+fHV1YqBXV1JCdzTlGqv48Mt1X0LQMQYn+Gf1WomutQOcdrT9myWXqLLiXTNqqfoq+yBYLbtHDzwzamYu9iAKD5QY8XwcR2k3r4ThrVq/8wkIkU6HVRwhc4FV/oETtSe0E1SyYsMDmJqLg72TXmZdujmiCp34qjQKxOMFxMykoj9O2FcDmv0CMzOjZap8p9H2ove3U+mI+VUeQ9r1eo72tLtLS6ossH94MI9oBJ8NnONo1nnkskL4/GGqEqGnjcuvH3dSQHhpjqLoDOdJKodWFbPBvsjkpOeSmJmhl3rljMM6Jz0s65gkv8ilNVoGUIahvso+vMV3SMKsqjlCBacIBimar9q6BIouXIioHgnafbKJeqFP/aX7TD1mGJl7j3BFKHKXuBln0etlHfvFy7DR00SRBG8DGjRVKEJTwNc75ma5DQuTbSkf+8Tn12mQA+Ei8GGt68J2/ZERjERlszcphPm+E6X+x8x5wPIwJG58kuxzMGnglaV81LceX8gAkRo4pmM5jkIOjXjPRXw77b0DA9ZSQCzGL2LNi0IDk6kN8Z6VRnaflTFGHcbE0d5vGK0jrFls2IJ/EmCfnt1GRV0+10w9/HP+x642Ud4uXWskzE/QhcuKY=
174+
secret_access_key:
175+
secure: sJ7abLWZlcHHBlIjJqJ/w+skr2JqQ7qmuUG8MP3JCxRZCm3YF4n2AXuJGslTMmmyslYhzvO2pDUv/EE6rZoxPCoMTDd+12hG1KgUHec5cJKOd5wxdRL8qmBvGHK26Y4xCqEAL4HfX+NPCIUMSDKhekdux+hiMloJeSB/w4vafR13JADm5kVRgqEA0z1P1qOvK90ZtEFHYDYD0uXzWHtqHJa9Z3VkYjaVF6Nsaq3ElwJqedXskPm4ktwg7J3AXKemmiEti2q8AggvQ1IpvLkr+OhCTBHOurW48R7x/ewpjZz7nRBMEYQU91WPHMD2UAJStiggfZ1CKQyrdxbpd7SdODiJkqfno2UYK2nVmTi2MvjdCxssOZs8X+2iLseIBvIg+X8Hw8/hhsU1ntoNd7EuyInFd4afZjLQ/L7Ey4ai0e02GkW8M+SqQ2urU35Hsfcn5thXWOAH+1MSc96snLAq3RWOa/aW58np+1DDrKa0QFVyhzYXvnQcI5DEIiC+n4emSL2nenjS0zeWCG52IuPHrxBCIjbV29fRrrzWeznLHiqus36IABF5rEfZKPR3RRpYF2Oz8nkvB3IRTxyTH1cDVDxWQg77O4P/9anB1KcP0Tfx4aIzOTaEmGX4dWZq7CeE/TiriqZu1VzIrQNHGVuifAfC1FucrCyq7siAIFrKbDs=
176+
bucket: spmod
177+
region: eu-central-1
178+
skip_cleanup: true
179+
on:
180+
branch: master
181+
condition: $CLANG_VERSION = 7 || $GCC_VERSION = 8

appveyor.yml

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,16 @@ environment:
1414
matrix:
1515
- LINK_TYPE: dynamic
1616
- LINK_TYPE: static
17-
artifacts:
18-
- path: spmod-win32-$(APPVEYOR_REPO_TAG_NAME)-msvc*-$(LINK_TYPE).7z
19-
name: spmod-build
2017
install:
2118
- call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
2219
- set PATH=C:\Python37-x64;C:\Python37-x64\Scripts;C:\Program Files\Meson;%PATH%
2320
- git submodule update --init --recursive
2421
- mkdir dlls
2522
- cd ..
26-
- ps: Start-FileDownload 'https://github.com/mesonbuild/meson/releases/download/0.47.1/meson-0.47.1-64.msi'
27-
- start /wait msiexec.exe /i meson-0.47.1-64.msi /quiet /qn /norestart /log install.log
23+
- ps: Start-FileDownload 'https://github.com/mesonbuild/meson/releases/download/0.48.1/meson-0.48.1-64.msi'
24+
- start /wait msiexec.exe /i meson-0.48.1-64.msi /quiet /qn /norestart /log install.log
2825
# Install ambuild
29-
- git clone https://github.com/alliedmodders/ambuild.git
26+
- git clone --depth=1 https://github.com/alliedmodders/ambuild.git
3027
- cd ambuild
3128
- python setup.py install
3229
# Build SourcePawn lib
@@ -47,16 +44,24 @@ build_script:
4744
- ninja
4845
- cd ..
4946
- move build\src\spmod_mm.dll dlls
50-
- 7z a -t7z -mm=LZMA:d256m:fb64 -mx9 spmod-win32-%APPVEYOR_REPO_TAG_NAME%-msvc%APPVEYOR_BUILD_WORKER_IMAGE:~-4%-%LINK_TYPE%.7z dlls scripts
47+
- ps: appveyor\package.ps1
5148
deploy:
52-
description: ''
53-
provider: GitHub
54-
auth_token:
55-
secure: OHpFkNuODntvGsZ4TURitsr5WB5EtsLkOBcqpEX2AEEhP3qsYJAePoUW8CtDB86K
56-
artifact: spmod-build
57-
draft: true
58-
prerelease: false
59-
tag: $(appveyor_repo_tag_name)
60-
on:
61-
branch: /^v\d+\.\d+(\.\d+)?(-\S*)?$/
62-
appveyor_repo_tag: true
49+
- provider: GitHub
50+
description: ''
51+
auth_token:
52+
secure: OHpFkNuODntvGsZ4TURitsr5WB5EtsLkOBcqpEX2AEEhP3qsYJAePoUW8CtDB86K
53+
draft: true
54+
prerelease: false
55+
tag: $(appveyor_repo_tag_name)
56+
on:
57+
branch: /^v\d+\.\d+(\.\d+)?(-\S*)?$/
58+
appveyor_repo_tag: true
59+
- provider: S3
60+
access_key_id:
61+
secure: Zj5Yd5Z4CSA4dV7brcm0/rv+F1+GD+Ym5vQCnjM2d+Y=
62+
secret_access_key:
63+
secure: ocC7RzsSjLEPZ4coQsOYTsvQJOd8lJZ4gqSJczRgak6Kdln6p8+yOZDJ7PbTHmRW
64+
bucket: spmod
65+
region: eu-central-1
66+
on:
67+
branch: master

appveyor/package.ps1

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
if ($env:APPVEYOR_PULL_REQUEST_NUMBER -ne $null) {
2+
exit
3+
}
4+
5+
$COMMIT_SHORT_SHA = git rev-parse --short HEAD | Out-String
6+
$COMMIT_NUM = git rev-list --count HEAD | Out-String
7+
$COMMIT_SHORT_SHA = $COMMIT_SHORT_SHA.Trim()
8+
$COMMIT_NUM = $COMMIT_NUM.Trim()
9+
$CC_VERSION = $env:APPVEYOR_BUILD_WORKER_IMAGE.Substring($env:APPVEYOR_BUILD_WORKER_IMAGE.Length - 4)
10+
11+
if ($env:APPVEYOR_REPO_TAG_NAME -eq $null) {
12+
$ARCHIVE_NAME = "spmod-win32-$COMMIT_NUM-$COMMIT_SHORT_SHA-msvc$CC_VERSION-$env:LINK_TYPE.7z"
13+
7z a -t7z -mm=LZMA:d256m:fb64 -mx9 "$ARCHIVE_NAME" dlls scripts
14+
Push-AppveyorArtifact $ARCHIVE_NAME
15+
} else {
16+
$ARCHIVE_NAME = "spmod-win32-$env:APPVEYOR_REPO_TAG_NAME-msvc$CC_VERSION-$env:LINK_TYPE.7z"
17+
7z a -t7z -mm=LZMA:d256m:fb64 -mx9 "$ARCHIVE_NAME" dlls scripts
18+
Push-AppveyorArtifact $ARCHIVE_NAME
19+
}

include/metamod-r

include/rehlds

include/sourcepawn

Submodule sourcepawn updated 221 files

meson.build

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ if build_machine.system() == 'linux'
1919
gLinkArgs += '-m32'
2020

2121
if cppCompiler.get_id() == 'clang'
22-
if cppCompiler.version() < '5.0.0'
23-
warning('Clang v' + cppCompiler.version() + ' doesn\'t fully support C++17.')
22+
minVersion = '6.0.0'
23+
24+
if cppCompiler.version() < minVersion
25+
warning('Clang v' + cppCompiler.version() + ' is not supported. Minimum version is ' + minVersion)
2426
endif
2527
llvmIncludesDir += join_paths('include', 'llvm')
2628

2729
# use LLVM linker if available
28-
llvmLinker = find_program('lld-6.0', 'lld-5.0', 'lld', required : false)
30+
llvmLinker = find_program('lld-7', 'lld-6.0', 'lld', required : false)
2931
if llvmLinker.found() == true
3032
gLinkArgs += '-fuse-ld=' + llvmLinker.path().split('/')[-1]
3133
endif
@@ -44,11 +46,18 @@ if build_machine.system() == 'linux'
4446
'-pthread',
4547
]
4648
endif
47-
gLinkArgs += '-lc++experimental'
49+
50+
if (cppCompiler.version() >= '7.0.0')
51+
gLinkArgs += '-lc++fs'
52+
else
53+
gLinkArgs += '-lc++experimental'
54+
endif
4855

4956
elif cppCompiler.get_id() == 'gcc'
50-
if cppCompiler.version() < '7.0.0'
51-
warning('GCC v' + cppCompiler.version() + ' doesn\'t fully support C++17.')
57+
minVersion = '7.0.0'
58+
59+
if cppCompiler.version() < minVersion
60+
warning('GCC v' + cppCompiler.version() + ' is not supported. Minimum version is ' + minVersion)
5261
endif
5362

5463
if get_option('linktype') == 'static'
@@ -170,4 +179,4 @@ includeDirs = include_directories(publicIncludesDir,
170179
llvmIncludesDir,
171180
'.') #build directory
172181

173-
subdir('src')
182+
subdir('src')

src/spmod.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@
6464

6565
#if __has_include(<filesystem>)
6666
#include <filesystem>
67-
// As of GCC 8.1 filesystem is no longer part of experimental
68-
#if defined SP_GCC && __GNUC__ >= 8
67+
// As of GCC 8.1 and Clang 7 filesystem is no longer part of experimental
68+
#if (defined SP_GCC && __GNUC__ >= 8) || (defined SP_CLANG && __clang_major__ >= 7)
6969
namespace fs = std::filesystem;
7070
#else // Some compilers still have filesystem within experimental namespace like MSVC
7171
namespace fs = std::experimental::filesystem;

travis/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22
mkdir -p build
33
cd build
4-
python /usr/bin/meson .. . --buildtype release --warnlevel 3 -D linktype=$LINK_TYPE
4+
python /usr/bin/meson .. . --buildtype release --warnlevel 3 -D linktype=$LINK_TYPE -D b_lto=true
55
python /usr/bin/meson configure
66
ninja -v

travis/package.sh

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ XZ_OPT="-9e --threads=0"
77
mkdir dlls
88

99
# Install ambuild
10-
git clone https://github.com/alliedmodders/ambuild.git ../ambuild
10+
git clone --depth=1 https://github.com/alliedmodders/ambuild.git ../ambuild
1111

1212
# Patch to build sourcepawn lib without -g3 switch (Clang only)
1313
if [[ $CLANG_VERSION ]]
@@ -31,12 +31,23 @@ cd $TRAVIS_BUILD_DIR
3131
# Move SPMod lib to dlls
3232
mv build/src/libspmod_mm.so dlls
3333

34+
if [[ $TRAVIS_TAG ]]
35+
then
36+
ARCHIVE_NAME=spmod-$TRAVIS_OS_NAME-$TRAVIS_TAG-$CC$CC_VERSION-$LINK_TYPE.tar.xz
37+
else
38+
ARCHIVE_NAME=spmod-$TRAVIS_OS_NAME-$COMMIT_NUM-$COMMIT_SHORT_SHA-$CC$CC_VERSION-$LINK_TYPE.tar.xz
39+
fi
40+
3441
if [[ $LINK_TYPE == "dynamic" && ! -z $CLANG_VERSION ]]
3542
then
3643
mkdir libs
3744
mv build/libc++abi.so.1 libs
3845
mv build/libc++.so.1 libs
39-
tar -cJvf spmod-$TRAVIS_OS_NAME-$TRAVIS_TAG-$CC$CC_VERSION-$LINK_TYPE.tar.xz dlls scripts libs
46+
47+
tar -cJvf $ARCHIVE_NAME dlls scripts libs
4048
else
41-
tar -cJvf spmod-$TRAVIS_OS_NAME-$TRAVIS_TAG-$CC$CC_VERSION-$LINK_TYPE.tar.xz dlls scripts
49+
tar -cJvf $ARCHIVE_NAME dlls scripts
4250
fi
51+
52+
mkdir upload
53+
mv $ARCHIVE_NAME upload

0 commit comments

Comments
 (0)