From 404fa6eaac0af6e484ae08771f52295ebe56997e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Thu, 29 Sep 2022 18:15:25 +0200 Subject: [PATCH] Add Visual Studio 2022 to AppVeyor CI/CD Update documents about supported platforms --- .travis.yml | 272 +++++++++++++++++++++++++-------------------------- README.md | 18 ++-- appveyor.yml | 89 ++++++++--------- build.bat | 2 +- 4 files changed, 191 insertions(+), 190 deletions(-) diff --git a/.travis.yml b/.travis.yml index d092e99..59535bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,136 +1,136 @@ -# Copyright (c) 2012-2021 Sebastien Rombauts (sebastien.rombauts@gmail.com) - -language: cpp - -# Use Linux unless specified otherwise -os: linux - -cache: - apt: true - -env: - global: - - BUILD_TYPE=Debug - - ASAN=ON - - INTERNAL_SQLITE=ON - - VALGRIND=OFF - -# Build variants (should test a reasonable number of combination of CMake options) -jobs: - include: - - ########################################################################## - # GCC on Linux - ########################################################################## - - # Coverity static code analysis - - dist: bionic - env: - - COVERITY_SCAN_PROJECT_NAME=SRombauts/SQLiteCpp - - COVERITY_SCAN_BRANCH_PATTERN=master - - COVERITY_SCAN_NOTIFICATION_EMAIL=sebastien.rombauts@gmail.com - - COVERITY_SCAN_BUILD_COMMAND_PREPEND="cmake ." - - COVERITY_SCAN_BUILD_COMMAND="make -j8" - # Encrypted COVERITY_SCAN_TOKEN, created via the "travis encrypt" command using the project repo's public key - - secure: "Qm4d8NEDPBtYZCYav46uPEvDCtaRsjLXlkVS+C+WCJAPcwXCGkrr96wEi7RWcq2xD86QCh0XiqaPT+xdUmlohOYIovRhaaBmZ1lwIJ4GsG/ZR6xoFr3DYsZ3o4GyXk2vNXNxEl82AC+Xs6e6gkLOV9XRkBcjpVIvoIXgNlKWeGY=" - - # GCC 7.4.0 Debug build with GCov for coverage build - - dist: bionic - env: - - cc=gcc cxx=g++ - - GCOV=ON - - COVERALLS=true - - # GCC 7.4.0 Debug build with Valgrind instead of Address Sanitizer - - dist: bionic - env: - - cc=gcc cxx=g++ - - ASAN=OFF - - VALGRIND=true - - # GCC 7.4.0 Release build - - dist: bionic - env: - - cc=gcc cxx=g++ - - BUILD_TYPE=Release - - # GCC 7.4.0 test linking with libsqlite3-dev package - - dist: bionic - env: - - cc=gcc cxx=g++ - - INTERNAL_SQLITE=OFF - - # GCC 5.4.0 - - dist: xenial - env: - - cc=gcc cxx=g++ - - # GCC 4.8.4 - - dist: trusty - env: - - cc=gcc cxx=g++ - - ########################################################################## - # Clang on Linux - ########################################################################## - - # Clang 7.0.0 - - dist: bionic - env: - - cc=clang cxx=clang++ - - # Clang 7.0.0 - - dist: xenial - env: - - cc=clang cxx=clang++ - - # Clang 5.0.0 - - dist: trusty - env: - - cc=clang cxx=clang++ - - ########################################################################## - # Clang on OSX - ########################################################################## - - # Latest XCode - AppleClang 9.1.0 - - os: osx - env: - - cc=clang cxx=clang++ - - # XCode 8.3 - AppleClang 8.1.0 - - os: osx - osx_image: xcode8.3 - env: - - cc=clang cxx=clang++ - -before_install: - # Coverity: don't use addons.coverity_scan since it run on every job of the build matrix, which waste resources and exhausts quotas - # Note: the job dedicated to Coverity need to only run the shell script and then exit (to not try to build and run unit tests etc.) - - if [[ -n "$COVERITY_SCAN_PROJECT_NAME" ]] ; then curl -s https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh | bash ; exit 0 ; fi - - - if [[ "$INTERNAL_SQLITE" == "OFF" ]]; then sudo apt-get install libsqlite3-dev ; fi - - if [[ "$VALGRIND" == "true" ]]; then sudo apt-get install valgrind ; fi - - if [[ "$COVERALLS" == "true" ]]; then pip install --user cpp-coveralls ; fi - - # Set the compiler environment variables properly - - export CC=${cc} - - export CXX=${cxx} - -# scripts to run before build -before_script: - - mkdir build - - cd build - - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON .. - -# build examples, and run tests (ie make & make test) -script: - - cmake --build . - - export ASAN_OPTIONS=verbosity=1:debug=1 - - ctest --verbose --output-on-failure - - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 ./SQLiteCpp_example1 ; fi - - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 ./SQLiteCpp_tests ; fi - -# generate and publish GCov coveralls results -after_success: - - if [[ "$COVERALLS" == "true" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi +# Copyright (c) 2012-2022 Sebastien Rombauts (sebastien.rombauts@gmail.com) + +language: cpp + +# Use Linux unless specified otherwise +os: linux + +cache: + apt: true + +env: + global: + - BUILD_TYPE=Debug + - ASAN=ON + - INTERNAL_SQLITE=ON + - VALGRIND=OFF + +# Build variants (should test a reasonable number of combination of CMake options) +jobs: + include: + + ########################################################################## + # GCC on Linux + ########################################################################## + + # Coverity static code analysis + - dist: bionic + env: + - COVERITY_SCAN_PROJECT_NAME=SRombauts/SQLiteCpp + - COVERITY_SCAN_BRANCH_PATTERN=master + - COVERITY_SCAN_NOTIFICATION_EMAIL=sebastien.rombauts@gmail.com + - COVERITY_SCAN_BUILD_COMMAND_PREPEND="cmake ." + - COVERITY_SCAN_BUILD_COMMAND="make -j8" + # Encrypted COVERITY_SCAN_TOKEN, created via the "travis encrypt" command using the project repo's public key + - secure: "Qm4d8NEDPBtYZCYav46uPEvDCtaRsjLXlkVS+C+WCJAPcwXCGkrr96wEi7RWcq2xD86QCh0XiqaPT+xdUmlohOYIovRhaaBmZ1lwIJ4GsG/ZR6xoFr3DYsZ3o4GyXk2vNXNxEl82AC+Xs6e6gkLOV9XRkBcjpVIvoIXgNlKWeGY=" + + # GCC 7.4.0 Debug build with GCov for coverage build + - dist: bionic + env: + - cc=gcc cxx=g++ + - GCOV=ON + - COVERALLS=true + + # GCC 7.4.0 Debug build with Valgrind instead of Address Sanitizer + - dist: bionic + env: + - cc=gcc cxx=g++ + - ASAN=OFF + - VALGRIND=true + + # GCC 7.4.0 Release build + - dist: bionic + env: + - cc=gcc cxx=g++ + - BUILD_TYPE=Release + + # GCC 7.4.0 test linking with libsqlite3-dev package + - dist: bionic + env: + - cc=gcc cxx=g++ + - INTERNAL_SQLITE=OFF + + # GCC 5.4.0 + - dist: xenial + env: + - cc=gcc cxx=g++ + + # GCC 4.8.4 + - dist: trusty + env: + - cc=gcc cxx=g++ + + ########################################################################## + # Clang on Linux + ########################################################################## + + # Clang 7.0.0 + - dist: bionic + env: + - cc=clang cxx=clang++ + + # Clang 7.0.0 + - dist: xenial + env: + - cc=clang cxx=clang++ + + # Clang 5.0.0 + - dist: trusty + env: + - cc=clang cxx=clang++ + + ########################################################################## + # Clang on OSX + ########################################################################## + + # Latest XCode - AppleClang 9.1.0 + - os: osx + env: + - cc=clang cxx=clang++ + + # XCode 8.3 - AppleClang 8.1.0 + - os: osx + osx_image: xcode8.3 + env: + - cc=clang cxx=clang++ + +before_install: + # Coverity: don't use addons.coverity_scan since it run on every job of the build matrix, which waste resources and exhausts quotas + # Note: the job dedicated to Coverity need to only run the shell script and then exit (to not try to build and run unit tests etc.) + - if [[ -n "$COVERITY_SCAN_PROJECT_NAME" ]] ; then curl -s https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh | bash ; exit 0 ; fi + + - if [[ "$INTERNAL_SQLITE" == "OFF" ]]; then sudo apt-get install libsqlite3-dev ; fi + - if [[ "$VALGRIND" == "true" ]]; then sudo apt-get install valgrind ; fi + - if [[ "$COVERALLS" == "true" ]]; then pip install --user cpp-coveralls ; fi + + # Set the compiler environment variables properly + - export CC=${cc} + - export CXX=${cxx} + +# scripts to run before build +before_script: + - mkdir build + - cd build + - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON .. + +# build examples, and run tests (ie make & make test) +script: + - cmake --build . + - export ASAN_OPTIONS=verbosity=1:debug=1 + - ctest --verbose --output-on-failure + - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 ./SQLiteCpp_example1 ; fi + - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 ./SQLiteCpp_tests ; fi + +# generate and publish GCov coveralls results +after_success: + - if [[ "$COVERALLS" == "true" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi diff --git a/README.md b/README.md index 191edee..e2cc33f 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ SQLiteC++ [![Coverity](https://img.shields.io/coverity/scan/14508.svg)](https://scan.coverity.com/projects/srombauts-sqlitecpp "Coverity Scan Build Status") [![Join the chat at https://gitter.im/SRombauts/SQLiteCpp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/SRombauts/SQLiteCpp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. +SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper. @@ -69,17 +69,17 @@ and then is always valid until destroyed. Now requires a C++11 compiler. Use branch [sqlitecpp-2.x](https://github.com/SRombauts/SQLiteCpp/tree/sqlitecpp-2.x) for latest pre-C++11 developments. Developments and tests are done under the following OSs: -- Ubuntu 14.04, 16.04 and 18.04 (Travis CI) -- Windows 10, and Windows Server 2012 R2 & Windows Server 2016 (AppVeyor) -- OS X 10.11 (Travis CI) -- Github Actions +- Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions) +- Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions) +- MacOS 10.11 and 11.7 (Travis CI and Github Actions) - Valgrind memcheck tool And the following IDEs/Compilers -- GCC 4.8.4, 5.3.0 and 7.1.1 (C++11, C++14, C++17) -- Clang 5 -- Xcode 8 & 9 -- Visual Studio Community 2019, 2017, and 2015 (AppVeyor) +- GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17) +- Clang 5 and 7 (Travis CI) +- AppleClang 8, 9 and 13 (Travis CI and Github Actions) +- Xcode 8 & 9 (Travis CI) +- Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions) ### Dependencies diff --git a/appveyor.yml b/appveyor.yml index 2ac361e..50b3659 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,44 +1,45 @@ -# Copyright (c) 2012-2021 Sebastien Rombauts (sebastien.rombauts@gmail.com) - -# build format -version: "{build}" - -# scripts that run after cloning repository -install: - - git submodule update --init --recursive - -image: - - Visual Studio 2019 - - Visual Studio 2017 - - Visual Studio 2015 - -# configurations to add to build matrix -# TODO: MinGW Makefiles and MSYS Makefiles -configuration: - - Debug - - Release - -environment: - matrix: - - arch: Win32 - - arch: x64 - -init: - - echo %APPVEYOR_BUILD_WORKER_IMAGE% - %configuration% - %arch% - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" (set vs=Visual Studio 15 2017) - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (set vs=Visual Studio 14 2015) - - if "%arch%"=="x64" (set generator="%vs% Win64") else (set generator="%vs%") - # CMake uses a different grammar for Visual Studio 2019, with -A to specify architecture: - - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2019" (set generator="Visual Studio 16 2019" -A %arch%) - - echo %generator% - -# scripts to run before build -before_build: - - mkdir build - - cd build - - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON -DSQLITECPP_RUN_CPPCHECK=OFF .. -G %generator% - -# build examples, and run tests (ie make & make test) -build_script: - - cmake --build . --config %configuration% - - ctest --output-on-failure +# Copyright (c) 2012-2022 Sebastien Rombauts (sebastien.rombauts@gmail.com) + +# build format +version: "{build}" + +# scripts that run after cloning repository +install: + - git submodule update --init --recursive + +image: + - Visual Studio 2022 + - Visual Studio 2019 + - Visual Studio 2017 + - Visual Studio 2015 + +# configurations to add to build matrix +# TODO: MinGW Makefiles and MSYS Makefiles +configuration: + - Debug + - Release + +environment: + matrix: + - arch: Win32 + - arch: x64 + +init: + - echo %APPVEYOR_BUILD_WORKER_IMAGE% - %configuration% - %arch% + - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" (set vs=Visual Studio 15 2017) + - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (set vs=Visual Studio 14 2015) + - if "%arch%"=="x64" (set generator="%vs% Win64") else (set generator="%vs%") + # CMake uses a different grammar for Visual Studio 2019, with -A to specify architecture: + - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2019" (set generator="Visual Studio 16 2019" -A %arch%) + - echo %generator% + +# scripts to run before build +before_build: + - mkdir build + - cd build + - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON -DSQLITECPP_RUN_CPPCHECK=OFF .. -G %generator% + +# build examples, and run tests (ie make & make test) +build_script: + - cmake --build . --config %configuration% + - ctest --output-on-failure diff --git a/build.bat b/build.bat index 574e6f7..3e3b3c8 100644 --- a/build.bat +++ b/build.bat @@ -1,4 +1,4 @@ -@REM Copyright (c) 2012-2021 Sebastien Rombauts (sebastien.rombauts@gmail.com) +@REM Copyright (c) 2012-2022 Sebastien Rombauts (sebastien.rombauts@gmail.com) @REM @REM Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt @REM or copy at http://opensource.org/licenses/MIT)