Commit Graph

88 Commits

Author SHA1 Message Date
evpobr
61c416219c Add ENABLE_COMPATIBLE_LIBSNDFILE_NAME option 2018-08-25 12:16:36 +10:00
evpobr
6710ff3fc6 CMake: updates & fixes 2018-08-25 12:16:36 +10:00
evpobr
1eb2a00199 CMake: fix BUILD_TESTING option
Closes: #376
2018-03-18 09:51:19 +11:00
evpobr
e62e5cd9f2 CMake: fix linking winmm.lib under MXE platform
Closes: #377
2018-03-18 09:50:57 +11:00
evpobr
a34dc27739
CMake: Add test case for NMS_ADPCM in WAV file
Related to #361.
2018-03-10 15:46:51 +05:00
Arthur Taylor
64e5a3f182 Add NMS ADPCM codec implementation and support
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2018-02-03 19:44:33 +11:00
David Seifert
e6c42ff027 Make build system completely non-recursive 2017-09-26 19:35:56 +10:00
evpobr
3d8399dfde Fix broken ABI
Unfortunately ABI was broken when symbols files were removed
in favour of new visibility control of exported functions.

Visibility control with -fvisibility works fine, but symbol
scripts had another feature - versioned symbols. And we lost it.

Since we can not make our symbols to be versioned  with the new
approach, it's decided to return everything back.

* CMake: Restore symbol files generation
* CMake: Python is required to build shared libraries
* Autotools: Restore symbol files generation

Closes: https://github.com/erikd/libsndfile/issues/268
2017-05-26 06:16:42 +10:00
evpobr
6830c42189 CMake: Win32 fixes
* Fix linking with shared library (DEF file was not used)
* Version script was not used
* Use the same version script for Autotools and CMake
* Give proper name to shared library import lib
* Public headers were not installed on static library only build

Closes: https://github.com/erikd/libsndfile/issues/249
2017-04-29 15:33:35 +10:00
evpobr
f614de1fbe CMake: Fix missing libsndfile-1.def
Closes: https://github.com/erikd/libsndfile/issues/249
2017-04-29 09:14:43 +10:00
evpobr
5c6129fce6 Autotools: Implement symbols visibility control
* Use symbol file under Win32 with MinGW only
* Use unified visibility control for other platforms
* Add recommended win32-dll option to LT_INIT macro

Closes: https://github.com/erikd/libsndfile/issues/213
2017-04-28 18:01:09 +10:00
evpobr
54dc330215 CMake: fix importing with add_subdirectory command 2017-04-26 16:02:11 +10:00
evpobr
9ebb96ca72 More CMake polishing
* Add win32_ordinal_test to test suite
* Add examples targets
* Add sndfile-regtest target
* Improve compatibility with MSVC
* Check direct.h header
* Add define to enable math constants
* Don't use CTest if tests are disabled
* Make packaging configurable
* Suppress annoying MSVC warnings
* Add ENABLE_BOW_DOCS option
* Add ENABLE_STATIC_RUNTIME option
* Add package config support
* Tune large files support messages
* Don't build tests when static libs disabled
* Use VS solution folders feature
* Fix option value set twice
* Rename sndfile target to sndfile-shared
* Mark M_LIBRARY variable as advanced
* Fix config packages installation directory
* Rename ENABLE_PACKAGING option for clarity
* CPack fixes
* Add CMake modules to Makefile.am
* Update documentation

Closes: https://github.com/erikd/libsndfile/issues/71
2017-04-25 19:21:40 +10:00
Anonymous Maarten
560cefe607 CMake: Use CMakeAutoGen as CMake AutoGen implementation
* By removing the GNU AutoGen dependency of the cmake,
  libsndfile can be built using only cmake and a compiler toolchain
* Fix non-matching FOR and ENDFOR of template src/test_endswap.tpl
* Add pcm_test to test suite

Related: https://github.com/erikd/libsndfile/issues/71

Closes: https://github.com/erikd/libsndfile/issues/154
2017-04-25 19:21:40 +10:00
Anonymous Maarten
d7efb3bfc6 CMake: Allow parallel out-of-tree build
This allows parallel builds of different LibSndFile configurations

- results of configure_file and AutoGen are saved in CMAKE_BINARY_DIR
- the directory ${CMAKE_BINARY_DIR}/src is make a public include directory
- remove generated files in source tree prior to generation + fix install

Related: https://github.com/erikd/libsndfile/issues/71
2017-04-25 19:21:40 +10:00
evpobr
b1194240ea CMake: Add BUILD_PROGRAMS option
ON by default, set to OFF to disable building of programs.

Related: Related: https://github.com/erikd/libsndfile/issues/71
2017-04-10 06:22:53 +10:00
evpobr
bbbb48f076 CMake: Fix programs installation
Related: https://github.com/erikd/libsndfile/issues/71
Closes: https://github.com/erikd/libsndfile/issues/219
2017-04-10 06:22:53 +10:00
evpobr
5c286b274d CMake: Simplify sndfile_play configuring
* Remove sndfile_play_beos target, use single sndfile_play under all platforms
* Remove HAIKU variable check, found no information found about it.

