Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
0dbd2b3
initial implementation of soft deprecation macro, mqttclient deprecat…
sbSteveK Jul 16, 2025
67a5f64
try adding @deprecated tag to MqttClient constructor
sbSteveK Jul 16, 2025
ac963af
test updated deprecation text
sbSteveK Jul 16, 2025
04f7e28
add @deprecation tag to MqttClientConnectionConfigBuilder
sbSteveK Jul 16, 2025
a448a4e
add temp @deprecated notifications to MQTT client constructors
sbSteveK Jul 22, 2025
021eb61
Merge branch 'main' into soft-deprecation
sbSteveK Jul 30, 2025
d6df9f7
removed Mqtt5ClientCore from MqttClient.h include as it's forward dec…
sbSteveK Aug 4, 2025
43912cd
Merge branch 'main' into soft-deprecation
sbSteveK Aug 4, 2025
09d8f9b
include deprecation tags to Aws::Crt::Mqtt::MqttClient as well
sbSteveK Aug 4, 2025
9d1d8da
--cmake-extra=-DAWS_WARNINGS_ARE_ERRORS=OFF on necessary CI jobs
sbSteveK Aug 4, 2025
a05e947
AWS_CRT_DISABLE_DEPRECATION_WARNINGS to CI jobs
sbSteveK Aug 4, 2025
c695dbe
windows python needs to be on a singluar line
sbSteveK Aug 4, 2025
52571f7
Merge branch 'main' into soft-deprecation
sbSteveK Aug 4, 2025
8f1611c
\ to newline cmake-extra commands
sbSteveK Aug 4, 2025
e1740c2
use flags
sbSteveK Aug 4, 2025
11e492b
windows flags
sbSteveK Aug 4, 2025
0d33e43
don't touch cmake flags and just add the pre-processor definitions
sbSteveK Aug 4, 2025
2a414d5
=ON for Windows CI
sbSteveK Aug 5, 2025
91d1cd7
make the arg global for windows CI builds
sbSteveK Aug 5, 2025
15835bd
try appending the CMAKE flags for windows
sbSteveK Aug 5, 2025
82aced2
Merge branch 'main' into soft-deprecation
sbSteveK Aug 5, 2025
f1e5559
just prepend
sbSteveK Aug 5, 2025
bc932ee
try using CL to set env variables for windows compile to pick up
sbSteveK Aug 5, 2025
0798b95
DAWS not D AWS
sbSteveK Aug 5, 2025
3be6e36
fix rest of windows CI warnings
sbSteveK Aug 5, 2025
7304575
fix cross_compile
sbSteveK Aug 5, 2025
846a3b4
attempt to add extra flags to dockercross
sbSteveK Aug 5, 2025
3d9a6e1
try splitting the extra args for dockcross
sbSteveK Aug 5, 2025
d6c1a02
try setting C_FLAGS and CXX_FLAGS directly
sbSteveK Aug 5, 2025
e9ef565
add a -DAWS_CRT_DISABLE_DEPRECATION_WARNINGS option to CMakeLists.txt
sbSteveK Aug 5, 2025
7659823
use the option across linux tests
sbSteveK Aug 5, 2025
574bd2a
Disable deprecation warnings for the codebuild integration tests
sbSteveK Aug 6, 2025
01fa8bc
turn off fail-fast for linux-compiler-compat ci jobs
sbSteveK Aug 6, 2025
a24f577
turn off fail fast on remaining ci matrix jobs
sbSteveK Aug 7, 2025
1ce28a6
Merge branch 'main' into soft-deprecation
sbSteveK Aug 7, 2025
9b3773c
Merge branch 'main' into soft-deprecation
sbSteveK Aug 8, 2025
99d7bc1
typos and definition update
sbSteveK Aug 12, 2025
a14fe2b
organize cmake-extra in ci.yml
sbSteveK Aug 12, 2025
28f96db
clarify AWS_CRT_SOFT_DEPRECATED in Exports.h
sbSteveK Aug 12, 2025
24be1dc
ci.yml windows needs to be on a single line
sbSteveK Aug 12, 2025
c6e5135
updated deprecation warning text
sbSteveK Aug 12, 2025
f7d10b8
Change <URL> to BLOG LINK DEBUG WIP for now. Need to update it to a p…
sbSteveK Aug 12, 2025
040b821
handle the Macros being used for deprecation errors in doxygen
sbSteveK Aug 12, 2025
e7e7bc8
update deprecated annotation to reference the FAQ
sbSteveK Aug 12, 2025
bf6dedf
Merge branch 'main' into soft-deprecation
sbSteveK Sep 29, 2025
f5deca0
add deprecation option to windows lean ci job
sbSteveK Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 53 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DUSE_OPENSSL=ON
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }} \
--cmake-extra=-DUSE_OPENSSL=ON \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

