-
Notifications
You must be signed in to change notification settings - Fork 157
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
Add CMake build script #6
base: master
Are you sure you want to change the base?
Conversation
I tried it with Visual Studio 2015 and worked nicely - I cannot really test anything though for the time being ;) Two question:
Thanks! |
Thanks.
CMake only searches
It is used in |
Typically the versions are distinguished with a suffixed letter: double: no suffix, single: f, double-long: l. So if cmake looks for the base-name, it will find double. I built with single, because I need it in another project, and the build succeeded. I wonder now if speex can work with different versions, or if it won't work (background is that the vcpkg for fftw only allows a single version and doesn't output different names, as opposed to established package mangers like homebrew. I am considering trying to change that). Maybe somebody knows if a specific precision version is needed? |
FFTW is optional, without it speex uses internal FFT routines with ASM optimizations. For Win32 there is SSE optimized code, configured and enabled automatically if supported. I don't think it is much slower then FFTW code. |
96d5c95
to
4415a69
Compare
Description =========== This patch adds support of CMake meta build system, so you can generate Unix makefiles, VS 6.0-2017 projects and many more. Features ======== * Win32 and Linux tested * Travis CI test added * Generates working Visual Studio 6.0-2017 solutions * Generates working Unix Makefile * Supported options (<option> - <default value>): * `ENABLE_FLOATING_POINT` - on * `ENABLE_FIXED_POINT` - off * `ENABLE_FIXED_POINT_DEBUG` - off * `USE_GPL_FFTW3` - off * `DISABLE_FLOAT_API` - off * `DISABLE_VBR` - off * `ENABLE_VORBIS_PSY` - off * `ENABLE_SSE` - on if supported * `ENABLE_ARM4_ASM` - off * `ENABLE_ARM5E_ASM` - off * `ENABLE_BLACKFIN_ASM` - off * `ENABLE_TI_C55X` - off * `USE_SPEEXDSP` - on if library found * `DISABLE_BINARIES` - off * `ENABLE_PACKAGE_CONFIG` - on, [CMake specific](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#package-configuration-file) * Configured conditionals (`config.h`): * `WORDS_BIGENDIAN` * `FLOATING_POINT` * `FIXED_POINT` * `FIXED_POINT_DEBUG` * `DISABLE_FLOAT_API` * `_USE_SSE` * `ARM4_ASM` * `ARM5E_ASM` * `BFIN_ASM` * `TI_C55X` * `DISABLE_VBR` * `USE_SPEEXDSP` * `VORBIS_PSYCHO` * `HAVE_GETOPT_H` * `HAVE_GETOPT_LONG` * `VAR_ARRAYS` * `USE_ALLOCA` * `HAVE_ALLOCA_H` * `USE_SMALLFT` * `USE_KISS_FFT` * `USE_GPL_FFTW3` * `EXPORT` * Installation supported * Package config mode supported How to use ========== Required tools and libraries: * CMake >= 3.1 * Ogg, SpeexDSP packages (headers and import libraries), recommended * FFTW3 package, optional Type commands: ``` mkdir cmake-build cd cmake-build cmake .. cmake . --build ``` or use CMake GUI.
Failing with:
See the Travis links. |
Any updates on this? |
|
||
project(speex VERSION 1.2.0 LANGUAGES C) | ||
|
||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") | |
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/) |
Otherwise some of the includes below may not be found (we had this issue with cross-compiling for emscripten)
Description
This patch adds support of CMake meta build system, so you can generate
Unix makefiles, VS 6.0-2017 projects and many more.
Features
ENABLE_FLOATING_POINT
- onENABLE_FIXED_POINT
- offENABLE_FIXED_POINT_DEBUG
- offUSE_GPL_FFTW3
- offDISABLE_FLOAT_API
- offDISABLE_VBR
- offENABLE_VORBIS_PSY
- offENABLE_SSE
- on if supportedENABLE_ARM4_ASM
- offENABLE_ARM5E_ASM
- offENABLE_BLACKFIN_ASM
- offENABLE_TI_C55X
- offUSE_SPEEXDSP
- on if library foundDISABLE_BINARIES
- offENABLE_PACKAGE_CONFIG
- on, CMake specificconfig.h
):WORDS_BIGENDIAN
FLOATING_POINT
FIXED_POINT
FIXED_POINT_DEBUG
DISABLE_FLOAT_API
_USE_SSE
ARM4_ASM
ARM5E_ASM
BFIN_ASM
TI_C55X
DISABLE_VBR
USE_SPEEXDSP
VORBIS_PSYCHO
HAVE_GETOPT_H
HAVE_GETOPT_LONG
VAR_ARRAYS
USE_ALLOCA
HAVE_ALLOCA_H
USE_SMALLFT
USE_KISS_FFT
USE_GPL_FFTW3
EXPORT
How to use
Required tools and libraries:
Type commands:
or use CMake GUI.