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

Cmake #414

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft

Cmake #414

wants to merge 2 commits into from

Conversation

simonschmeisser
Copy link

@simonschmeisser simonschmeisser commented May 1, 2021

This is an attempt to build fernschreiber all in one, without manually checking out tdlib and copying the lib around

I needed to update rlottie as it has some issues with being included as a CMake subfolder. This was fixed in a newer commit. Another issue with the include path not being exported is still open, see the PR here Samsung/rlottie#476

@Wunderfitz
Copy link
Owner

Thanks for the contribution! However, I have to admit that I have almost zero knowledge about CMake. As I'd like to focus on development and not on maintaining the build files, I'm not sure if I could maintain that... I also have no idea how it fits together smoothly with the existing build files - especially if things are updated or new files come in. I assume double maintenance would be required.

I'd probably be willing to include TDLib as a submodule (though it's updated rarely and each time it needs to be built I'd need to give the build environment more memory), but I'd rather have it my normal toolchain than in a new one.

Consequently, I'd have some questions:

  • Would you be able to maintain the CMake files permanently?
  • What's the benefit of CMake that we can't have with the existing toolchain? If it's only to get TDLib built with the app, I have to admit that I don't see a huge benefit. The files are updated maybe once or twice a year and can be included with other means.
  • Could things be automated that the CMake files are updated automatically when I change the project file(s) in Qt Creator?
  • Did you test if the yaml file is changed in Qt Creator, are your changes still there afterwards or are they overwritten?

And finally: In case we agree to merge the changes, I assume the README needs some update to mention the build options with CMake... ;)

@simonschmeisser
Copy link
Author

On the contrary I have no experience with qmake.

My main motivation was that I felt intimidated by the build instructions in the readme and thought it should be possible with just one command. Now it's also easier to add github actions to build this automatically on each commit/merge request.
QtCreator unfortunately cannot add new files automatically to the CMakeLists.txt, that needs to be done manually. But there could be a red cross right next to the commit telling you that you missed adding some files ...

I just bought a XA2 because pine phone's camera just didn't cut it and will be around for some while!

Which yaml file?

I will open further PRs for features based on this but can rebase them before merging so this can also sit around for some while, no worries

@Wunderfitz
Copy link
Owner

OK, in this case I'd like to keep it open until the most relevant synchronization issues are done. Feel free to keep on adding stuff here. I'll also give it a try when I have more time.

About the YAML, I'm referring to this one: https://github.com/Wunderfitz/harbour-fernschreiber/blob/master/rpm/harbour-fernschreiber.yaml Please see https://github.com/mer-tools/spectacle for details about the underlying toolset.

@simonschmeisser
Copy link
Author

Sure, no need to rush anything and thanks for pointing me to spectacle.

@Wunderfitz
Copy link
Owner

Converting this to a draft PR for the time being... Automation with GitHub Actions seems to work fine for now, so there is even less need to move to CMake...

@Wunderfitz Wunderfitz marked this pull request as draft August 25, 2021 20:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants