Skip to content

Commit 7c265ed

Browse files
committed
Merge branch 'master' of github.com:d98762625/qpid-proton into v0.27
2 parents 4aa87de + 36d9a60 commit 7c265ed

File tree

282 files changed

+12122
-4921
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

282 files changed

+12122
-4921
lines changed

.appveyor.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
11
version: '{branch}.{build}'
22
configuration: RelWithDebInfo
33
environment:
4+
PYTHON: C:\Python35\python.exe
5+
46
matrix:
57
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
68
CMAKE_GENERATOR: Visual Studio 15
9+
VCPKG_INTEGRATION: '-DCMAKE_TOOLCHAIN_FILE=C:/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake'
710
- CMAKE_GENERATOR: Visual Studio 12
811
- CMAKE_GENERATOR: Visual Studio 10
912
install:
1013
- cinst -y swig
14+
- cd C:\Tools\vcpkg
15+
- git pull
16+
- .\bootstrap-vcpkg.bat
17+
- cd %APPVEYOR_BUILD_FOLDER%
18+
- vcpkg install jsoncpp:x86-windows
19+
- vcpkg install jsoncpp:x64-windows
20+
- vcpkg integrate install
21+
- "%PYTHON% -m pip install --user --upgrade pip"
22+
- "%PYTHON% -m pip install --user --upgrade setuptools wheel tox"
1123
cache:
1224
- C:\ProgramData\chocolatey\bin -> .appveyor.yml
1325
- C:\ProgramData\chocolatey\lib -> .appveyor.yml
26+
- C:\Tools\vcpkg\installed -> .appveyor.yml
1427
before_build:
1528
- mkdir BLD
1629
- cd BLD
17-
- cmake -G "%CMAKE_GENERATOR%" %QPID_PROTON_CMAKE_ARGS% ..
30+
- cmake %VCPKG_INTEGRATION% -G "%CMAKE_GENERATOR%" -DPYTHON_EXECUTABLE=%PYTHON% %QPID_PROTON_CMAKE_ARGS% ..
1831
- cd ..
1932
build:
2033
project: BLD/Proton.sln

.asf.yaml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
github:
18+
description: "Mirror of Apache Qpid Proton"
19+
homepage: https://qpid.apache.org/proton
20+
labels:
21+
- qpid
22+
- amqp
23+
- messaging
24+
- library
25+
- apache
26+
27+
- amqp-client
28+
- amqp-connection
29+
- amqp-messages
30+
- amqps
31+
- amqp10
32+
33+
- c
34+
- cpp
35+
- golang
36+
- ruby
37+
- python
38+
- python2
39+
- python3

.travis.yml

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ language: cpp
2222
compiler:
2323
- gcc
2424
- clang
25-
25+
env:
26+
- OPENSSL_ia32cap='0x00000000'
2627

