Commit Graph

54 Commits

Author SHA1 Message Date
Steve Lhomme 49ab34dfef [CMake] disable fseeko on 32-bit Android before API 24
It can be linked in the NDK so check_function_exists detects it. But it's only supporting _FILE_OFFSET_BITS=64
since Android API 24 [1].

With NDK 26 it's no longer possible to build assuming the API is always available.

[1] https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md
2024-04-22 14:37:41 +02:00
werner mendizabal 8d4ccdfbb1
Update CMakeLists to allow building with emscripten (#664) 2024-03-08 19:03:11 +01:00
Martijn van Beurden 7f7da558f5 Remove checks for semaphore.h in CMake and configure 2024-02-26 21:54:37 +01:00
Martijn van Beurden 8c41e7f62e Add multithreading to CMake 2023-09-22 21:10:15 +02:00
Martijn van Beurden 28e4f0528c
Release FLAC 1.4.3 2023-06-23 09:17:08 +02:00
Martijn van Beurden 0a52c6fd5c
Replace own bool with stdbool.h, check for header being available 2023-01-07 09:58:00 +01:00
Martijn van Beurden b32e5cbf98
Release FLAC 1.4.2 2022-10-22 13:01:34 +02:00
Martijn van Beurden b6fbd6b3d9
Release FLAC 1.4.1 2022-09-22 12:02:59 +02:00
Martijn van Beurden a076395de0
[CMake] Create dir for pandoc generation 2022-09-22 06:46:03 +02:00
Martijn van Beurden 8e50d89a40
[CMake] C flags were set while CXX flags were meant 2022-09-21 22:06:33 +02:00
Martijn van Beurden 1c0eea679a
[CMake] Prepend compiler flags, fix Clang compiler warnings
Because of issue https://github.com/xiph/flac/issues/437 compiler
flags are prepended instead of appended, so the user can override
them without altering the CMakeLists.txt.

Also, Clang doesn't support per-function optimize options, so in
CMake the fma file gets that option per-file. This is not supported
by automake.
2022-09-17 09:20:15 +02:00
Martijn van Beurden 1cb364d8cf
Make sure git doesn't try to get version from other repository
Fixes https://github.com/xiph/flac/issues/443
2022-09-16 13:59:21 +02:00
Martijn van Beurden 6fcee44e02 [CMake] Make building of man pages possible
This mirrors https://github.com/xiph/flac/pull/440
and fixes https://gitlab.xiph.org/xiph/flac/-/issues/2
2022-09-15 09:49:53 +02:00
Tomasz Kłoczko e8c23bf75e install cmake module in default cmake search path
cmake uses $(datadir}/cmake and $(libdir}/cmake as base path to
search for its moduels. Install FLAC cmake module in
$(libdir}/cmake/FLAC because it provides arch dependent API/ABI.

Signed-off-by: Tomasz Kłoczko <kloczek@github.com>
2022-09-15 09:49:53 +02:00
Tomasz Kłoczko 4145f7455b Fix man pages lvl 1 install path
Install those pages in "${CMAKE_INSTALL_MANDIR}/man1 instead directly in
"${CMAKE_INSTALL_MANDIR}.

Signed-off-by: Tomasz Kłoczko <kloczek@github.com>
2022-09-15 09:49:53 +02:00
Martijn van Beurden 2ab4677750
Release FLAC 1.4.0 2022-09-09 14:08:42 +02:00
Martijn van Beurden 428e681784 [CMake] Don't search for libiconv and libintl on Windows
The functions these libs provide don't seem to be used on Windows
anyway. This fixes https://github.com/xiph/flac/issues/249
2022-08-01 21:02:03 +02:00
Cameron Cawley f0f9deb5b2
Fix CMake builds with -DBUILD_CXXLIBS=OFF (#360) 2022-06-24 22:17:46 +02:00
martinRenou 39e6e570d8
Export flac properly when use with add_subdirectory (#285)
This allows for flac to be used in a larger CMake project
with add_subdirectory. It also allows for Ogg to be
build elsewhere in the larger project.
2022-05-30 20:22:45 +02:00
Martijn van Beurden 7e4d8189d8 [CMake] Remove _FORTIFY_SOURCE=1 on not having libssp
Based on some information somewhere on the internet, CMakeLists.txt
sets _FORTIFY_SOURCE=2 when its runtime functions are available and
_FORTIFY_SOURCE=1 when they are not. However, _FORTIFY_SOURCE=1
also requires runtime functions.
2022-05-20 16:09:39 +02:00
RonenGvili 95e2c52980
Adding ARM64 support and optimized Neon implementation (#270)
Add NEON intrinsics routines for lpc_compute_residual_from_qlp_coefficients
and lpc_compute_residual_from_qlp_coefficients_wide
2022-04-29 14:46:07 +02:00
Martijn van Beurden 0caf685360
[CMake] Enable building ogg together with flac (#325)
This reverts the part of commit 2013738 that searched for a local
ogg build
2022-04-27 19:53:13 +02:00
NotTsunami b171e767e2 Add missing langinfo check for CMake 2022-04-21 19:35:58 +02:00
Martijn van Beurden f579b163fe
Add git commit tag, hash and date to vendor string when available
In some circles (Hydrogenaud.io for example) people share binaries
compiled from git, i.e. inbetween official releases. Files created
with these binaries cannot be discerned from others. To improve
troubleshooting, compiles from a git repository are marked with
the commit hash and date when configured with autotools or CMake
2022-04-20 21:47:07 +02:00
Martijn van Beurden 0ec47a87b4 [CMake] Remove /MT from MSVC flags, causes crashes with shared libs 2022-04-13 17:37:50 +02:00
Martijn van Beurden db72703f86 [CMake] Set binary and library output dir to objs on Windows
Without this patch, CMake places output binaries and libraries in
the respective source directories, like the autotools build system.
The Visual Studio build system places objects in the objs directory

Because CTest didn't run properly when building shared libs, this
commit changes the CMake behaviour on (NOT UNIX) to that similar
to Visual Studio. That way, DLLs and EXEs are placed in the same
directory and running CTest with the correct DLLs being loaded
is trivial.
2022-04-13 17:37:50 +02:00
Martijn van Beurden 4256c12eac [CMake] Specifically prefer linking with static libssp
As to have a libFLAC.dll with no additional dependencies, linking
with libssp.a is preferred over linking with libssp.dll.a
2022-04-13 17:37:50 +02:00
Martijn van Beurden 6e3089b9bc [CMake] Add BUILD_SHARED_LIBS as options 2022-04-13 17:37:50 +02:00
Martijn van Beurden 805b7dba83 [CMake] Build with -lssp on MinGW 2022-04-13 17:37:50 +02:00
NotTsunami 617efda90d CMake: Make FORTIFY_SOURCE optional
* Also add in checking for libssp for MinGW
2022-04-13 17:37:50 +02:00
Martijn van Beurden f5efd956d9 [CMake] Create prettier MSVC solution files 2022-04-13 17:37:50 +02:00
Martijn van Beurden 2013738622 [CMake] Add options for better MS Visual Studio building 2022-04-13 17:37:50 +02:00
David Callu 6debf337c8 cmake: fix c/cxx compile option use with asm code 2022-04-12 21:37:51 +02:00
Martijn van Beurden e75495be3d
Change version to 1.3.4 and add placeholders for release date
Signed-off-by: Ralph Giles <giles@thaumas.net>
2022-02-20 20:54:19 -08:00
TGMarkiewicz 1ac2a6314b Fix version & requires fields in pkg config files
Details:
 - When building with CMake, pkg-config files flac.pc and flac++.pc
   are not updated with Version information. This causes a failure
   when running a configure script in opus-tools
   (https://github.com/xiph/opus-tools).

   Note that OGG_PACKAGE is set to "ogg" exactly as in the configure.ac,
   but it is only set when the building explicitly with libogg.
2021-06-24 15:59:09 -07:00
evpobr e0b62a61a7 Bunch of CMake fixes
* Add more Git ignore patterns
* Fix Ogg dependency handling (closes #203)
* Remove unneeded compiler flag (closes #204)
* Fix Visual Studio DLL build error error C2491:
  'flac_internal_rename_utf8': definition of dllimport function not
  allowed (closes #205)
* Add alias targets
* Reduce number of CMake files
* Improve CMake intrinsics detection
2020-05-03 17:13:50 +10:00
evpobr acadefddac Add more CMake options
* BUILD_PROGRAMS
** INSTALL_MANPAGES
* INSTALL_PKGCONFIG_MODULES
* INSTALL_CMAKE_CONFIG_MODULE
2020-04-05 19:31:40 +10:00
Vitaliy Kirsanov 0dfe23504c CMake: Handier way to find Iconv 2019-12-22 22:09:03 +11:00
NotTsunami f706f28322 cmake/configure.ac: Enable -fstack-protector-strong by default
This commit contains the following changes:

- Drops -fstack-protector in favor of -fstack-protector-strong.
  Consequently, the ssp-buffer-size parameter has been removed as
  -fstack-protector-strong ignores array size.

- Add new global opt-out for stack smash protection. This is enabled
  by default for both autotools and CMake builds. Users can opt out
  of stack smash protection by passing -DWITH_STACK_PROTECTOR=OFF to
  CMake or --disable-stack-smash-protection when running ./configure.

- Renames HAVE_SSP_FLAG to HAVE_STACK_PROTECTOR_FLAG in
  CMakeLists.txt to be more readable.
2019-11-20 17:12:03 +11:00
sezero cdcf0d5575 cmake_minimum_required() cleanup:
- document version requirements in the top-level file.
- remove incorrect version requirements from sub-dirs.
- set min. required version to 3.5 in top-level file.
- set minimun required version to 3.9 under docs/ .
- make documents building an option (on by default.)
  so, the tree can be built using cmake-3.5 using
 -DBUILD_DOCS=0 on the command line.
2019-11-15 19:06:58 +11:00
Ralph Giles 88ddb5b59e Fix metaflac under ctest.
The 1.3.3 release didn't update the version number in the cmake
build. It's too late to fix the release, but bringing the version
number into sync allows the metaflac test which verifies the
encoder's embedded version number to pass, giving us proper test
feedback on other changes to the development tree.
2019-08-16 06:59:42 +10:00
sezero f85a2f44f6 increase required minimum cmake version to 3.9. 2019-08-06 07:26:19 +10:00
evpobr cd03042ea9 Fix CMake configure warning
Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when
 unquoted.
2019-06-01 12:33:53 +10:00
Vitaliy Kirsanov 26cbd97884 CMAKE_BUILD_TYPE set to Release by default: improved 2019-05-04 11:41:48 +10:00
Vitaliy Kirsanov 1794b0cd79 CMAKE_BUILD_TYPE set to Release by default 2019-05-04 11:41:48 +10:00
Vitaliy Kirsanov 573dbc12ae Use of BUILD_SHARED_LIBS added 2019-05-04 11:41:48 +10:00
Vitaly Kirsanov a82a014cf1 CMake minimum required lowered to 3.1 2019-05-04 11:41:48 +10:00
evpobr d38b867f68 Add missing fseeko check 2019-05-04 11:41:48 +10:00
Vitaliy Kirsanov 2359563a46 FLAC now depends on win_utf8_io
Accidently found this missing dependency
2019-05-04 11:41:48 +10:00
Vitaly Kirsanov 8610c3acfb Added /arch:SSE2 flag 2019-05-04 11:41:48 +10:00