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
[WIP] Add CMake buildsystem for rutil, resip, dum, reflow, reTurn #107
Conversation
For the record, my CLion flags were:
|
9be212d
to
f5c69cb
Compare
This will have a big impact on packaging for Debian and Fedora. It would be really important to test that before merging this change. In particular:
|
a565f1d
to
0ac6a78
Compare
The work started with patches by Francis Joanis and Byron Campen.
0ac6a78
to
9eca921
Compare
what progress with this? |
I have great expectations for this, how is the progress? |
Daniel Pocock posted a concern on March 7, 2018. I'm guessing no one has had cycles to progress this since then. Feel free to use the branch code if it helps your project. |
I think I have a 2019 branch at work. |
Can this PR be merged into master? |
In the short term, there is a higher priority activity, resolving the Fedora RPM packaging. There are some very minor issues I need to fix, I've been in discussions about that. The CMake change might be a temporary setback for the Fedora RPM packaging, from my perspective, it is better to do the final Fedora fixes, leave that version running in the Fedora world and then spend some time with CMake. I have more urgent deadlines in January but I plan to look at the Fedora RPM issue in February. I would only be able to look at the CMake change after that. In principle, I think it is important to consider CMake compared to autotools, especially for Windows support. On the other hand, I know there are sometimes glitches with CMake builds, the tests sometimes fail on the wrong error, for example, it gives red herrings with errors about pthreads but in fact the real error is unrelated to pthreads. I had experiences like this working with Blender builds. Once everybody knows about these glitches it is OK but people can be distracted or surprised when something like this happens. |
Here are some further observations on the procedure for completing a change of build system from autotools to CMake These steps are based on the idea that we make the autotools build complete so we can compare the autotools and CMake build results side-by-side Build output
Tarball contents (
|
The tests in my comment above could be automated with a script. I'll write the script for that. |
The more recent CMake-based Android tools provide a way to build dependencies like reSIProcate. Apparently Google includes CMake versions 3.6 and 3.10 in the SDK / NDK and projects that build with one of these versions will be relatively easy to build with the NDK. I suggest putting a comment about this in the top-level CMakeLists.txt so people are less likely to increase the CMake version in the short term. |
I've started looking at this more closely Byron started a branch for cmake in the main repository, there are some commits in 2014. It looks like that branch was not forked for this new work. @gjasny did you start with a copy of the files from that branch or did you start fresh? I'm happy to spend time on a more detailed comparison of the branches to see if we need to cherry-pick anything from the 2014 effort into your branch. Here is the 2014 branch @gjasny I saw you also have two other branches with earlier attempts at this. It looks like you did not merge those into the branch in this pull request, is there anything in either of those branches that we may need to cherry-pick? There is one branch in the main repository, it is newer than the branch in the pull request. Once again, it isn't a merge from the earlier pull requests but it looks like you may have copied files into the branch as the other contributors are mentioned in commit 838eec2 |
I've done the following:
Some of the libraries build, I'll make a list of the pending things to fix before this can be merged back into master |
I've created a script to run both an Autotools build and a CMake build and compare the output The script does a range of checks on each build, for example, checking for source files that are never compiled, building in the tree, running When we get to the point where the differences between the two builds are negligible we can drop the Autotools build and migrate completely to CMake on the master branch. |
Some of the pending tasks to complete CMake support:
|
Libraries in contrib/* @gjasny do you need CMake to build any of those libraries for Xcode or you have another way to obtain the libraries? @sgodin do we want to use CMake for libraries in For Linux users we would try to use libraries from the package repositories whenever possible For Android we would try to build libraries in the ndkports repository here, we could copy them to there or we could get them as submodules: |
@gjasny thanks for starting this work, it has now been merged to master |
Hello,
I revived and modernized the experimental CMake branch and made is compile on my Mac. More platforms will follow if time permits and there is actual interest.