2728
matrix:
2829
include:
@@ -33,31 +34,25 @@ matrix:
3334
- bash <(curl -s https://codecov.io/bash)
3435

3536
- os: osx
36-
osx_image: xcode7.3
37+
osx_image: xcode9.4
3738
env:
38-
- PKG_CONFIG_PATH='/usr/local/opt/openssl/lib/pkgconfig'
3939
- PATH="/usr/local/opt/python/libexec/bin:/usr/local/bin:$PATH"
40-
- QPID_PROTON_CMAKE_ARGS='-DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 -DBUILD_RUBY=NO'
41-
before_install:
42-
- brew update
43-
- brew upgrade cmake openssl
44-
- brew install libuv swig
40+
- PKG_CONFIG_PATH='/usr/local/opt/[email protected]/lib/pkgconfig'
41+
- QPID_PROTON_CMAKE_ARGS='-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13'
42+
# python-tox-test segfaults and ruby tests do not start due to dynamic library issues
43+
- QPID_PROTON_CTEST_ARGS="--exclude-regex 'python-tox-test|ruby.*'"
4544

4645
- os: osx
47-
osx_image: xcode9
46+
osx_image: xcode11.3
4847
env:
49-
- PKG_CONFIG_PATH='/usr/local/opt/openssl/lib/pkgconfig'
5048
- PATH="/usr/local/opt/python/libexec/bin:/usr/local/bin:$PATH"
51-
- QPID_PROTON_CMAKE_ARGS='-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DBUILD_RUBY=NO'
52-
before_install:
53-
- brew update
54-
- brew uninstall postgis
55-
- brew upgrade cmake python openssl
56-
- brew install libuv swig
49+
- PKG_CONFIG_PATH='/usr/local/opt/[email protected]/lib/pkgconfig'
50+
- QPID_PROTON_CMAKE_ARGS='-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14'
51+
# python-tox-test segfaults and ruby tests do not start due to dynamic library issues
52+
- QPID_PROTON_CTEST_ARGS="--exclude-regex 'python-tox-test|ruby.*'"
5753

58-
# Note addons is apt specific at the moment and will not be applied for osx.
59-
# See before_install brew commands below
6054
addons:
55+
# Ubuntu 16.04 APT dependencies, https://packages.ubuntu.com/
6156
apt:
6257
packages:
6358
- cmake
@@ -73,10 +68,19 @@ addons:
7368
- golang
7469
- lcov
7570
- libjsoncpp-dev
71+
# macOS Homebrew dependencies, https://formulae.brew.sh/
72+
homebrew:
73+
packages:
74+
- jsoncpp
75+
- libuv
76+
- swig
77+
# update:true workaround as of Feb. 22/20 as per
78+
# https://travis-ci.community/t/macos-build-fails-because-of-homebrew-bundle-unknown-command/7296/10
79+
update: true
7680

7781
install:
7882
- python -m pip install --user --upgrade pip
79-
- python -m pip install --user coverage tox
83+
- python -m pip install --user coverage setuptools wheel tox
8084
- gem install minitest
8185

8286
before_script:
@@ -85,5 +89,4 @@ before_script:
8589
- cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/install ${QPID_PROTON_CMAKE_ARGS}
8690

8791
script:
88-
- cmake --build . --target install && ctest -V ${QPID_PROTON_CTEST_ARGS}
89-
92+
- cmake --build . --target install -- -j$(nproc) && eval ctest -V ${QPID_PROTON_CTEST_ARGS}

CMakeLists.txt

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ find_package (SWIG)
3737
find_package (CyrusSASL)
3838

3939
enable_testing ()
40+
include(tests/PNAddTest.cmake)
4041

4142
# Set up runtime checks (valgrind, sanitizers etc.)
42-
include(tests/RuntimeCheck.cmake)
43+
include(tests/RuntimeCheck.cmake)
4344

4445
## Variables used across components
4546

@@ -76,7 +77,7 @@ else (CMAKE_CONFIGURATION_TYPES)
7677
# There is a single build configuration
7778
# If the build type is not set then set the default
7879
if (NOT CMAKE_BUILD_TYPE)
79-
set (CMAKE_BUILD_TYPE RelWithDebInfo CACHE string
80+
set (CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
8081
"Build type: Debug, Release, RelWithDebInfo, MinSizeRel or Coverage (default RelWithDebInfo)" FORCE)
8182
endif ()
8283

@@ -113,12 +114,8 @@ endif()
113114
# off if building there:
114115
if (APPLE)
115116
set (NOENABLE_WARNING_ERROR ON)
116-
set (NOENABLE_UNDEFINED_ERROR ON)
117117
endif (APPLE)
118118

119-
# Make LTO default to off until we can figure out the valgrind issues
120-
set (NOENABLE_LINKTIME_OPTIMIZATION ON)
121-
122119
# Add options here called <whatever> they will turn into "ENABLE_<whatever" and can be
123120
# overridden on a platform specific basis above by NOENABLE_<whatever>
124121
set (OPTIONS WARNING_ERROR UNDEFINED_ERROR LINKTIME_OPTIMIZATION HIDE_UNEXPORTED_SYMBOLS FUZZ_TESTING)
@@ -275,7 +272,7 @@ foreach (LANG ${BINDING_LANGS})
275272
endif ()
276273
endforeach()
277274

278-
set (PROTON_SHARE ${SHARE_INSTALL_DIR}/proton-${PN_VERSION})
275+
set (PROTON_SHARE ${SHARE_INSTALL_DIR}/proton)
279276
# End of variables used during install
280277

281278
# Set result to a native search path - used by examples and binding tests.
@@ -289,17 +286,19 @@ macro(set_search_path result)
289286
endmacro()
290287

291288
if (CMAKE_SYSTEM_NAME STREQUAL Windows)
292-
# No change needed for windows already use correct separator
289+
# CMake uses semicolon as list separator. Change ';'->'\;'
293290
function(to_native_path path result)
294291
file (TO_NATIVE_PATH "${path}" path)
295-
set (${result} ${path} PARENT_SCOPE)
292+
string (REPLACE ";" "\;" path "${path}")
293+
# without this, ...;last\dir\ would later combine with list separator ; into \;
294+
set (${result} "${path}\;" PARENT_SCOPE)
296295
endfunction()
297296
else (CMAKE_SYSTEM_NAME STREQUAL Windows)
298297
# Just change ';'->':'
299298
function(to_native_path path result)
300299
file (TO_NATIVE_PATH "${path}" path)
301-
string (REGEX REPLACE ";" ":" path "${path}")
302-
set (${result} ${path} PARENT_SCOPE)
300+
string (REPLACE ";" ":" path "${path}")
301+
set (${result} "${path}" PARENT_SCOPE)
303302
endfunction()
304303
endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
305304

@@ -334,12 +333,19 @@ if(SWIG_FOUND)
334333
# Add any new swig bindings here - the directory name must be the same as the binding name
335334
list(APPEND BINDINGS python ruby)
336335

336+
if (POLICY CMP0078)
337+
cmake_policy(SET CMP0078 OLD)
338+
endif()
339+
if (POLICY CMP0086)
340+
cmake_policy(SET CMP0086 OLD)
341+
endif()
337342
include(UseSWIG)
338343

339344
# All swig modules should include ${PROTON_HEADERS} in SWIG_MODULE_<name>_EXTRA_DEPS
340345
file(GLOB PROTON_HEADERS "${CMAKE_SOURCE_DIR}/c/include/proton/*.h")
341-
# All swig modules should include ${BINDING_DEPS} in swig_link_libraries
342-
set (BINDING_DEPS qpid-proton)
346+
# All swig modules should include ${BINDING_DEPS} or ${BINDING_DEPS_FULL} in swig_link_libraries
347+
set (BINDING_DEPS qpid-proton-core)
348+
set (BINDING_DEPS_FULL qpid-proton)
343349

344350
# Add a block here to detect the prerequisites to build each language binding:
345351
#
@@ -348,15 +354,13 @@ if(SWIG_FOUND)
348354

349355
# Prerequisites for Python wrapper:
350356
find_package (PythonLibs ${PYTHON_VERSION_STRING} EXACT)
351-
# TODO aconway 2018-09-07: get python binding tests working with sanitizers
352-
if (PYTHONLIBS_FOUND AND NOT SANITIZE_FLAGS)
357+
if (PYTHONLIBS_FOUND)
353358
set (DEFAULT_PYTHON ON)
354359
endif ()
355360

356361
# Prerequisites for Ruby:
357362
find_package(Ruby)
358-
# TODO aconway 2018-09-07: get ruby binding tests working with sanitizers
359-
if (RUBY_FOUND AND NOT SANITIZE_FLAGS)
363+
if (RUBY_FOUND)
360364
set (DEFAULT_RUBY ON)
361365
endif ()
362366
endif()

INSTALL.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@ language.
5050
$ yum install jsoncpp-devel # C++ optional config file
5151

5252
# Dependencies needed to generate documentation
53-
$ yum install epydoc # Python
53+
$ yum install python-sphinx # Python
5454
$ yum install rubygem-yard # Ruby
5555
$ yum install doxygen # C, C++
5656

57+
5758
The following prerequisites are required to do a full build on
5859
Debian-based systems (Ubuntu). If you do not wish to build a given
5960
language binding you can omit the dev package for that language.
@@ -71,7 +72,7 @@ language binding you can omit the dev package for that language.
7172
$ apt-get install swig python-dev ruby-dev
7273

7374
# dependencies needed for python docs
74-
$ apt-get install python-epydoc
75+
$ apt-get install python-sphinx
7576

7677
From the directory where you found this `INSTALL.md` file:
7778

NOTICE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Apache Qpid Proton
2-
Copyright 2012-2019 The Apache Software Foundation
2+
Copyright 2012-2020 The Apache Software Foundation
33

44
This product includes software developed at
55
The Apache Software Foundation (http://www.apache.org/).

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.27.0
1+
0.31.0-SNAPSHOT
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Azure Pipeline build definition
2+
#
3+
# Use RelWithDebInfo build configuration so that linking on Windows doesn't require the
4+
# usually absent python debug dll.
5+
#
6+
# Set up the Windows python version to be the x86 (32 bit) version so that we can use the
7+
# default cmake generator which uses the 32 bit compiler
8+
#
9+
variables:
10+
Config: 'RelWithDebInfo'
11+
PythonVersion: '3.6'
12+
PythonArch: 'x64'
13+
CmakeConfigExtraArgs: ''
14+
15+
jobs:
16+
- job: Windows
17+
variables:
18+
PythonArch: 'x86'
19+
CmakeConfigExtraArgs: '-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake'
20+
pool:
21+
vmImage: 'vs2017-win2016'
22+
steps:
23+
- task: UsePythonVersion@0
24+
inputs:
25+
versionSpec: $(PythonVersion)
26+
addToPath: true
27+
architecture: $(PythonArch)
28+
- script: |
29+
choco install swig
30+
vcpkg install jsoncpp
31+
vcpkg integrate install
32+
name: InstallExtraStuff
33+
- template: steps.yml
34+
- job: Ubuntu
35+
pool:
36+
vmImage: 'ubuntu-18.04'
37+
steps:
38+
- script: sudo apt-get install -y swig libpython3-dev libsasl2-dev libjsoncpp-dev
39+
name: InstallExtraStuff
40+
- template: steps.yml
41+
- job: MacOS
42+
variables:
43+
PKG_CONFIG_PATH: '/usr/local/opt/[email protected]/lib/pkgconfig'
44+
CmakeConfigExtraArgs: '-DPYTHON_EXECUTABLE=/usr/local/bin/python3 -DBUILD_RUBY=no'
45+
pool:
46+
vmImage: 'macOS-10.15'
47+
steps:
48+
- script: |
49+
brew update
50+
brew install libuv swig pkgconfig [email protected] jsoncpp
51+
brew upgrade python@3 python@2 || true
52+
name: InstallExtraStuff
53+
- template: steps.yml

azure-pipelines/steps.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
steps:
2+
- task: UsePythonVersion@0
3+
enabled: false
4+
inputs:
5+
versionSpec: $(PythonVersion)
6+
addToPath: true
7+
architecture: $(PythonArch)
8+
- script: |
9+
python -m pip install --user --upgrade pip
10+
python -m pip install --user setuptools wheel tox
11+
name: InstallPythonModules
12+
- task: CMake@1
13+
name: CMakeConfigure
14+
inputs:
15+
workingDirectory: 'BLD'
16+
cmakeArgs: $(Build.SourcesDirectory) $(CmakeConfigExtraArgs)
17+
- task: CMake@1
18+
name: CMakeBuild
19+
inputs:
20+
workingDirectory: 'BLD'
21+
cmakeArgs: --build . --config $(Config)
22+
- script: ctest -C $(Config) -V -T Test --no-compress-output
23+
displayName: CMakeTest
24+
workingDirectory: 'BLD'
25+
continueOnError: true
26+
- task: PublishTestResults@2
27+
inputs:
28+
testRunTitle: Test run on $(Agent.OS) build $(Build.BuildNumber)
29+
testResultsFormat: cTest
30+
testResultsFiles: '**/Test.xml'
31+
buildConfiguration: $(Config)
32+
- bash: env | sort
33+
displayName: Environment
34+
condition: always()

0 commit comments

Comments
 (0)