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 support #9

Closed
MathiasMagnus opened this issue Jun 14, 2015 · 4 comments
Closed

CMake support #9

MathiasMagnus opened this issue Jun 14, 2015 · 4 comments

Comments

@MathiasMagnus
Copy link

Dear All,

since I found no online IRC client to contact the devs of multiple projects, this is my entry point.

I am a user of SFML, a cross-platform GUI project that has an audio module that heavily depends on Xiph.org projects. Since I am an HPC GPGPU developer living on Windows but targeting linux clusters, CMake is the bread and butter for my life, as is for most cross-platform developers. If you are not familiar with it, consider taking a look. I tend to use always the latest unreleased versions of MSVC I need to build most of my own dependencies from source.

SFML has nice CMake support, but it's dependencies do not. While Xiph.org projects do provide some outdated Visual Studio solution files, moving to CMake has a meta-makefile would make life easier on your part too. Creating installer packages with (CPack) and creating unit tests (CTest) or getting distributed build automation (CDash) comes at a few lines of scripting only. CMake is not easily mastered, but pays off in the long run.

I would be willing to conitrubte to CMakeifying libOGG and libFLAC, and based on it other Xiph.org projects could adopt the build system easily. I have been using CMake for a while now for my own projects, and feel that I could put together PROPER CMake support. If you could give me a jump-start as to what platform-specific things are done by the current machinery, I could get started with a prototype, if you see fit.

I am a heavily overburdened person, so the speed at which I could work on this is not much, but I would like to contribute to the greater good.

@stopiccot
Copy link
Contributor

Luckily for you initial CMake support was recently added to ogg. So it would be great if you could review it and provide any comments.

@MathiasMagnus
Copy link
Author

I have taken a look, and I do have some comments, though mostly it looks neat. I did want to format my comments into a consumable format, and there are a few things I need to clarify for myself too. More specifically, I did want to cook up package support for all dependencies of SFML as well as SFML itself:

http://www.cmake.org/cmake/help/v3.2/manual/cmake-packages.7.html#creating-packages

On linux it would vastly improve developer and end-user experience. find_package(ogg) would ALWAYS find it without user interaction, even in the most exotic custom install locations. On Windows, CMake is lacking the capability to create registry entries from scripts, but that's just something Windows users have to live with for the time being. Entries can still be made manually.

Once my exams are over, and I finished writing up an article (1-2 weeks), I'll get back to submitting FindPackage support. Should you have the time to read the tutorial, feel free to educate. It is quite long, but the essence is only a few lines.

Bigger picture: CMake devs are investigating how to auto-generate FindPackage scripts, but I don't see that happening any time soon. For the time being, the helper scripts do make CMake script maintainer's life easier.

@madebr
Copy link

madebr commented Mar 13, 2017

The most recent release 1.3.2 does not include CMake support.
It is dated from May 27th, 2014.
When can a new release be expected?

evpobr added a commit to evpobr/ogg that referenced this issue Aug 1, 2018
Just cleanup.

Output path is relative to build directory anyway according
to documentation.

Related to xiph#9.
@evpobr evpobr mentioned this issue Dec 17, 2018
erikd pushed a commit that referenced this issue Jul 20, 2019
Just cleanup.

Output path is relative to build directory anyway according
to documentation.

Related to #9.
@rillian
Copy link
Contributor

rillian commented Aug 31, 2019

The 1.3.4 release, out today, supports CMake. Please give it a try and report any issues!

@rillian rillian closed this as completed Aug 31, 2019
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

No branches or pull requests

4 participants