[opus] CMake support for Opus proposal (in addition to Autotools)

Marcus Asteborg xnorpx at outlook.com
Wed Apr 10 23:41:25 UTC 2019


Thanks for the feedback, attached is patch with default buildtype set to release.

Also fixed the issues Mark pointed out especially CUSTOM_MODES was a bug that has been fixed and added custom_demo as a program when this is enabled.

For setting CFLAGS see the following:


Set CFLAGS and CXXFLAGS options using CMake - Stack Overflow<https://stackoverflow.com/questions/10085945/set-cflags-and-cxxflags-options-using-cmake>
If you want a debuggable build, just do a debug configure at the command line. "cmake -DCMAKE_BUILD_TYPE=Debug". The resulting build will have the debug flags on for the given build system.

export CFLAGS=-ggdb
export CXXFLAGS=-ggdb


CMake changes - Make release build default, made CUSTOM_MODE an optio… by xnorpx · Pull Request #117 · xiph/opus<https://github.com/xiph/opus/pull/117>
CMake changes - Make release build default, made CUSTOM_MODE an option with default off and added missing buildflags for Linux and security.

From: Jean-Marc Valin <jmvalin at jmvalin.ca>
Sent: Wednesday, April 10, 2019 14:52
To: Marcus Asteborg; opus at xiph.org
Subject: Re: [opus] CMake support for Opus proposal (in addition to Autotools)


It looks like cmake currently defaults to no optimization, which I think
is a bit unexpected for most users. I don't know how to do that in
cmake, but it would be good to default to a "release" build with
optimizations. Can you have a patch to do that?

Also, is there a way to manually add flags to the compiler (like setting
CFLAGS with autotools)?



On 04/02/2019 07:15 PM, Marcus Asteborg wrote:
> Right that I had completely missed, I have added the files and verified
> that it builds with CMake from the tar on Linux (out of the git repo)
> I am parsing the package_version file from the tarball if it exists so
> it should maintain the version info.
> //Marcus
> ------------------------------------------------------------------------
> *From:* Jean-Marc Valin <jmvalin at jmvalin.ca>
> *Sent:* Tuesday, April 2, 2019 11:38
> *To:* Marcus Asteborg; opus at xiph.org
> *Subject:* Re: [opus] CMake support for Opus proposal (in addition to
> Autotools)
> Thanks, it applies now. I think you'd also want to add some (all?) of
> these files to EXTRA_DIST in Makefile.am, otherwise your cmake files
> won't be included in release tarballs, which are generate using "make
> dist". To test, you should try running run "make dist" to generate a
> tarball yourself. From there, you try building the contents with your
> cmake files and see if it works.
> Cheers,
>         Jean-Marc
> On 04/02/2019 11:26 AM, Marcus Asteborg wrote:
>> Hi,
>> Thanks for the quick feedback I have changed the name to avoid conflict.
>> Attached is the updated patch.
>> //Marcus
>> ------------------------------------------------------------------------
>> *From:* Jean-Marc Valin <jmvalin at jmvalin.ca>
>> *Sent:* Tuesday, April 2, 2019 00:07
>> *To:* Marcus Asteborg; opus at xiph.org
>> *Subject:* Re: [opus] CMake support for Opus proposal (in addition to
>> Autotools)
>> Hi Marcus,
>> There seems to be a conflict between the autotools-created config.h.in
>> and the same file added by your patch. Any way you can use use a
>> different name?
>> Cheers,
>>         Jean-Marc
>> On 04/02/2019 01:39 AM, Marcus Asteborg wrote:
>>> Hi,
>>> Here is a proposal for adding CMake in addition of Autotools.
>>> See the attached patch for changes or the pull request here:
>>> https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxiph%2Fopus%2Fpull%2F100&data=02%7C01%7C%7Cfbf5c4691fe9442ae77108d6bdfedbfe%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636905299639197576&sdata=sV5Oy0hrlLtp558MUVMMixMG5IJ7oN91JndXbqcSX8M%3D&reserved=0
>>> <https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxiph%2Fopus%2Fpull%2F100&data=02%7C01%7C%7Cfbf5c4691fe9442ae77108d6bdfedbfe%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636905299639197576&sdata=sV5Oy0hrlLtp558MUVMMixMG5IJ7oN91JndXbqcSX8M%3D&reserved=0>
>>> The CMake scripts are parsing the filelist from Autotools, so only one
>>> file list needs to be maintained.
>>> With this change the checked in Visual Studio solution can be removed
>>> and no longer need to be maintained and updated when Visual Studio is
>>> updated.
>>> For related discussion about CMake support see
>>> https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxiph%2Fopus%2Fpull%2F37&data=02%7C01%7C%7Cfbf5c4691fe9442ae77108d6bdfedbfe%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636905299639197576&sdata=LB2DZZTnqoy8WmhrVX%2F05ZhxJe2MfayOrega2jrHV6c%3D&reserved=0
>> <https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxiph%2Fopus%2Fpull%2F37&data=02%7C01%7C%7Cfbf5c4691fe9442ae77108d6bdfedbfe%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636905299639207584&sdata=A2KqC8trMHYgr9hRolbQiQHrma6sTx4RhtJb7eA6Eu8%3D&reserved=0>
>>> For any concerns, comments or questions regarding the change please
>>> comment in the pull request, reply to this thread or send me an e-mail.
>>> Related Issue:
>>> https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxiph%2Fopus%2Fissues%2F85&data=02%7C01%7C%7Cfbf5c4691fe9442ae77108d6bdfedbfe%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636905299639207584&sdata=tl5TJEQTx1LaRrVZ0HhUPhKyZcPIQdSj2p0uYgMUjEw%3D&reserved=0
>>> <https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxiph%2Fopus%2Fissues%2F85&data=02%7C01%7C%7Cfbf5c4691fe9442ae77108d6bdfedbfe%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636905299639207584&sdata=tl5TJEQTx1LaRrVZ0HhUPhKyZcPIQdSj2p0uYgMUjEw%3D&reserved=0>
>>> //Marcus
>>> _______________________________________________
>>> opus mailing list
>>> opus at xiph.org
>>> https://eur04.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.xiph.org%2Fmailman%2Flistinfo%2Fopus&data=02%7C01%7C%7Cfbf5c4691fe9442ae77108d6bdfedbfe%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636905299639207584&sdata=w3BgyhzEKP7WhsnNiaVE02mJZ5JEuj6SKe6rU6EG3y0%3D&reserved=0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/opus/attachments/20190410/d46e0757/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-CMake-changes-Make-release-build-default-made-CUSTOM.patch
Type: application/octet-stream
Size: 6977 bytes
Desc: 0001-CMake-changes-Make-release-build-default-made-CUSTOM.patch
URL: <http://lists.xiph.org/pipermail/opus/attachments/20190410/d46e0757/attachment-0001.obj>

More information about the opus mailing list