diff options
| author | manuel <manuel@mausz.at> | 2017-06-04 16:57:49 +0200 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2017-06-04 16:57:49 +0200 |
| commit | f44ecaa4f27e7538ddcad66d40e543bffa2d2d86 (patch) | |
| tree | d8de60fc7e17edeb6f0921726c038ee54b281445 /project/cmake/modules/FindSSE.cmake | |
| parent | ae08c8b7221bc965ac40d70e53fc8fcddb050c46 (diff) | |
| download | kodi-pvr-build-f44ecaa4f27e7538ddcad66d40e543bffa2d2d86.tar.gz kodi-pvr-build-f44ecaa4f27e7538ddcad66d40e543bffa2d2d86.tar.bz2 kodi-pvr-build-f44ecaa4f27e7538ddcad66d40e543bffa2d2d86.zip | |
sync with upstream
Diffstat (limited to 'project/cmake/modules/FindSSE.cmake')
| -rw-r--r-- | project/cmake/modules/FindSSE.cmake | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/project/cmake/modules/FindSSE.cmake b/project/cmake/modules/FindSSE.cmake deleted file mode 100644 index 0554663..0000000 --- a/project/cmake/modules/FindSSE.cmake +++ /dev/null | |||
| @@ -1,143 +0,0 @@ | |||
| 1 | # Check if SSE instructions are available on the machine where | ||
| 2 | # the project is compiled. | ||
| 3 | include(TestCXXAcceptsFlag) | ||
| 4 | |||
| 5 | if(CMAKE_SYSTEM_NAME MATCHES "Linux") | ||
| 6 | if(CPU MATCHES "x86_64" OR CPU MATCHES "i.86") | ||
| 7 | exec_program(cat ARGS "/proc/cpuinfo" OUTPUT_VARIABLE CPUINFO) | ||
| 8 | |||
| 9 | string(REGEX REPLACE "^.*(sse).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 10 | string(COMPARE EQUAL "sse" "${_SSE_THERE}" _SSE_TRUE) | ||
| 11 | CHECK_CXX_ACCEPTS_FLAG("-msse" _SSE_OK) | ||
| 12 | |||
| 13 | string(REGEX REPLACE "^.*(sse2).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 14 | string(COMPARE EQUAL "sse2" "${_SSE_THERE}" _SSE2_TRUE) | ||
| 15 | CHECK_CXX_ACCEPTS_FLAG("-msse2" _SSE2_OK) | ||
| 16 | |||
| 17 | # /proc/cpuinfo apparently omits sse3 :( | ||
| 18 | string(REGEX REPLACE "^.*[^s](sse3).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 19 | string(COMPARE EQUAL "sse3" "${_SSE_THERE}" _SSE3_TRUE) | ||
| 20 | if(NOT _SSE3_TRUE) | ||
| 21 | string(REGEX REPLACE "^.*(T2300).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 22 | string(COMPARE EQUAL "T2300" "${_SSE_THERE}" _SSE3_TRUE) | ||
| 23 | endif() | ||
| 24 | CHECK_CXX_ACCEPTS_FLAG("-msse3" _SSE3_OK) | ||
| 25 | |||
| 26 | string(REGEX REPLACE "^.*(ssse3).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 27 | string(COMPARE EQUAL "ssse3" "${_SSE_THERE}" _SSSE3_TRUE) | ||
| 28 | CHECK_CXX_ACCEPTS_FLAG("-mssse3" _SSSE3_OK) | ||
| 29 | |||
| 30 | string(REGEX REPLACE "^.*(sse4_1).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 31 | string(COMPARE EQUAL "sse4_1" "${_SSE_THERE}" _SSE41_TRUE) | ||
| 32 | CHECK_CXX_ACCEPTS_FLAG("-msse4.1" _SSE41_OK) | ||
| 33 | |||
| 34 | string(REGEX REPLACE "^.*(sse4_2).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 35 | string(COMPARE EQUAL "sse4_2" "${_SSE_THERE}" _SSE42_TRUE) | ||
| 36 | CHECK_CXX_ACCEPTS_FLAG("-msse4.2" _SSE42_OK) | ||
| 37 | |||
| 38 | string(REGEX REPLACE "^.*(avx).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 39 | string(COMPARE EQUAL "avx" "${_SSE_THERE}" _AVX_TRUE) | ||
| 40 | CHECK_CXX_ACCEPTS_FLAG("-mavx" _AVX_OK) | ||
| 41 | |||
| 42 | string(REGEX REPLACE "^.*(avx2).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 43 | string(COMPARE EQUAL "avx2" "${_SSE_THERE}" _AVX2_TRUE) | ||
| 44 | CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK) | ||
| 45 | endif() | ||
| 46 | elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") | ||
| 47 | if(NOT CPU MATCHES "arm") | ||
| 48 | exec_program("/usr/sbin/sysctl -n machdep.cpu.features machdep.cpu.leaf7_features" OUTPUT_VARIABLE CPUINFO) | ||
| 49 | |||
| 50 | string(REGEX REPLACE "^.*[^S](SSE).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 51 | string(COMPARE EQUAL "SSE" "${_SSE_THERE}" _SSE_TRUE) | ||
| 52 | CHECK_CXX_ACCEPTS_FLAG("-msse" _SSE_OK) | ||
| 53 | |||
| 54 | string(REGEX REPLACE "^.*[^S](SSE2).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 55 | string(COMPARE EQUAL "SSE2" "${_SSE_THERE}" _SSE2_TRUE) | ||
| 56 | CHECK_CXX_ACCEPTS_FLAG("-msse2" _SSE2_OK) | ||
| 57 | |||
| 58 | string(REGEX REPLACE "^.*[^S](SSE3).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 59 | string(COMPARE EQUAL "SSE3" "${_SSE_THERE}" _SSE3_TRUE) | ||
| 60 | CHECK_CXX_ACCEPTS_FLAG("-msse3" _SSE3_OK) | ||
| 61 | |||
| 62 | string(REGEX REPLACE "^.*(SSSE3).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 63 | string(COMPARE EQUAL "SSSE3" "${_SSE_THERE}" _SSSE3_TRUE) | ||
| 64 | CHECK_CXX_ACCEPTS_FLAG("-mssse3" _SSSE3_OK) | ||
| 65 | |||
| 66 | string(REGEX REPLACE "^.*(SSE4.1).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 67 | string(COMPARE EQUAL "SSE4.1" "${_SSE_THERE}" _SSE41_TRUE) | ||
| 68 | CHECK_CXX_ACCEPTS_FLAG("-msse4.1" _SSE41_OK) | ||
| 69 | |||
| 70 | string(REGEX REPLACE "^.*(SSE4.2).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 71 | string(COMPARE EQUAL "SSE4.2" "${_SSE_THERE}" _SSE42_TRUE) | ||
| 72 | CHECK_CXX_ACCEPTS_FLAG("-msse4.2" _SSE42_OK) | ||
| 73 | |||
| 74 | string(REGEX REPLACE "^.*(AVX).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 75 | string(COMPARE EQUAL "AVX" "${_SSE_THERE}" _AVX_TRUE) | ||
| 76 | CHECK_CXX_ACCEPTS_FLAG("-mavx" _AVX_OK) | ||
| 77 | |||
| 78 | string(REGEX REPLACE "^.*(AVX2).*$" "\\1" _SSE_THERE ${CPUINFO}) | ||
| 79 | string(COMPARE EQUAL "AVX2" "${_SSE_THERE}" _AVX2_TRUE) | ||
| 80 | CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK) | ||
| 81 | endif() | ||
| 82 | elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") | ||
| 83 | # TODO | ||
| 84 | set(_SSE_TRUE true) | ||
| 85 | set(_SSE_OK true) | ||
| 86 | set(_SSE2_TRUE true) | ||
| 87 | set(_SSE2_OK true) | ||
| 88 | endif() | ||
| 89 | |||
| 90 | include(FindPackageHandleStandardArgs) | ||
| 91 | find_package_handle_standard_args(SSE | ||
| 92 | REQUIRED_VARS _SSE_TRUE _SSE_OK | ||
| 93 | FAIL_MESSAGE "Could not find hardware support for SSE") | ||
| 94 | find_package_handle_standard_args(SSE2 | ||
| 95 | REQUIRED_VARS _SSE2_TRUE _SSE2_OK | ||
| 96 | FAIL_MESSAGE "Could not find hardware support for SSE2") | ||
| 97 | find_package_handle_standard_args(SSE3 | ||
| 98 | REQUIRED_VARS _SSE3_TRUE _SSE3_OK | ||
| 99 | FAIL_MESSAGE "Could not find hardware support for SSE3") | ||
| 100 | find_package_handle_standard_args(SSSE3 | ||
| 101 | REQUIRED_VARS _SSSE3_TRUE _SSSE3_OK | ||
| 102 | FAIL_MESSAGE "Could not find hardware support for SSSE3") | ||
| 103 | find_package_handle_standard_args(SSE4_1 | ||
| 104 | REQUIRED_VARS _SSE41_TRUE _SSE41_OK | ||
| 105 | FAIL_MESSAGE "Could not find hardware support for SSE4.1") | ||
| 106 | find_package_handle_standard_args(SSE4_2 | ||
| 107 | REQUIRED_VARS _SSE42_TRUE _SSE42_OK | ||
| 108 | FAIL_MESSAGE "Could not find hardware support for SSE4.2") | ||
| 109 | find_package_handle_standard_args(AVX | ||
| 110 | REQUIRED_VARS _AVX_TRUE _AVX_OK | ||
| 111 | FAIL_MESSAGE "Could not find hardware support for AVX") | ||
| 112 | find_package_handle_standard_args(AVX2 | ||
| 113 | REQUIRED_VARS _AVX2_TRUE _AVX2_OK | ||
| 114 | FAIL_MESSAGE "Could not find hardware support for AVX2") | ||
| 115 | |||
| 116 | mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND SSE4_2_FOUND AVX_FOUND AVX2_FOUND) | ||
| 117 | |||
| 118 | unset(_SSE_THERE) | ||
| 119 | unset(_SSE_TRUE) | ||
| 120 | unset(_SSE_OK) | ||
| 121 | unset(_SSE_OK CACHE) | ||
| 122 | unset(_SSE2_TRUE) | ||
| 123 | unset(_SSE2_OK) | ||
| 124 | unset(_SSE2_OK CACHE) | ||
| 125 | unset(_SSE3_TRUE) | ||
| 126 | unset(_SSE3_OK) | ||
| 127 | unset(_SSE3_OK CACHE) | ||
| 128 | unset(_SSSE3_TRUE) | ||
| 129 | unset(_SSSE3_OK) | ||
| 130 | unset(_SSSE3_OK CACHE) | ||
| 131 | unset(_SSE4_1_TRUE) | ||
| 132 | unset(_SSE41_OK) | ||
| 133 | unset(_SSE41_OK CACHE) | ||
| 134 | unset(_SSE4_2_TRUE) | ||
| 135 | unset(_SSE42_OK) | ||
| 136 | unset(_SSE42_OK CACHE) | ||
| 137 | unset(_AVX_TRUE) | ||
| 138 | unset(_AVX_OK) | ||
| 139 | unset(_AVX_OK CACHE) | ||
| 140 | unset(_AVX2_TRUE) | ||
| 141 | unset(_AVX2_OK) | ||
| 142 | unset(_AVX2_OK CACHE) | ||
| 143 | |||
