Skip to content

Add CMake build system #5

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

Open
evpobr opened this issue May 17, 2017 · 8 comments
Open

Add CMake build system #5

evpobr opened this issue May 17, 2017 · 8 comments

Comments

@evpobr
Copy link

evpobr commented May 17, 2017

Visual Studio projects are obsolete, VS2008 project is broken.

I have working CMakeLists.txt project for speex, with almost every Autotools option implemented. That means you can generate Unix makefiles, VS 6.0-2017 projects and many more.

If you are interested, i will make pull request or patch.

@erikd
Copy link
Member

erikd commented May 17, 2017

Yes, a PR would be appropriate.

@thewh1teagle
Copy link

Yes, a PR would be appropriate.

I'm really looking for CMake as well.
Can we work here and create PR in this mirror instead of in Gitlab?

@Please-just-dont
Copy link

Yes, me too. I'm looking for CMake.

@petterreinholdtsen
Copy link

Is the idea behind adding cmake to remove an obsolete windows build system? I asked in https://gitlab.xiph.org/xiph/theora/-/issues/2316 and xiph/theora#14 for a rationale, but have not gotten any clear answer, so the patch is still pending. If cmake is a the best build system to provide for Windows, perhaps all the win32/ directories should be replaced with cmake build rules?

@Please-just-dont
Copy link

@petterreinholdtsen Oh, wow, I thought this project was well and truly dead. I'm not sure about this because I'm not familiar with the library, and I don't want to spend ages figuring out how it works. Right now I'm figuring out how to just manually place all the types in speex_config_types.h.in because all I did was add the source files to my project, which worked on Windows, but now on Linux doesn't compile because speex_config_types.h doesn't exist. I'm just going define:

#ifndef __SPEEX_TYPES_H__
#define __SPEEX_TYPES_H__

@INCLUDE_STDINT@

typedef @SIZE16@ spx_int16_t;
typedef @USIZE16@ spx_uint16_t;
typedef @SIZE32@ spx_int32_t;
typedef @USIZE32@ spx_uint32_t;

#endif

Myself and include the source files in my project. It saves having to do ./configure or using Mesa or Autotools or any of the many different tools. Having a CMake build system would be good, but I think I can hack my way around it by just changing a couple of things.

@Please-just-dont
Copy link

@petterreinholdtsen Isn't it the case that usually a CMakeLists.txt is provided that the user adds, and any platform specific differences are handled within the CMakeLists.txt? I don't know about C (and I know this is a C library), but in C++ CMake is pretty much the defacto standard, for better or worse.

@petterreinholdtsen
Copy link

petterreinholdtsen commented Apr 13, 2025 via email

@Please-just-dont
Copy link

@petterreinholdtsen "Every extra build system add extra work on the maintainer when she is
modifying the source or adding build options." ... Exactly. Best to have just ONE build system if you'll have a build system at all.

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

5 participants