diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index 2c84fc2d..deec55a4 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -39,38 +39,43 @@ jobs: matrix: config: - { - name: "Windows MSVC 2019", - os: windows-latest, - compiler: { type: VISUAL, version: 16, cc: "cl", cxx: "cl" } + name: "Windows MSVC 19.29", + os: windows-2019, + compiler: { type: MSVC, version: 19.29, std: 20 } + } + - { + name: "Windows MSVC 19.30", + os: windows-2019, + compiler: { type: MSVC, version: 19.30, std: 23 } } - { name: "Ubuntu GCC 10.3.0", os: ubuntu-20.04, - compiler: { type: GCC, version: 10, cc: "gcc-10", cxx: "g++-10" }, + compiler: { type: GCC, version: 10, cc: "gcc-10", cxx: "g++-10", std: 20 }, lib: "libstdc++11" } - { name: "Ubuntu GCC 11.1.0", os: ubuntu-20.04, - compiler: { type: GCC, version: 11, cc: "gcc-11", cxx: "g++-11" }, + compiler: { type: GCC, version: 11, cc: "gcc-11", cxx: "g++-11", std: 20 }, lib: "libstdc++11" } - { name: "Ubuntu Clang 12.0.0 + libstdc++11", os: ubuntu-20.04, - compiler: { type: CLANG, version: 12, cc: "clang-12", cxx: "clang++-12" }, + compiler: { type: CLANG, version: 12, cc: "clang-12", cxx: "clang++-12", std: 20 }, lib: "libstdc++11" } - { name: "Ubuntu Clang 12.0.0 + libc++", os: ubuntu-20.04, - compiler: { type: CLANG, version: 12, cc: "clang-12", cxx: "clang++-12" }, + compiler: { type: CLANG, version: 12, cc: "clang-12", cxx: "clang++-12", std: 20 }, lib: "libc++" } - { name: "Ubuntu Clang 13.0.0 + libc++", os: ubuntu-20.04, - compiler: { type: CLANG, version: 13, cc: "clang-13", cxx: "clang++-13" }, + compiler: { type: CLANG, version: 13, cc: "clang-13", cxx: "clang++-13", std: 20 }, lib: "libc++" } # In case a Conan docker image will be needed to provide a specific configuration we can use a Docker image as follows @@ -136,6 +141,7 @@ jobs: if [[ "${{ matrix.config.compiler.type }}" == "GCC" || "${{ matrix.config.compiler.type }}" == "CLANG" ]]; then conan profile update settings.compiler.libcxx=${{ matrix.config.lib }} default fi + conan profile update settings.compiler.cppstd=${{ matrix.config.compiler.std }} default conan profile update conf.tools.cmake.cmaketoolchain:generator=Ninja default conan profile show default # - name: Add support for clang-13 to Conan's settings.yml diff --git a/build.py b/build.py index 86381036..c733eb38 100644 --- a/build.py +++ b/build.py @@ -44,6 +44,5 @@ if __name__ == "__main__": ) builder.add_common_builds(pure_c=True) for settings, options, env_vars, build_requires, reference in builder.items: - settings["compiler.cppstd"] = "20" env_vars["mp-units:CONAN_RUN_TESTS"] = "True" builder.run() diff --git a/conanfile.py b/conanfile.py index ae848677..19845e26 100644 --- a/conanfile.py +++ b/conanfile.py @@ -102,6 +102,9 @@ class UnitsConan(ConanFile): elif compiler == "Visual Studio": if version < "16": raise ConanInvalidConfiguration("mp-units requires at least Visual Studio 16.9") + elif compiler == "msvc": + if version < "19.28": + raise ConanInvalidConfiguration("mp-units requires at least MSVC 19.28") else: raise ConanInvalidConfiguration("Unsupported compiler") check_min_cppstd(self, "20")