Related: https://github.com/erikd/libsndfile/issues/71
2017-04-10 06:22:53 +10:00
evpobr
3fad82658b CMake: Fix docs installation path
Related: https://github.com/erikd/libsndfile/issues/71
Closes: https://github.com/erikd/libsndfile/issues/220
2017-04-09 20:15:13 +10:00
evpobr
5d267da941 CMake: bump version up to 1.0.29pre1
Issue: https://github.com/erikd/libsndfile/issues/71
2017-04-09 16:26:10 +10:00
Erik de Castro Lopo
1c0ea87cc3 Rework CMake build system
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
2017-04-05 19:38:36 +10:00
Erik de Castro Lopo
7b6d2f85b0 CMake: More fixes 2016-07-03 14:14:17 +10:00
Erik de Castro Lopo
6776ceafa8 CMake: Detect and link external libs (FLAC/vorbis/ogg)
Works on Linux, not tested elsewhere.
2016-07-02 21:16:40 +10:00
Erik de Castro Lopo
9c6e45a103 Comprehensive CMake improvements
It should now be possible to build libsndfile from a git checkout, at
least on Linux. No idea if it will work on other systems.

Additionally, if one builds on linux from a git checkout and then builds
a distribution tarball, it should be possible to transfer that distribution
tarball to a system without the GNU autotools and build it using CMake. This
however has not been tested.
2016-07-02 17:15:47 +10:00
Erik de Castro Lopo
de3f7a6e76 CMakeLists.txt: Rename EXTERNAL_* to EXTERNAL_XIPH_* 2016-03-14 17:45:17 +11:00
Erik de Castro Lopo
5e887cd6d2 Bunch of minor CMake fixes 2016-02-08 10:18:19 +11:00
Erik de Castro Lopo
334ac776f5 Minor CMake files.
* CMake now fails of CMake/config.h.in doesn't exist.
* Command './autogen cmake' now generates CMake/config.h.in.
2014-10-28 21:00:08 +11:00
Erik de Castro Lopo
8327dd3070 CMakeLists.txt : Use bash to run test_wrapper.sh. 2014-08-12 20:10:32 +10:00
Erik de Castro Lopo
d7dd4d035f CMakeLists.txt : Generate tests/test_wrapper.sh during configure.
Plus other minor cleanups.
2014-07-31 22:08:01 +10:00
Erik de Castro Lopo
56ee678e7d CMake : Build system nears parity with autotool build system.
Specifically, it can now build the shared library (without Ogg/Vorbis
or FLAC support) and the programs as well as building and running
the tests using 'make check'. This new CMake build system has a single
top level build description and on Unix, by default generates a non-
recursive Makefile (unlike the existing autotools build system).

I dedicate this commit to Peter Miller (pmiller) who died in the early
hours of 2014/07/27 after a long illness. Peter was the author of the
paper "Recursive Make Considered Harmful":

    http://aegis.sourceforge.net/auug97.pdf

This paper was the inspiration for the build systems for the Linux
kernel, the Glasgow Haskell Compiler and many other projects.

Peter was also the author of a Make replacement program Cook:

    http://miller.emu.id.au/pmiller/software/cook/

Peter was a great friend, a great work colleague and an extremely
skilled and knowledgeable software engineer.

Goodbye my friend. #commitforpmiller
2014-07-31 21:18:30 +10:00
Erik de Castro Lopo
e2d39c7b69 CMake : Detect functions and libraries. 2014-07-13 12:48:02 +10:00
Erik de Castro Lopo
e693055680 CMakeLists.txt : Build a versioned shared library. 2014-07-13 12:21:06 +10:00
Erik de Castro Lopo
3afc448137 CMake : Add all the library C files and start on CFLAGS. 2014-07-13 02:46:34 +10:00
Erik de Castro Lopo
9ee3216fb1 CMake : Split functions out into a separate file. 2014-07-13 01:55:13 +10:00
Erik de Castro Lopo
0775675d17 CMake : Use check_type_size as needed. 2014-07-12 23:46:12 +10:00
Erik de Castro Lopo
bfd1320d9c CMake : Detect and set COMPILER_IS_GCC. 2014-07-12 23:18:11 +10:00
Erik de Castro Lopo
adec6a7c61 CMakeLists.txt : First pass at making it work for Linux.
Cmake is great for really simple stuff but is at least as difficult
as autotools for more complicated stuff.
2014-07-12 21:19:52 +10:00
Erik de Castro Lopo
3d01b6c067 Add CMakeLists.txt.
Initial start to this stolen from:

    https://github.com/johnwbyrd/libsndfile-cmake
2014-07-12 21:07:07 +10:00