# These linux-compat images need to run without -DUSE_OPENSSL because they do not have OpenSSL packages
# that are up-to-date (AL2) or don't provide OpenSSL development packages that is found in CMake (alpine)
Expand Down Expand Up @@ -72,7 +74,8 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }}
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }} \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

linux-compiler-compat:
runs-on: ubuntu-24.04 # latest
Expand Down Expand Up @@ -105,7 +108,9 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} --cmake-extra=-DUSE_OPENSSL=ON
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} \
--cmake-extra=-DUSE_OPENSSL=ON \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

raspberry:
runs-on: ubuntu-24.04 # latest
Expand Down Expand Up @@ -145,7 +150,10 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }} with cxx${{ matrix.cxx-std }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} --cmake-extra=-DUSE_OPENSSL=ON --cmake-extra=-DCMAKE_CXX_STANDARD=${{ matrix.cxx-std }}
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} \
--cmake-extra=-DUSE_OPENSSL=ON \
--cmake-extra=-DCMAKE_CXX_STANDARD=${{ matrix.cxx-std }} \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

byo-crypto:
runs-on: ubuntu-24.04 # latest
Expand All @@ -158,7 +166,10 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBYO_CRYPTO=ON --cmake-extra=-DUSE_OPENSSL=ON
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} \
--cmake-extra=-DBYO_CRYPTO=ON \
--cmake-extra=-DUSE_OPENSSL=ON \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

linux-shared-libs:
runs-on: ubuntu-24.04 # latest
Expand All @@ -175,7 +186,9 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} --cmake-extra=-DBUILD_SHARED_LIBS=ON
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} \
--cmake-extra=-DBUILD_SHARED_LIBS=ON \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

linux-glibcxx-ancient-abi:
runs-on: ubuntu-24.04 # latest
Expand All @@ -187,7 +200,11 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=gcc-11 --cmake-extra=-DBUILD_SHARED_LIBS=ON --cmake-extra=-DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=gcc-11 \
--cmake-extra=-DBUILD_SHARED_LIBS=ON \
--cmake-extra=-DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 \
--cmake-extra="-DCMAKE_C_FLAGS=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS" \
--cmake-extra="-DCMAKE_CXX_FLAGS=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS"

linux-openssl-static:
runs-on: ubuntu-24.04 # latest
Expand All @@ -200,7 +217,9 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --variant=openssl --cmake-extra=-DUSE_OPENSSL=ON
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --variant=openssl \
--cmake-extra=-DUSE_OPENSSL=ON \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

linux-openssl-shared:
runs-on: ubuntu-24.04 # latest
Expand All @@ -213,7 +232,10 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --variant=openssl --cmake-extra=-DUSE_OPENSSL=ON --cmake-extra=-DBUILD_SHARED_LIBS=ON
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --variant=openssl \
--cmake-extra=-DUSE_OPENSSL=ON \
--cmake-extra=-DBUILD_SHARED_LIBS=ON \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

linux-no-cpu-extensions:
runs-on: ubuntu-24.04 # latest
Expand All @@ -226,7 +248,10 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DUSE_CPU_EXTENSIONS=OFF --cmake-extra=-DUSE_OPENSSL=ON
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} \
--cmake-extra=-DUSE_CPU_EXTENSIONS=OFF \
--cmake-extra=-DUSE_OPENSSL=ON \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

