conan-io / wishlist

This repo is to propose libraries, frameworks, and code in general that users would like to have in conan
MIT License
49 stars 5 forks source link

llvm #197

Closed arthaud closed 4 years ago

arthaud commented 5 years ago

I would really appreciate a package for llvm and clang (especially the latest version, 7.0).

I found these:

I have no idea what are their status. It would be very nice to have one in conan-center, bincrafter or conan-community.

Croydon commented 5 years ago

See also https://github.com/bincrafters/community/issues/292

feliwir commented 5 years ago

Any news on this?

Manu343726 commented 4 years ago

Some progress report:

I've started testing the packages on windows and they seem to work fine with vs2019 toolchain. Some issues I've found:

  1. Latest LLVM releases have changed the distribution of sources, switching to GitHub for releases and prebuilt binaries and packaged sources.

  2. Latest LLVM releases use .xz packages instead of .gz (to optimize downloads I guess).

  1. There's a bug in the compiler-rt 6.0.1 main CMakeLists.txt that does not include an LLVM module before using an specific llvm_xxxx() cmake function. It only happens in a MSVC only branch of the config.

  2. LLVM has changed its layout to be fully monolithic, instead of having each component in its own repo. It seems non-monolithic (out of source) are supported to as a means of backwards compatibility, so in theory this should not change anything conan-packaging-wise since I'm using the component source distribution packages instead of the git repos. I have not tested it though.

Regarding 1., if you check the releases history of LLVM this is not the first time they change the download scheme of their packaged sources, that's one of the reasons why I maintain copies of these sources in my own bintray repository. Anyway, I would like to provide some kind of config file listing the download URLs for each component and version, so handling this issues does not involve changing the recipe. This also should solve 2. since I suppose Conan tools.get() handles .xz files just fine. It's also a good opportunity to add checksums to those files.

About 3. I didn't have time to check what's the minimal compiler-rt version that solves the issue (if there's any), anyway I would love not to drop 6.0.1 support. So patching this through the recipe (I already patch the cmake file to inject Conan config) should be fine.

I need more time to test 4.. Note this must affect Linux builds too.

Anyway my impression is that the current packaging approach should work fine with MSVC. Since it's been working fine on Linux for almost two years, this is a great step forward to finally include this in conan-center.

If anybody wants to help with the effort (the No1 reason why this is getting so much time is because I do it in my free time only, with months not having time to touch it), I would really appreciate help with any of the following:

Packages are currently published in my bintray account. The recipes are being developed in gitlab mainly for CI reasons (it allows me to use my machines as runners, which are considerably faster and more reliable than the free gitlab servers) but if you consider development would be easier here in GitHub I will consider switching to GitHub and keeping only the CI there.

To understand how the packages work (recipes are a bit complex) see the following posts:

https://manu343726.github.io/2018-11-17-conan-common-recipes/ https://manu343726.github.io/2019-03-11-here-be-frogs-battling-dragons/

And of course ask me anything.

Thank you.

Manu343726 commented 4 years ago

BTW maybe I should move this to conan-index?

Croydon commented 4 years ago

Hi @Manu343726, nice to hear from you again!

You didn't respond in https://github.com/bincrafters/community/issues/292 anymore at some point, so I didn't expected to hear from you again

The main problem in the issue at Bincrafters was that you didn't add any LICENSE file at the root folder of your repository, making it a legal minefield. In the Conan Center Index and at Bincrafters we license everything as MIT. If you agree to put your work also under the conditions of the MIT license, please add a MIT LICENSE file to the root directory of this repository: https://gitlab.com/Manu343726/clang-conan-packages

If you do this we could figure out how to include your recipe at Bincrafters. Conan Center Index (CCI) isn't ready yet for packages like LLVM, modul Boost or X11 because they have too many single recipes, which is a layout that CCI doesn't support well yet

Manu343726 commented 4 years ago

@Croydon done https://gitlab.com/Manu343726/clang-conan-packages/commit/4739985e95d4b0cc3f682ad0c7f5229697584136

Thanks for pointing it out, I always release my work under MIT but for some reason I forgot to add it.

Manu343726 commented 4 years ago

WISHLIST IS DEPRECATED, WE ARE MIGRATING TO CONAN-CENTER-INDEX!!!

Visit https://github.com/conan-io/conan-center-index/issues/683

Croydon commented 4 years ago

The wishlist can still be used for already existing issues

danimtb commented 4 years ago

As we have an issue for this in the index repo, I am closing this one. Please continue the conversation there!