-
Notifications
You must be signed in to change notification settings - Fork 946
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
Add support for the Ninja CMake generator #8
Comments
I doubt it would help much with #7 tbh :) |
Hm, build seems to be able to saturate 16 threads (make -j16), don't think there is too much to gain there. As far as small rebuilds are concerned, I don't find them to be that terrible, just touched a few files in make -j16 4.70s user 1.33s system 149% cpu 4.026 total |
Reasons: 1. The build rules for Linux are now more similar to those for Windows. Indeed, on Windows, all tools were built. 2. The use of "$(MAKE)" was incompatible with the Ninja CMake generator (Ninja uses `ninja`, not `make`). This brings us closer towards support the Ninja generator in RetDec (avast/retdec#8)
I tried to tackle this as I wanted to get more familiar with the Ninja build system. Some of our repositories are already buildable with Ninja, but there is a general problem with the way we link libraries built via external projects. For each external project, we create a target that we can later use in
From what I have found, I believe that we will need to specify all the libraries in the |
Thanks for looking into it. =) I ran into the same library linking issues, but I thought it was my fault. (I did a "fix" like avast/llvm@294bfb1 too, but ended up breaking the normal build.) Is |
No, |
Should be working on Linux now. I changed Linux Debug configuration in TeamCity to use Ninja and test this. I'm not sure if Ninja can be used with MSVC. I tried, but was unable to force Ninja on Windows to use MSVC compiler. |
Using Ninja would significantly speed up the process of small rebuilds, and make parallelism work easily out of the box. This would help with #2 and #7.
Tried to do this myself, but wasn't able to figure out some of the CMakeLists.txt dependencies. Usually once I/we figure out what the build dependency issues are, it's as simple as:
The text was updated successfully, but these errors were encountered: