From 849e52e27b9d8e9d29cf642f750bff7bf6b29932 Mon Sep 17 00:00:00 2001 From: Antony Peacock Date: Sat, 8 Feb 2025 03:21:22 +0000 Subject: [PATCH] Update workflow to include gcc 14, and clang 17, 18, 19 (#335) * Update workflow to include gcc 14, and clang 17, 18, 19 * Gcc 14 not yet supported for CI * Debug on CI * Clang 19 is the first to support date * Fix typo * Focus on Clang 17 for now --- .conan/profiles/clang/18/compiler | 7 ++++ .conan/profiles/clang/18/x64-libc++-debug | 7 ++++ .conan/profiles/clang/18/x64-libc++-msr | 7 ++++ .conan/profiles/clang/18/x64-libc++-release | 7 ++++ .conan/profiles/clang/18/x64-libc++-rwdi | 7 ++++ .conan/profiles/clang/19/compiler | 7 ++++ .conan/profiles/clang/19/x64-libc++-debug | 7 ++++ .conan/profiles/clang/19/x64-libc++-msr | 7 ++++ .conan/profiles/clang/19/x64-libc++-release | 7 ++++ .conan/profiles/clang/19/x64-libc++-rwdi | 7 ++++ .../profiles/gcc/13/armv8-libstdc++11-debug | 7 ++++ .conan/profiles/gcc/13/armv8-libstdc++11-msr | 7 ++++ .../profiles/gcc/13/armv8-libstdc++11-release | 7 ++++ .conan/profiles/gcc/13/armv8-libstdc++11-rwdi | 7 ++++ .../profiles/gcc/14/armv8-libstdc++11-debug | 7 ++++ .conan/profiles/gcc/14/armv8-libstdc++11-msr | 7 ++++ .../profiles/gcc/14/armv8-libstdc++11-release | 7 ++++ .conan/profiles/gcc/14/armv8-libstdc++11-rwdi | 7 ++++ .conan/profiles/gcc/14/compiler | 7 ++++ .conan/profiles/gcc/14/x64-libstdc++11-debug | 7 ++++ .conan/profiles/gcc/14/x64-libstdc++11-msr | 7 ++++ .../profiles/gcc/14/x64-libstdc++11-release | 7 ++++ .conan/profiles/gcc/14/x64-libstdc++11-rwdi | 7 ++++ .github/workflows/cmake.yml | 34 +++++++++++++++++++ .../core/conversion/adapters/std/chrono.hpp | 2 +- 25 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 .conan/profiles/clang/18/compiler create mode 100644 .conan/profiles/clang/18/x64-libc++-debug create mode 100644 .conan/profiles/clang/18/x64-libc++-msr create mode 100644 .conan/profiles/clang/18/x64-libc++-release create mode 100644 .conan/profiles/clang/18/x64-libc++-rwdi create mode 100644 .conan/profiles/clang/19/compiler create mode 100644 .conan/profiles/clang/19/x64-libc++-debug create mode 100644 .conan/profiles/clang/19/x64-libc++-msr create mode 100644 .conan/profiles/clang/19/x64-libc++-release create mode 100644 .conan/profiles/clang/19/x64-libc++-rwdi create mode 100644 .conan/profiles/gcc/13/armv8-libstdc++11-debug create mode 100644 .conan/profiles/gcc/13/armv8-libstdc++11-msr create mode 100644 .conan/profiles/gcc/13/armv8-libstdc++11-release create mode 100644 .conan/profiles/gcc/13/armv8-libstdc++11-rwdi create mode 100644 .conan/profiles/gcc/14/armv8-libstdc++11-debug create mode 100644 .conan/profiles/gcc/14/armv8-libstdc++11-msr create mode 100644 .conan/profiles/gcc/14/armv8-libstdc++11-release create mode 100644 .conan/profiles/gcc/14/armv8-libstdc++11-rwdi create mode 100644 .conan/profiles/gcc/14/compiler create mode 100644 .conan/profiles/gcc/14/x64-libstdc++11-debug create mode 100644 .conan/profiles/gcc/14/x64-libstdc++11-msr create mode 100644 .conan/profiles/gcc/14/x64-libstdc++11-release create mode 100644 .conan/profiles/gcc/14/x64-libstdc++11-rwdi diff --git a/.conan/profiles/clang/18/compiler b/.conan/profiles/clang/18/compiler new file mode 100644 index 00000000..5f35c465 --- /dev/null +++ b/.conan/profiles/clang/18/compiler @@ -0,0 +1,7 @@ +include(../../compiler/clang) + +[settings] +compiler.version=18 + +[conf] +tools.build:compiler_executables={"c":"clang-18","cpp":"clang++-18"} diff --git a/.conan/profiles/clang/18/x64-libc++-debug b/.conan/profiles/clang/18/x64-libc++-debug new file mode 100644 index 00000000..42e44ddf --- /dev/null +++ b/.conan/profiles/clang/18/x64-libc++-debug @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/debug) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/clang/18/x64-libc++-msr b/.conan/profiles/clang/18/x64-libc++-msr new file mode 100644 index 00000000..bf1b357c --- /dev/null +++ b/.conan/profiles/clang/18/x64-libc++-msr @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/min-size-rel) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/clang/18/x64-libc++-release b/.conan/profiles/clang/18/x64-libc++-release new file mode 100644 index 00000000..4fd83e45 --- /dev/null +++ b/.conan/profiles/clang/18/x64-libc++-release @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/release) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/clang/18/x64-libc++-rwdi b/.conan/profiles/clang/18/x64-libc++-rwdi new file mode 100644 index 00000000..eab784d4 --- /dev/null +++ b/.conan/profiles/clang/18/x64-libc++-rwdi @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/rel-with-deb-info) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/clang/19/compiler b/.conan/profiles/clang/19/compiler new file mode 100644 index 00000000..73c0cbce --- /dev/null +++ b/.conan/profiles/clang/19/compiler @@ -0,0 +1,7 @@ +include(../../compiler/clang) + +[settings] +compiler.version=19 + +[conf] +tools.build:compiler_executables={"c":"clang-19","cpp":"clang++-19"} diff --git a/.conan/profiles/clang/19/x64-libc++-debug b/.conan/profiles/clang/19/x64-libc++-debug new file mode 100644 index 00000000..42e44ddf --- /dev/null +++ b/.conan/profiles/clang/19/x64-libc++-debug @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/debug) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/clang/19/x64-libc++-msr b/.conan/profiles/clang/19/x64-libc++-msr new file mode 100644 index 00000000..bf1b357c --- /dev/null +++ b/.conan/profiles/clang/19/x64-libc++-msr @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/min-size-rel) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/clang/19/x64-libc++-release b/.conan/profiles/clang/19/x64-libc++-release new file mode 100644 index 00000000..4fd83e45 --- /dev/null +++ b/.conan/profiles/clang/19/x64-libc++-release @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/release) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/clang/19/x64-libc++-rwdi b/.conan/profiles/clang/19/x64-libc++-rwdi new file mode 100644 index 00000000..eab784d4 --- /dev/null +++ b/.conan/profiles/clang/19/x64-libc++-rwdi @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/rel-with-deb-info) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/gcc/13/armv8-libstdc++11-debug b/.conan/profiles/gcc/13/armv8-libstdc++11-debug new file mode 100644 index 00000000..e5cfa336 --- /dev/null +++ b/.conan/profiles/gcc/13/armv8-libstdc++11-debug @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/armv8) +include(../../cpp/23) +include(../../config/debug) +include(../../os/current) +include(../../packages/settings) +include(compiler) diff --git a/.conan/profiles/gcc/13/armv8-libstdc++11-msr b/.conan/profiles/gcc/13/armv8-libstdc++11-msr new file mode 100644 index 00000000..f2188604 --- /dev/null +++ b/.conan/profiles/gcc/13/armv8-libstdc++11-msr @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/armv8) +include(../../cpp/23) +include(../../config/min-size-rel) +include(../../os/current) +include(../../packages/settings) +include(compiler) diff --git a/.conan/profiles/gcc/13/armv8-libstdc++11-release b/.conan/profiles/gcc/13/armv8-libstdc++11-release new file mode 100644 index 00000000..97cf4395 --- /dev/null +++ b/.conan/profiles/gcc/13/armv8-libstdc++11-release @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/armv8) +include(../../cpp/23) +include(../../config/release) +include(../../os/current) +include(../../packages/settings) +include(compiler) diff --git a/.conan/profiles/gcc/13/armv8-libstdc++11-rwdi b/.conan/profiles/gcc/13/armv8-libstdc++11-rwdi new file mode 100644 index 00000000..9a59f24d --- /dev/null +++ b/.conan/profiles/gcc/13/armv8-libstdc++11-rwdi @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/armv8) +include(../../cpp/23) +include(../../config/rel-with-deb-info) +include(../../os/current) +include(../../packages/settings) +include(compiler) diff --git a/.conan/profiles/gcc/14/armv8-libstdc++11-debug b/.conan/profiles/gcc/14/armv8-libstdc++11-debug new file mode 100644 index 00000000..e5cfa336 --- /dev/null +++ b/.conan/profiles/gcc/14/armv8-libstdc++11-debug @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/armv8) +include(../../cpp/23) +include(../../config/debug) +include(../../os/current) +include(../../packages/settings) +include(compiler) diff --git a/.conan/profiles/gcc/14/armv8-libstdc++11-msr b/.conan/profiles/gcc/14/armv8-libstdc++11-msr new file mode 100644 index 00000000..f2188604 --- /dev/null +++ b/.conan/profiles/gcc/14/armv8-libstdc++11-msr @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/armv8) +include(../../cpp/23) +include(../../config/min-size-rel) +include(../../os/current) +include(../../packages/settings) +include(compiler) diff --git a/.conan/profiles/gcc/14/armv8-libstdc++11-release b/.conan/profiles/gcc/14/armv8-libstdc++11-release new file mode 100644 index 00000000..97cf4395 --- /dev/null +++ b/.conan/profiles/gcc/14/armv8-libstdc++11-release @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/armv8) +include(../../cpp/23) +include(../../config/release) +include(../../os/current) +include(../../packages/settings) +include(compiler) diff --git a/.conan/profiles/gcc/14/armv8-libstdc++11-rwdi b/.conan/profiles/gcc/14/armv8-libstdc++11-rwdi new file mode 100644 index 00000000..9a59f24d --- /dev/null +++ b/.conan/profiles/gcc/14/armv8-libstdc++11-rwdi @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/armv8) +include(../../cpp/23) +include(../../config/rel-with-deb-info) +include(../../os/current) +include(../../packages/settings) +include(compiler) diff --git a/.conan/profiles/gcc/14/compiler b/.conan/profiles/gcc/14/compiler new file mode 100644 index 00000000..7be6b0e3 --- /dev/null +++ b/.conan/profiles/gcc/14/compiler @@ -0,0 +1,7 @@ +include(../../compiler/gcc) + +[settings] +compiler.version=14 + +[conf] +tools.build:compiler_executables={"c":"gcc-14","cpp":"g++-14"} diff --git a/.conan/profiles/gcc/14/x64-libstdc++11-debug b/.conan/profiles/gcc/14/x64-libstdc++11-debug new file mode 100644 index 00000000..42e44ddf --- /dev/null +++ b/.conan/profiles/gcc/14/x64-libstdc++11-debug @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/debug) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/gcc/14/x64-libstdc++11-msr b/.conan/profiles/gcc/14/x64-libstdc++11-msr new file mode 100644 index 00000000..bf1b357c --- /dev/null +++ b/.conan/profiles/gcc/14/x64-libstdc++11-msr @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/min-size-rel) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/gcc/14/x64-libstdc++11-release b/.conan/profiles/gcc/14/x64-libstdc++11-release new file mode 100644 index 00000000..4fd83e45 --- /dev/null +++ b/.conan/profiles/gcc/14/x64-libstdc++11-release @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/release) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.conan/profiles/gcc/14/x64-libstdc++11-rwdi b/.conan/profiles/gcc/14/x64-libstdc++11-rwdi new file mode 100644 index 00000000..eab784d4 --- /dev/null +++ b/.conan/profiles/gcc/14/x64-libstdc++11-rwdi @@ -0,0 +1,7 @@ +include(../../default) +include(../../arch/x64) +include(../../config/rel-with-deb-info) +include(../../os/current) +include(../../packages/settings) +include(compiler) +include(../../cpp/23) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index d82cdf34..469f4c01 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -43,6 +43,12 @@ jobs: compiler: { type: GCC, version: 13, conan: "gcc", cc: "gcc-13", cxx: "g++-13", std: 20 }, lib: "libstdc++11" } + # - { + # name: "Ubuntu GCC-14", + # os: ubuntu-latest, + # compiler: { type: GCC, version: 14, conan: "gcc", cc: "gcc-14", cxx: "g++-14", std: 20 }, + # lib: "libstdc++11" + # } - { name: "Ubuntu Clang-14 + libc++", os: ubuntu-22.04, @@ -99,6 +105,34 @@ jobs: }, lib: "libc++", } +# - { +# name: "Ubuntu Clang-18 + libc++", +# os: ubuntu-latest, +# compiler: +# { +# type: CLANG, +# version: 18, +# conan: "clang", +# cc: "clang-18", +# cxx: "clang++-18", +# std: 20 +# }, +# lib: "libc++", +# } +# - { +# name: "Ubuntu Clang-19 + libc++", +# os: ubuntu-latest, +# compiler: +# { +# type: CLANG, +# version: 19, +# conan: "clang", +# cc: "clang-19", +# cxx: "clang++-19", +# std: 20 +# }, +# lib: "libc++", +# } - { name: "Visual Studio 2019", os: windows-latest, diff --git a/libraries/core/src/morpheus/core/conversion/adapters/std/chrono.hpp b/libraries/core/src/morpheus/core/conversion/adapters/std/chrono.hpp index bc0fdae9..7c9e53b9 100644 --- a/libraries/core/src/morpheus/core/conversion/adapters/std/chrono.hpp +++ b/libraries/core/src/morpheus/core/conversion/adapters/std/chrono.hpp @@ -17,7 +17,7 @@ #define MORPHEUS_CPP_LIB_CHRONO_FORMATTING \ (((MORPHEUS_COMPILER == MORPHEUS_VISUALSTUDIO_COMPILER) && (__cpp_lib_chrono < 201907L)) || \ ((MORPHEUS_COMPILER == MORPHEUS_GNUC_COMPILER) && (MORPHEUS_COMP_VER < 140000000)) || \ - ((MORPHEUS_COMPILER == MORPHEUS_CLANG_COMPILER) && (MORPHEUS_COMP_VER < 180000000)) || \ + ((MORPHEUS_COMPILER == MORPHEUS_CLANG_COMPILER) && (MORPHEUS_COMP_VER < 190000000)) || \ ((MORPHEUS_COMPILER == MORPHEUS_APPLE_CLANG_COMPILER) && (MORPHEUS_COMP_VER < 150000000))) #if MORPHEUS_CPP_LIB_CHRONO_FORMATTING