diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-05 13:14:37 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-05 13:14:37 +0000 |
commit | fd3b2704efc2b206784615c1a23eb25501842259 (patch) | |
tree | 61ba3a8af2a0ae2ac9ec362bbf18b038f5dc0448 /cmake | |
parent | Initial commit. (diff) | |
download | flac-fd3b2704efc2b206784615c1a23eb25501842259.tar.xz flac-fd3b2704efc2b206784615c1a23eb25501842259.zip |
Adding upstream version 1.4.3+ds.upstream/1.4.3+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/CheckA64NEON.c.in | 6 | ||||
-rw-r--r-- | cmake/CheckA64NEON.cmake | 14 | ||||
-rw-r--r-- | cmake/CheckCPUArch.c.in | 7 | ||||
-rw-r--r-- | cmake/CheckCPUArch.cmake | 27 | ||||
-rw-r--r-- | cmake/FindOgg.cmake | 26 | ||||
-rw-r--r-- | cmake/UseSystemExtensions.cmake | 63 |
6 files changed, 143 insertions, 0 deletions
diff --git a/cmake/CheckA64NEON.c.in b/cmake/CheckA64NEON.c.in new file mode 100644 index 0000000..4d43d4f --- /dev/null +++ b/cmake/CheckA64NEON.c.in @@ -0,0 +1,6 @@ +#include <arm_neon.h> +int main (void) +{ + float64x2_t tmp; + tmp = vdupq_n_f64(0.0f); +} diff --git a/cmake/CheckA64NEON.cmake b/cmake/CheckA64NEON.cmake new file mode 100644 index 0000000..247b864 --- /dev/null +++ b/cmake/CheckA64NEON.cmake @@ -0,0 +1,14 @@ +macro(CHECK_A64NEON VARIABLE) + if(NOT DEFINED HAVE_${VARIABLE}) + message(STATUS "Check whether A64 NEON can be used") + configure_file(${PROJECT_SOURCE_DIR}/cmake/CheckA64NEON.c.in ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckA64NEON.c @ONLY) + try_compile(HAVE_${VARIABLE} "${PROJECT_BINARY_DIR}" + "${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckA64NEON.c") + if(HAVE_${VARIABLE}) + message(STATUS "Check whether A64 NEON can be used - yes") + set(${VARIABLE} 1 CACHE INTERNAL "Result of CHECK_A64NEON" FORCE) + else () + message(STATUS "Check whether A64 NEON can be used - no") + endif() + endif () +endmacro(CHECK_A64NEON) diff --git a/cmake/CheckCPUArch.c.in b/cmake/CheckCPUArch.c.in new file mode 100644 index 0000000..5493139 --- /dev/null +++ b/cmake/CheckCPUArch.c.in @@ -0,0 +1,7 @@ +int main(void) { +#if @CHECK_CPU_ARCH_DEFINES@ + return 0; +#else + fail +#endif +} diff --git a/cmake/CheckCPUArch.cmake b/cmake/CheckCPUArch.cmake new file mode 100644 index 0000000..665fa61 --- /dev/null +++ b/cmake/CheckCPUArch.cmake @@ -0,0 +1,27 @@ +macro(_CHECK_CPU_ARCH ARCH ARCH_DEFINES VARIABLE) + if(NOT DEFINED HAVE_${VARIABLE}) + message(STATUS "Check CPU architecture is ${ARCH}") + set(CHECK_CPU_ARCH_DEFINES ${ARCH_DEFINES}) + configure_file(${PROJECT_SOURCE_DIR}/cmake/CheckCPUArch.c.in ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckCPUArch.c @ONLY) + try_compile(HAVE_${VARIABLE} "${PROJECT_BINARY_DIR}" + "${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckCPUArch.c") + if(HAVE_${VARIABLE}) + message(STATUS "Check CPU architecture is ${ARCH} - yes") + set(${VARIABLE} 1 CACHE INTERNAL "Result of CHECK_CPU_ARCH" FORCE) + else () + message(STATUS "Check CPU architecture is ${ARCH} - no") + endif() + endif () +endmacro(_CHECK_CPU_ARCH) + +macro(CHECK_CPU_ARCH_X64 VARIABLE) + _CHECK_CPU_ARCH(x64 "defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)" ${VARIABLE}) +endmacro(CHECK_CPU_ARCH_X64) + +macro(CHECK_CPU_ARCH_X86 VARIABLE) + _CHECK_CPU_ARCH(x86 "defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)" ${VARIABLE}) +endmacro(CHECK_CPU_ARCH_X86) + +macro(CHECK_CPU_ARCH_ARM64 VARIABLE) + _CHECK_CPU_ARCH(arm64 "defined(__aarch64__) || defined(__arm64__)" ${VARIABLE}) +endmacro(CHECK_CPU_ARCH_ARM64) diff --git a/cmake/FindOgg.cmake b/cmake/FindOgg.cmake new file mode 100644 index 0000000..b60c352 --- /dev/null +++ b/cmake/FindOgg.cmake @@ -0,0 +1,26 @@ +find_package(PkgConfig) +pkg_check_modules(_OGG QUIET ogg) + +find_path(OGG_INCLUDE_DIR + NAMES "ogg/ogg.h" + PATHS ${_OGG_INCLUDE_DIRS}) + +find_library(OGG_LIBRARY + NAMES ogg libogg + HINTS ${_OGG_LIBRARY_DIRS}) + +mark_as_advanced( + OGG_INCLUDE_DIR + OGG_LIBRARY) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Ogg + REQUIRED_VARS OGG_INCLUDE_DIR OGG_LIBRARY + VERSION_VAR _OGG_VERSION) + +if(OGG_FOUND AND NOT TARGET Ogg::ogg) + add_library(Ogg::ogg UNKNOWN IMPORTED) + set_target_properties(Ogg::ogg PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${OGG_INCLUDE_DIR}" + IMPORTED_LOCATION "${OGG_LIBRARY}") +endif() diff --git a/cmake/UseSystemExtensions.cmake b/cmake/UseSystemExtensions.cmake new file mode 100644 index 0000000..604f4d3 --- /dev/null +++ b/cmake/UseSystemExtensions.cmake @@ -0,0 +1,63 @@ +include(CheckCSourceCompiles) + +check_c_source_compiles(" + #include <wchar.h> + mbstate_t x; + int main() { return 0; }" + HAVE_MBSTATE) +if(NOT HAVE_MBSTATE) + check_c_source_compiles(" + #define _XOPEN_SOURCE 500 + #include <wchar.h> + mbstate_t x; + int main() { return 0; }" + DODEFINE_XOPEN_SOURCE) +endif() +check_c_source_compiles(" + #define __EXTENSIONS__ 1 + #include <stdio.h> + #ifdef HAVE_SYS_TYPES_H + # include <sys/types.h> + #endif + #ifdef HAVE_SYS_STAT_H + # include <sys/stat.h> + #endif + #ifdef STDC_HEADERS + # include <stdlib.h> + # include <stddef.h> + #else + # ifdef HAVE_STDLIB_H + # include <stdlib.h> + # endif + #endif + #ifdef HAVE_STRING_H + # if !defined STDC_HEADERS && defined HAVE_MEMORY_H + # include <memory.h> + # endif + # include <string.h> + #endif + #ifdef HAVE_STRINGS_H + # include <strings.h> + #endif + #ifdef HAVE_INTTYPES_H + # include <inttypes.h> + #endif + #ifdef HAVE_STDINT_H + # include <stdint.h> + #endif + #ifdef HAVE_UNISTD_H + # include <unistd.h> + #endif + int main() { return 0; }" + DODEFINE_EXTENSIONS) + +add_definitions( + -D_DARWIN_C_SOURCE + -D_POSIX_PTHREAD_SEMANTICS + -D__STDC_WANT_IEC_60559_BFP_EXT__ + -D__STDC_WANT_IEC_60559_DFP_EXT__ + -D__STDC_WANT_IEC_60559_FUNCS_EXT__ + -D__STDC_WANT_IEC_60559_TYPES_EXT__ + -D__STDC_WANT_LIB_EXT2__ + -D__STDC_WANT_MATH_SPEC_FUNCS__ + -D_TANDEM_SOURCE) |