diff options
author | Martijn van Beurden <mvanb1@gmail.com> | 2021-07-01 11:20:33 +0200 |
---|---|---|
committer | Martijn van Beurden <mvanb1@gmail.com> | 2022-04-25 20:13:36 +0200 |
commit | 8c46644a8d3cf94d31cdc0b24837d7f2231e0a47 (patch) | |
tree | 890822f3f63d50190fb7af9634cd31fb37475003 /cmake/CheckAttribute.cmake | |
parent | d15bcf80a06bd5300e33d5f5c94d69fbf879f45a (diff) | |
download | flac-8c46644a8d3cf94d31cdc0b24837d7f2231e0a47.tar.gz |
[CMake] Add check for PPC64, POWER8/9 and vec_doubleh
Add checks for POWER8/9 intrinsics similar to those in autotools
to cmake
Diffstat (limited to 'cmake/CheckAttribute.cmake')
-rw-r--r-- | cmake/CheckAttribute.cmake | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/cmake/CheckAttribute.cmake b/cmake/CheckAttribute.cmake new file mode 100644 index 00000000..d2e1b500 --- /dev/null +++ b/cmake/CheckAttribute.cmake @@ -0,0 +1,23 @@ +macro(_CHECK_ATTRIBUTE ATTRIBUTE VARIABLE) + if(NOT DEFINED HAVE_${VARIABLE}) + message(STATUS "Check for __attribute__ ((${ATTRIBUTE})) ") + set(CHECK_ATTRIBUTE ${ATTRIBUTE}) + configure_file(${PROJECT_SOURCE_DIR}/cmake/CheckAttribute.c.in ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckAttribute.c @ONLY) + try_compile(HAVE_${VARIABLE} "${PROJECT_BINARY_DIR}" + "${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckAttribute.c") + if(HAVE_${VARIABLE}) + message(STATUS "Check for __attribute__ ((${ATTRIBUTE})) - yes") + set(${VARIABLE} 1 CACHE INTERNAL "Result of CHECK_ATTRIBUTE ${ATTRIBUTE}" FORCE) + else () + message(STATUS "Check for __attribute__ ((${ATTRIBUTE})) - no") + endif() + endif () +endmacro(_CHECK_ATTRIBUTE) + +macro(CHECK_ATTRIBUTE_POWER8 VARIABLE) + _CHECK_ATTRIBUTE("target(\"cpu=power8\")" ${VARIABLE}) +endmacro(CHECK_ATTRIBUTE_POWER8) + +macro(CHECK_ATTRIBUTE_POWER9 VARIABLE) + _CHECK_ATTRIBUTE("target(\"cpu=power9\")" ${VARIABLE}) +endmacro(CHECK_ATTRIBUTE_POWER9) |