Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update jfalcou-eve requirements as of v2022.03.0 #9785

Merged
merged 12 commits into from
Aug 9, 2022
6 changes: 3 additions & 3 deletions recipes/jfalcou-eve/all/conandata.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
sources:
"cci.20210823":
url: "https://github.com/jfalcou/eve/archive/30e7a7f6bcc5cf524a6c2cc624234148eee847be.tar.gz"
sha256: "c267135f7215197ef6859b2aa1c5b6a7fc45ca8333933beda56c96b0d0400ef1"
"v2021.10.0":
url: "https://github.com/jfalcou/eve/archive/refs/tags/v2021.10.0.tar.gz"
sha256: "580c40a8244039a700b93ea49fb0affc1c8d3c100eb6dc66368e101753f51e5c"
"v2022.03.0":
url: "https://github.com/jfalcou/eve/archive/refs/tags/v2022.03.0.tar.gz"
sha256: "8bf9faea516806e7dd468e778dcedc81c51f0b2c6a70b9c75987ce12bb759911"
22 changes: 11 additions & 11 deletions recipes/jfalcou-eve/all/conanfile.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
from conans import ConanFile, CMake, tools
from conan import ConanFile, tools
from conan.tools.scm import Version
from conans.errors import ConanInvalidConfiguration
import os

required_conan_version = ">=1.33.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The conan v2 API need a higher version (this is not the right one but just better)

Suggested change
required_conan_version = ">=1.33.0"
required_conan_version = ">=1.43.0"



class JfalcouEveConan(ConanFile):
name = "jfalcou-eve"
description = ("Expressive Velocity Engine - reimplementation of the old "
Expand All @@ -28,18 +27,19 @@ def _min_cppstd(self):

@property
def _compilers_minimum_version(self):
return {
"gcc": "10.2",
"Visual Studio": "16.9",
"clang": "12",
"apple-clang": "13",
}
return {"gcc": "11",
"Visual Studio": "16.9",
"clang": "13",
"apple-clang": "13",
}

def validate(self):
if self.settings.compiler.get_safe("cppstd"):
tools.check_min_cppstd(self, self._min_cppstd)
tools.build.check_min_cppstd(self, self._min_cppstd)
if self.settings.compiler == "Visual Studio":
raise ConanInvalidConfiguration("EVE does not support MSVC yet (https://github.com/jfalcou/eve/issues/1022).")
if self.settings.compiler == "apple-clang":
raise ConanInvalidConfiguration("EVE does not support apple Clang due to an incomplete libcpp.")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here. If v2021.10.0 was building before, why removing it now? If only v2022.03.0 is known not to work with apple-clang just raise for that version.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

apple-clang was not available when the first recipe was written. No version of EVE ever worked on Apple Clang as the Apple Clang libcpp doesn't contain half of what we require.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was not discarded before, right? The CI runs the build for all the configurations (Windows, Macos, Linux) and will only skip those that raise ConanInvalidConfiguration.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit lost here. The old version never passed CI with apple-clang as it predates its support in the index.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

apple-clang has been available in CCI from the very beginning.

It is a header-only, so it was available for all configurations:

    def package_id(self):
        self.info.header_only()

And test_package/conanfile.py works with apple-clang (I've just tried it locally on my machine).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm utterly confused then. Sorry for all the noise but it looked like the first issue with this PR was that it failed on apple-clang.

See previous message:

Users/jenkins/w/prod/BuildSingleReference@2/.conan/data/jfalcou-eve/v2021.10.0/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/eve/concept/vectorized.hpp:46:62: error: no member named 'integral' in namespace 'std'; did you mean 'internal'?
  concept integral_simd_value        = simd_value<T> && std::integral<detail::value_type_t<T>>;

and also, you said earlier:

The latest PR to this recipe is 5 months old, by that time apple-clang 13 was not used here. So this is the first time this recipe tries this compiler

So I don't see how it can work on your machine unless your apple-clang is not the CI apple-clang ?
Again sorry for this mess. I have no access to an Apple machine so I can't actually test those.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm already using apple-clang 13.1 (default for the latest MacOS version), maybe it defaults to a different C++ standard where that member is defined. CI uses 11.0.3, 12.0.5 and 13.0.0

Anyway, if you know it shouldn't work for apple-clang, raise ConanInvalidConfiguration for that compiler. We can enable it later in some other PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

apple-clang was not available when the first recipe was written. No version of EVE ever worked on Apple Clang as the Apple Clang libcpp doesn't contain half of what we require.

does it work with the gcc implementation libstdc++ instead of the native one libc++? just curious that usually the work around

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should, as it works for regular g++.


def lazy_lt_semver(v1, v2):
lv1 = [int(v) for v in v1.split(".")]
Expand All @@ -57,7 +57,7 @@ def package_id(self):
self.info.header_only()

def source(self):
tools.get(**self.conan_data["sources"][self.version], strip_root=True,
tools.files.get(self, **self.conan_data["sources"][self.version], strip_root=True,
destination=self._source_subfolder)

def package(self):
Expand Down
4 changes: 2 additions & 2 deletions recipes/jfalcou-eve/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
versions:
"cci.20210823":
folder: all
"v2021.10.0":
folder: all
"v2022.03.0":
folder: all