Skip to content

Commit 617b349

Browse files
committed
ci: try to add validation for conan builds
1 parent 9a7c692 commit 617b349

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

scripts/publish-conan-version.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ mkdir -p "${RECIPE_DIR}"
127127
# Generate conanfile.py for conan-center-index
128128
cat > "${RECIPE_DIR}/conanfile.py" <<EOF
129129
from conan import ConanFile
130+
from conan.errors import ConanInvalidConfiguration
130131
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
131132
from conan.tools.files import get
132133
import os
@@ -159,6 +160,40 @@ class InfluxdbCppRestConan(ConanFile):
159160
if self.options.shared:
160161
self.options["cpprestsdk"].shared = True
161162
163+
def validate(self):
164+
# std::format requires:
165+
# - GCC 13+ (not available in GCC 11-12)
166+
# - Clang 14+
167+
# - MSVC 19.29+ (VS 2019 16.10+)
168+
if self.settings.compiler == "gcc":
169+
# Extract major version number for comparison
170+
gcc_version = str(self.settings.compiler.version)
171+
gcc_major = int(gcc_version.split('.')[0])
172+
if gcc_major < 13:
173+
raise ConanInvalidConfiguration(
174+
f"influxdb-cpp-rest requires GCC 13+ for std::format support. "
175+
f"Current version: {self.settings.compiler.version}"
176+
)
177+
elif self.settings.compiler == "clang":
178+
# Extract major version number for comparison
179+
clang_version = str(self.settings.compiler.version)
180+
clang_major = int(clang_version.split('.')[0])
181+
if clang_major < 14:
182+
raise ConanInvalidConfiguration(
183+
f"influxdb-cpp-rest requires Clang 14+ for std::format support. "
184+
f"Current version: {self.settings.compiler.version}"
185+
)
186+
elif self.settings.compiler == "msvc":
187+
# MSVC version is stored as "191", "192", etc. (19.1 = 191, 19.29 = 1929)
188+
# We need at least 192 (19.29)
189+
msvc_version = str(self.settings.compiler.version)
190+
msvc_numeric = int(msvc_version)
191+
if msvc_numeric < 192:
192+
raise ConanInvalidConfiguration(
193+
f"influxdb-cpp-rest requires MSVC 19.29+ (VS 2019 16.10+) for std::format support. "
194+
f"Current version: {self.settings.compiler.version}"
195+
)
196+
162197
def requirements(self):
163198
self.requires("cpprestsdk/2.10.19")
164199
self.requires("rxcpp/4.1.1")

0 commit comments

Comments
 (0)