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

llvm 10.0.0 #1450

Closed
wants to merge 10 commits into from
Closed

llvm 10.0.0 #1450

wants to merge 10 commits into from

Conversation

Manu343726
Copy link
Contributor

Specify library name and version: llvm/10.0.0

  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

Related to #683

This PR implements a llvm recipe by using current llvm source structure on github.
All llvm projects are now maintained under the same git repository, with a LLVM_ENABLE_PROJECTS
CMake option to enable the different projects. I have listed all (Including openmp @jgsogo) and mapped them
to package options (clang and compiler-rt are enabled by default, but we can discuss this).

The package includes The official LLVM frontend tutorial as test_package/.

Note the package has no dependencies, but we know llvm has some external dependencies (libtinfo) that are not currently available in conan-center-index.
After talking with @jgsogo I have decided to push this recipe as a first version we can continue working with. I haven't had time to test
the recipe on Windows, but I'm sure it should be working since the recipe does nothing special and just calls the llvm cmake with the documented
configuration. Anyway, I will be glad if someone could test it for me.

@conan-center-bot

This comment has been minimized.

@Manu343726
Copy link
Contributor Author

WHAT I don't know what that means, I literally copied the config from my previous stlab recipe...
I need some CCI expert :)

@madebr
Copy link
Contributor

madebr commented Apr 25, 2020

@Manu343726

You need to rename config.yaml to config.yml

@madebr
Copy link
Contributor

madebr commented Apr 25, 2020

I haven't had time to test
the recipe on Windows, but I'm sure it should be working since the recipe does nothing special and just calls the llvm cmake with the documented
configuration. Anyway, I will be glad if someone could test it for me.

It started building on Visual Studio but I stopped the build because I did not have enough free space and it required a lot of CPU power (which impeded my other work).

I noticed that it requires Z3, so I opened #1451

@Manu343726
Copy link
Contributor Author

@Manu343726

You need to rename config.yaml to config.yml

Ouch.... Thank you

@jgsogo
Copy link
Contributor

jgsogo commented Apr 25, 2020

I would love to monitor how many resources this build consumes in the CI 😅 This is going to be huge, let's work on those dependencies

🙌


Note.- We'll try to improve that error message, but it won't be the highest priority right now

@Manu343726
Copy link
Contributor Author

It will be great if you can list the dependencies of the subprojects you know, like openmp.

I will change the recipe to use conandata.yml to list the projects and its deps (to keep the recipe clean)

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

Comment on lines +56 to +57
if self.settings.compiler == "Visual Studio" and Version(self.settings.compiler.version) < "19.1":
raise ConanInvalidConfiguration("Need MSVC >= 19.1")
Copy link
Contributor

Choose a reason for hiding this comment

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

I think you're too restrictive. Visual Studio 2017 is version 15.
(see the generator section of cmake --help)

Copy link
Contributor Author

@Manu343726 Manu343726 Apr 25, 2020

Choose a reason for hiding this comment

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

Nope, see the previous build error:

CMake Error at cmake/modules/CheckCompilerVersion.cmake:38 (message):
  Host Visual Studio version must be at least 19.1, your version is
  19.0.24215.1.
Call Stack (most recent call first):
  cmake/modules/CheckCompilerVersion.cmake:51 (check_compiler_version)
  cmake/config-ix.cmake:13 (include)
  CMakeLists.txt:623 (include)

Copy link
Contributor

Choose a reason for hiding this comment

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

19.0.24215.1 is the version of the C compiler, not the version of visual studio.

Look at personal your conan settings file: $HOME/.conan/settings.yml.
There exists no Visual Studio compiler whose version >= 19.1.
Or check https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#2019.
Visual Studio 2019 => version 16.

Copy link
Contributor

Choose a reason for hiding this comment

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

https://github.com/llvm/llvm-project/blob/master/llvm/cmake/modules/CheckCompilerVersion.cmake#L53-L64

So host Visual Studio version 16.4 and lower is known to miscompile part of LLVM.

  • That means only up-to-date versions of visual studio 2019 can build llvm.
  • This also means that the test in configure must compare against the major.minor version of MSVC (16.4) instead of only major (16).

@Manu343726
Copy link
Contributor Author

[HOOK - conan-center.py] post_package(): ERROR: [CMAKE-MODULES-CONFIG-FILES (KB-H016)] The conan-center repository doesn't allow the packages to contain CMake find modules or config files. The packages have to be located using generators and the declared cpp_infoinformation (https://github.com/conan-io/conan-center-index/wiki/Error-Knowledge-Base#KB-H016)

Hehe, conan-center-index policies do not allow usage of root llvm project with their documented CMake modules (Which is what you find in 99% of tutorials). So one more +1 to my previous comment :P

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@blockspacer
Copy link

blockspacer commented May 14, 2021

@Manu343726
Note that current recipe lacks sanitizer options, see "LLVM_USE_SANITIZER" and "COMPILER_RT_BUILD_SANITIZERS" as example from https://github.com/blockspacer/conan_llvm_9/blob/master/conanfile.py

@conan-center-bot

This comment has been minimized.

@tcanabrava
Copy link
Contributor

Anything that I can do to help this pass, as I would like very much to use libclang on windows / mac?

@ghost
Copy link

ghost commented Aug 1, 2021

I detected other pull requests that are modifying llvm/all recipe:

This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there.

@ghost ghost mentioned this pull request Oct 8, 2021
@SSE4 SSE4 closed this Nov 8, 2021
@SSE4 SSE4 reopened this Nov 8, 2021
@conan-center-bot

This comment has been minimized.

recipes/llvm/all/conanfile.py Outdated Show resolved Hide resolved
SSE4 and others added 3 commits November 8, 2021 06:01
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@ghost ghost mentioned this pull request Jan 25, 2022
4 tasks
@conan-center-bot

This comment has been minimized.

@ghost ghost mentioned this pull request Mar 27, 2022
@conan-center-bot
Copy link
Collaborator

Failure in build 2 (258c6fb677296994672767ebd7f9119e3753950b):

An unexpected error happened and has been reported. Help is on its way! 🏇

@ghost ghost mentioned this pull request May 10, 2023
3 tasks
@jcar87
Copy link
Contributor

jcar87 commented Apr 30, 2024

We are currently not prioritising packages that add toolchains (rather than libraries or pure executables), as we are prioritising other issues in our backlog.

LLVM itself has a myriad of components, and I suspect different users would have different needs. We are opening this issue to track this: #23834 - actual uses cases with examples will help the team gain better insights at how a potential llvm recipe may be used, whether or not it is worth packaging different LLVM components in separate recipes, and so on. Any information of this would be appreciated in that issue so that we can move forward, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Waiting on tools or services belonging to the infra Unexpected Error
Projects
None yet
Development

Successfully merging this pull request may close these issues.