windows:
runs-on: windows-2025 # latest
Expand All @@ -236,6 +261,8 @@ jobs:
role-to-assume: ${{ env.CRT_CI_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Build ${{ env.PACKAGE_NAME }} + consumers
env:
CL: "/DAWS_CRT_DISABLE_DEPRECATION_WARNINGS /EHsc"
run: |
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python builder.pyz build -p ${{ env.PACKAGE_NAME }}
Expand All @@ -245,6 +272,7 @@ jobs:
env:
CFLAGS: "-DWIN32_LEAN_AND_MEAN"
CXXFLAGS: "-DWIN32_LEAN_AND_MEAN"
CL: "/DAWS_CRT_DISABLE_DEPRECATION_WARNINGS /EHsc"
steps:
- uses: aws-actions/configure-aws-credentials@v4
with:
Expand All @@ -267,6 +295,8 @@ jobs:
role-to-assume: ${{ env.CRT_CI_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Build ${{ env.PACKAGE_NAME }} + consumers
env:
CL: "/DAWS_CRT_DISABLE_DEPRECATION_WARNINGS /EHsc"
run: |
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --compiler msvc-17 --target windows-${{ matrix.arch }}
Expand All @@ -279,6 +309,8 @@ jobs:
role-to-assume: ${{ env.CRT_CI_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Build ${{ env.PACKAGE_NAME }} + consumers
env:
CL: "/DAWS_CRT_DISABLE_DEPRECATION_WARNINGS /EHsc"
run: |
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON
Expand All @@ -297,6 +329,8 @@ jobs:
role-to-assume: ${{ env.CRT_CI_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Build ${{ env.PACKAGE_NAME }} + consumers
env:
CL: "/DAWS_CRT_DISABLE_DEPRECATION_WARNINGS /EHsc"
run: |
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON
Expand All @@ -309,6 +343,8 @@ jobs:
role-to-assume: ${{ env.CRT_CI_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Build ${{ env.PACKAGE_NAME }} + consumers
env:
CL: "/DAWS_CRT_DISABLE_DEPRECATION_WARNINGS /EHsc"
run: |
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python builder.pyz build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DUSE_CPU_EXTENSIONS=OFF
Expand Down Expand Up @@ -353,7 +389,8 @@ jobs:
run: |
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')"
chmod a+x builder
./builder build -p ${{ env.PACKAGE_NAME }} --target=ios-arm64 --cmake-extra=-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO
./builder build -p ${{ env.PACKAGE_NAME }} --target=ios-arm64 \
--cmake-extra=-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO

cross_compile:
name: Cross Compile ${{matrix.arch}}
Expand All @@ -362,7 +399,6 @@ jobs:
fail-fast: false
matrix:
arch: [linux-armv6, linux-armv7, linux-arm64, android-armv7]

steps:
- uses: aws-actions/configure-aws-credentials@v4
with:
Expand All @@ -372,7 +408,8 @@ jobs:
run: |
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')"
chmod a+x builder
./builder build -p aws-crt-cpp --spec=downstream --target=${{matrix.arch}} run_tests=false
./builder build -p aws-crt-cpp --spec=downstream --target=${{matrix.arch}} run_tests=false \
--cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON

# check that docs can still build
check-docs:
Expand Down Expand Up @@ -422,4 +459,6 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }}
run: |
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=clang-12 --cmake-extra=-DENABLE_SANITIZERS=ON --cmake-extra=-DSANITIZERS="${{ matrix.sanitizers }}"
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=clang-12 \
--cmake-extra=-DENABLE_SANITIZERS=ON \
--cmake-extra=-DSANITIZERS="${{ matrix.sanitizers }}"
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ option(BUILD_DEPS "Builds aws common runtime dependencies as part of build. Turn
option(BYO_CRYPTO "Don't build a tls implementation or link against a crypto interface. This feature is only for unix builds currently" OFF)
option(USE_OPENSSL "Set this if you want to use your system's OpenSSL 1.0.2/1.1.1 compatible libcrypto" OFF)
option(ENFORCE_SUBMODULE_VERSIONS "Check and enforce submodule versions to verify they are the minimum expected version or later. Versioning is only checked if BUILD_DEPS is ON." ON)
option(AWS_CRT_DISABLE_DEPRECATION_WARNINGS "Set this to silence [[deprecated]] warnings coming from aws-crt-cpp headers" OFF)
if(AWS_CRT_DISABLE_DEPRECATION_WARNINGS)
add_compile_definitions(AWS_CRT_DISABLE_DEPRECATION_WARNINGS)
endif()

# Let aws-iot-device-sdk-cpp-v2 report its own version in MQTT connections (instead of reporting aws-crt-cpp's version).
option(AWS_IOT_SDK_VERSION "Set the version reported by Aws::Iot::MqttClientConnectionConfigBuilder")
Expand Down
2 changes: 1 addition & 1 deletion codebuild/linux-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ phases:
- git submodule update --init
# Build using builder, which will also run tests
- python3 -c "from urllib.request import urlretrieve; urlretrieve('$BUILDER_HOST/$BUILDER_SOURCE/$BUILDER_VERSION/builder.pyz?run=$CODEBUILD_BUILD_ID', 'builder.pyz')"
- python3 builder.pyz build --project aws-crt-cpp downstream --cmake-extra=-DUSE_OPENSSL=ON
- python3 builder.pyz build --project aws-crt-cpp downstream --cmake-extra=-DUSE_OPENSSL=ON --cmake-extra=-DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON
post_build:
commands:
- echo Build completed on `date`
Expand Down
7 changes: 4 additions & 3 deletions docsrc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -2284,15 +2284,15 @@ ENABLE_PREPROCESSING = YES
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

MACRO_EXPANSION = NO
MACRO_EXPANSION = YES

# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and
# EXPAND_AS_DEFINED tags.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

EXPAND_ONLY_PREDEF = NO
EXPAND_ONLY_PREDEF = YES

# If the SEARCH_INCLUDES tag is set to YES, the include files in the
# INCLUDE_PATH will be searched if a #include is found.
Expand Down Expand Up @@ -2325,7 +2325,8 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED =
PREDEFINED += AWS_CRT_SOFT_DEPRECATED(x)=
PREDEFINED += AWS_CRT_CPP_API=

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
Expand Down
27 changes: 27 additions & 0 deletions include/aws/crt/Exports.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,30 @@
# define AWS_CRT_CPP_API
# endif
#endif

/*
* Deprecation warnings are emitted unless callers compile with -DAWS_CRT_DISABLE_DEPRECATION_WARNINGS=ON.
*/
#ifndef AWS_CRT_SOFT_DEPRECATED
# if !defined(AWS_CRT_DISABLE_DEPRECATION_WARNINGS)
/* On compilers that support __has_atribute check whether the `deprecated` attribute exists */
# if defined(__has_attribute)
# if __has_attribute(deprecated)
# define AWS_CRT_SOFT_DEPRECATED(msg) __attribute__((deprecated(msg)))
# endif
# endif
/* Otherwise we fallback to standard C++14 or MSVC syntax */
# if !defined(AWS_CRT_SOFT_DEPRECATED)
# if __cplusplus >= 201402L /* C++14 supports [[deprecated]] */
# define AWS_CRT_SOFT_DEPRECATED(msg) [[deprecated(msg)]]
# elif defined(_MSC_VER) /* Older MSVC */
# define AWS_CRT_SOFT_DEPRECATED(msg) __declspec(deprecated(msg))
# else /* Unknown compiler. Do nothing. */
# define AWS_CRT_SOFT_DEPRECATED(msg)
# endif
# endif
# else
/* If AWS_CRT_DISABLE_DEPRECATION_WARNINGS do nothing */
# define AWS_CRT_SOFT_DEPRECATED(msg)
# endif
#endif
26 changes: 20 additions & 6 deletions include/aws/crt/mqtt/MqttClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,27 +32,41 @@ namespace Aws
class HttpRequest;
}

namespace Mqtt5
{
class Mqtt5ClientCore;
}

namespace Mqtt
{
/**
* @deprecated We strongly recommend using the Aws::Crt::Mqtt5::Mqtt5Client. There are no current plans to
* fully deprecate the MQTT 3.1.1 client but it is highly recommended customers migrate to the MQTT5 client
* to access a more robust feature set, clearer error handling, and lifetime management. More details can be
* found in the GitHub Repo FAQ
*
* An MQTT client. This is a move-only type. Unless otherwise specified,
* all function arguments need only to live through the duration of the
* function call.
*/
class AWS_CRT_CPP_API MqttClient final
class AWS_CRT_CPP_API AWS_CRT_SOFT_DEPRECATED(
"We strongly recommend using the Aws::Crt::Mqtt5::Mqtt5Client. There are no current plans to fully "
"deprecate the MQTT 3.1.1 client but it is highly recommended customers migrate to the MQTT5 client to "
"access a more robust feature set, clearer error handling, and lifetime management. More details can "
"be found in the GitHub Repo FAQ") MqttClient final
{
public:
/**
* @deprecated We strongly recommend using the Aws::Crt::Mqtt5::Mqtt5Client. There are no current plans
* to fully deprecate the MQTT 3.1.1 client but it is highly recommended customers migrate to the MQTT5
* client to access a more robust feature set, clearer error handling, and lifetime management. More
* details can be found in the GitHub Repo FAQ
*
* Initialize an MqttClient using bootstrap and allocator
*/
MqttClient(Io::ClientBootstrap &bootstrap, Allocator *allocator = ApiAllocator()) noexcept;

/**
* @deprecated We strongly recommend using the Aws::Crt::Mqtt5::Mqtt5Client. There are no current plans
* to fully deprecate the MQTT 3.1.1 client but it is highly recommended customers migrate to the MQTT5
* client to access a more robust feature set, clearer error handling, and lifetime management. More
* details can be found in the GitHub Repo FAQ
*
* Initialize an MqttClient using a allocator and the default ClientBootstrap
*
* For more information on the default ClientBootstrap see
Expand Down
Loading