icecream
cmake-init-conan-example
Our great sponsors
icecream | cmake-init-conan-example | |
---|---|---|
16 | 12 | |
1,552 | 15 | |
1.5% | - | |
0.0 | 5.7 | |
5 months ago | 11 days ago | |
C++ | CMake | |
GNU General Public License v3.0 only | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
icecream
- Icecream: Distributed compiler with a central scheduler to share build load
-
Distcc: A fast, free distributed C/C++ compiler
Related
https://github.com/icecc/icecream - another option that does what distcc does, but aimed at a somewhat different use case.
https://ccache.dev/ - a similar idea but provides caching of build outputs instead of distributing builds. You can use it together with distcc to achieve even better performance.
-
Do you use ccache to speed up compilation times
Of course! The github readme provides a lot of info - https://github.com/icecc/icecream
- GitHub - icecc/icecream: Distributed compiler with a central scheduler to share build load
-
Ccache – a fast C/C++ compiler cache
If you like distcc, did you ever give icecc a try?
https://github.com/icecc/icecream
I never had the time to set it up properly, but by the looks of it, it should be even better.
- People who use distributed builds, how do you handle many compilers?
- Fuchsia Workstation
-
Give local devices a way to connect to clients? - openvpn
I would like to have a icecc setup I can vpn into. It seems that with normal configs the clients can talk to the scheduler, but the scheduler cant connect to the clients as it tries to connect to the device running the openvpn server not the one behind it. How could I make my openvpn clients appear almost as physical devices on the network, with unique IP's that local devices can connect to; or if that is unnecessary how could I solve this?
-
ccache 4.6 released
Glad to see a new release on this! I've read worrying news about the state of icecc, and the followup uncertain news on sccache, so I hope at least some part of the tooling is in a good shape.
-
Best way to manage dependencies with c++?
I always wanted to try to use cmake-conan so I could let Conan grab all packages but have a neat cmake script being in charge of what gets built when. Also, this would allow me to easily switch between CMake fetchcontent and Conan packages that may or may not be stashed automatically on a local Artifactory server. Secondly, since now all build requirements are stashed on a server and binary reproducible, you could concider adding icecream and ccache into the mix. (Try running a node one of your buildservers for massive speadups with icecream) This however does require a reproducible build environment (by configure script) which conan again is really good in.
cmake-init-conan-example
-
Conan and cmake library problems
I haven't really used conan but you should not use the cmake generator, you should use the CMakeDeps and CMakeToolchain generators instead. That might solve your problem, after all there is a reason why the cmake generator is being deprecated. Check this for an example: https://github.com/friendlyanon/cmake-init-conan-example
-
If I want to import a library/module from github into my C program where do I git clone it?
Use a package manager. This example shows how to use vcpkg to get json-c. You can do the same using Conan as well.
-
How do I add a configure step to cmake?
You ought to call Conan before configuring. Take a look at this example.
-
Best way to manage dependencies with c++?
Conan and vcpkg are the only options. I use them both, depends on what kinds of dependencies I want to pull. vcpkg is easier to setup custom one-off dependencies with using overlay ports, while Conan is faster at things if your profile fits one that has a pre-built binary in CCI. Both are trivial to integrate with a CMake project, see these examples for Conan and vcpkg.
-
How to build libvpx as a shared library for my project?
More details in this example project.
-
3rd party library delivery
I have an example for Conan integration that I'm planning on revisiting, since it was made when I knew less about Conan. If you are interested in a concrete example, you can check it out later.
-
CMake 3.22.0 available for download - Kitware Blog
Integrating with Conan is already pretty straightforward, you just need a short script to glue things together via the Conan provided CMake utility.
-
Some GithubCI (and not only) help needed
You can check out the CI for this example project. It doesn't yet have caching for Conan setup, but Qt has prebuilt binaries in the CCI anyway, so that's not really that big of a deal.
-
Make your commits prettier with Catify, a C++ project
The CMake scripts could definitely use improvement. Here is an example using Conan that also installs fmt. The shell scripts can also be entirely replaced with CMake presets, also examplified in the earlier link.
-
what can I say, lol
Or Conan + CMake. In fact, I would much prefer to use Conan in a company environment, but vcpkg is top notch for open source. Not to say Conan is bad at that, not even close, but its features are excellent to get companies to move to package managers.
What are some alternatives?
sccache - Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.
gentoo - [MIRROR] Official Gentoo ebuild repository
ccache - ccache – a fast compiler cache
Geany - A fast and lightweight IDE
keppel - Regionally federated multi-tenant container image registry
cache - Cache dependencies and build outputs in GitHub Actions
compiler-benchmark - Benchmarks compilation speeds of different combinations of languages and compilers.
ASP.NET Core - ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
gg - The Stanford Builder
lcd - An LCD module simulator based on HD44780 microcontroller simulation
bazelisk - A user-friendly launcher for Bazel.
Boost-Pretty-Printer - GDB Pretty Printers for Boost