summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-05 13:14:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-05 13:14:37 +0000
commitfd3b2704efc2b206784615c1a23eb25501842259 (patch)
tree61ba3a8af2a0ae2ac9ec362bbf18b038f5dc0448 /cmake
parentInitial commit. (diff)
downloadflac-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.in6
-rw-r--r--cmake/CheckA64NEON.cmake14
-rw-r--r--cmake/CheckCPUArch.c.in7
-rw-r--r--cmake/CheckCPUArch.cmake27
-rw-r--r--cmake/FindOgg.cmake26
-rw-r--r--cmake/UseSystemExtensions.cmake63
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)