Ashkan Aliabadi | 0e6bde9 | 2020-01-21 14:15:03 -0800 | [diff] [blame] | 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) |
| 2 | |
| 3 | INCLUDE(GNUInstallDirs) |
| 4 | |
| 5 | # ---[ Project and semantic versioning. |
| 6 | PROJECT(cpuinfo C CXX) |
| 7 | |
| 8 | # ---[ Options. |
| 9 | SET(CPUINFO_LIBRARY_TYPE "default" CACHE STRING "Type of cpuinfo library (shared, static, or default) to build") |
| 10 | SET_PROPERTY(CACHE CPUINFO_LIBRARY_TYPE PROPERTY STRINGS default static shared) |
| 11 | SET(CPUINFO_RUNTIME_TYPE "default" CACHE STRING "Type of runtime library (shared, static, or default) to use") |
| 12 | SET_PROPERTY(CACHE CPUINFO_RUNTIME_TYPE PROPERTY STRINGS default static shared) |
| 13 | SET(CPUINFO_LOG_LEVEL "default" CACHE STRING "Minimum logging level (info with lower severity will be ignored)") |
| 14 | SET_PROPERTY(CACHE CPUINFO_LOG_LEVEL PROPERTY STRINGS default debug info warning error fatal none) |
| 15 | OPTION(CPUINFO_BUILD_TOOLS "Build command-line tools" ON) |
| 16 | OPTION(CPUINFO_BUILD_UNIT_TESTS "Build cpuinfo unit tests" ON) |
| 17 | OPTION(CPUINFO_BUILD_MOCK_TESTS "Build cpuinfo mock tests" ON) |
| 18 | OPTION(CPUINFO_BUILD_BENCHMARKS "Build cpuinfo micro-benchmarks" ON) |
| 19 | |
| 20 | # ---[ CMake options |
| 21 | IF(CPUINFO_BUILD_UNIT_TESTS OR CPUINFO_BUILD_MOCK_TESTS) |
| 22 | ENABLE_TESTING() |
| 23 | ENDIF() |
| 24 | |
| 25 | MACRO(CPUINFO_TARGET_ENABLE_C99 target) |
| 26 | IF(${CMAKE_VERSION} VERSION_LESS "3.1") |
| 27 | IF(NOT MSVC) |
| 28 | TARGET_COMPILE_OPTIONS(${target} PRIVATE -std=c99) |
| 29 | ENDIF() |
| 30 | ELSE() |
| 31 | SET_TARGET_PROPERTIES(${target} PROPERTIES |
| 32 | C_STANDARD 99 |
| 33 | C_EXTENSIONS NO) |
| 34 | ENDIF() |
| 35 | ENDMACRO() |
| 36 | |
| 37 | MACRO(CPUINFO_TARGET_ENABLE_CXX11 target) |
| 38 | IF(${CMAKE_VERSION} VERSION_LESS "3.1") |
| 39 | IF(NOT MSVC) |
| 40 | TARGET_COMPILE_OPTIONS(${target} PRIVATE -std=c++11) |
| 41 | ENDIF() |
| 42 | ELSE() |
| 43 | SET_TARGET_PROPERTIES(${target} PROPERTIES |
| 44 | CXX_STANDARD 11 |
| 45 | CXX_EXTENSIONS NO) |
| 46 | ENDIF() |
| 47 | ENDMACRO() |
| 48 | |
| 49 | MACRO(CPUINFO_TARGET_RUNTIME_LIBRARY target) |
| 50 | IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "default") |
| 51 | IF(CPUINFO_RUNTIME_TYPE STREQUAL "shared") |
| 52 | TARGET_COMPILE_OPTIONS(${target} PRIVATE |
| 53 | "/MD$<$<CONFIG:Debug>:d>") |
| 54 | ELSEIF(CPUINFO_RUNTIME_TYPE STREQUAL "static") |
| 55 | TARGET_COMPILE_OPTIONS(${target} PRIVATE |
| 56 | "/MT$<$<CONFIG:Debug>:d>") |
| 57 | ENDIF() |
| 58 | ENDIF() |
| 59 | ENDMACRO() |
| 60 | |
| 61 | # ---[ Build flags |
| 62 | SET(CPUINFO_SUPPORTED_PLATFORM TRUE) |
| 63 | IF(NOT CMAKE_SYSTEM_PROCESSOR) |
| 64 | IF(NOT IOS) |
| 65 | MESSAGE(WARNING |
| 66 | "Target processor architecture is not specified. " |
| 67 | "cpuinfo will compile, but cpuinfo_initialize() will always fail.") |
| 68 | SET(CPUINFO_SUPPORTED_PLATFORM FALSE) |
| 69 | ENDIF() |
| 70 | ELSEIF(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?|armv[5-8].*|aarch64)$") |
| 71 | MESSAGE(WARNING |
| 72 | "Target processor architecture \"${CMAKE_SYSTEM_PROCESSOR}\" is not supported in cpuinfo. " |
| 73 | "cpuinfo will compile, but cpuinfo_initialize() will always fail.") |
| 74 | SET(CPUINFO_SUPPORTED_PLATFORM FALSE) |
| 75 | ENDIF() |
| 76 | |
| 77 | IF(NOT CMAKE_SYSTEM_NAME) |
| 78 | MESSAGE(WARNING |
| 79 | "Target operating system is not specified. " |
| 80 | "cpuinfo will compile, but cpuinfo_initialize() will always fail.") |
| 81 | SET(CPUINFO_SUPPORTED_PLATFORM FALSE) |
| 82 | ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Windows|Darwin|Linux|Android)$") |
| 83 | IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14" AND NOT CMAKE_SYSTEM_NAME STREQUAL "iOS") |
| 84 | MESSAGE(WARNING |
| 85 | "Target operating system \"${CMAKE_SYSTEM_NAME}\" is not supported in cpuinfo. " |
| 86 | "cpuinfo will compile, but cpuinfo_initialize() will always fail.") |
| 87 | SET(CPUINFO_SUPPORTED_PLATFORM FALSE) |
| 88 | ENDIF() |
| 89 | ENDIF() |
| 90 | |
| 91 | # ---[ Download deps |
| 92 | SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps |
| 93 | CACHE PATH "Confu-style dependencies source directory") |
| 94 | SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps |
| 95 | CACHE PATH "Confu-style dependencies binary directory") |
| 96 | |
| 97 | IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS) |
| 98 | IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLETEST_SOURCE_DIR) |
| 99 | MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)") |
| 100 | CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt") |
| 101 | EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . |
| 102 | WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download") |
| 103 | EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . |
| 104 | WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download") |
| 105 | SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory") |
| 106 | ENDIF() |
| 107 | ENDIF() |
| 108 | |
| 109 | IF(CPUINFO_BUILD_BENCHMARKS) |
| 110 | IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR) |
| 111 | MESSAGE(STATUS "Downloading Google Benchmark to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)") |
| 112 | CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt") |
| 113 | EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . |
| 114 | WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download") |
| 115 | EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build . |
| 116 | WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download") |
| 117 | SET(GOOGLEBENCHMARK_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark" CACHE STRING "Google Benchmark source directory") |
| 118 | ENDIF() |
| 119 | ENDIF() |
| 120 | |
| 121 | # ---[ cpuinfo library |
| 122 | SET(CPUINFO_SRCS |
| 123 | src/init.c |
| 124 | src/api.c) |
| 125 | |
| 126 | IF(CPUINFO_SUPPORTED_PLATFORM) |
| 127 | IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?)$" OR IOS_ARCH MATCHES "^(i386|x86_64)$") |
| 128 | LIST(APPEND CPUINFO_SRCS |
| 129 | src/x86/init.c |
| 130 | src/x86/info.c |
| 131 | src/x86/vendor.c |
| 132 | src/x86/uarch.c |
| 133 | src/x86/name.c |
| 134 | src/x86/topology.c |
| 135 | src/x86/isa.c |
| 136 | src/x86/cache/init.c |
| 137 | src/x86/cache/descriptor.c |
| 138 | src/x86/cache/deterministic.c) |
| 139 | IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 140 | LIST(APPEND CPUINFO_SRCS |
| 141 | src/x86/linux/init.c |
| 142 | src/x86/linux/cpuinfo.c) |
| 143 | ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") |
| 144 | LIST(APPEND CPUINFO_SRCS src/x86/mach/init.c) |
| 145 | ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Windows") |
| 146 | LIST(APPEND CPUINFO_SRCS src/x86/windows/init.c) |
| 147 | ENDIF() |
| 148 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv[5-8].*|aarch64)$" OR IOS_ARCH MATCHES "^(armv7.*|arm64.*)$") |
| 149 | LIST(APPEND CPUINFO_SRCS |
| 150 | src/arm/uarch.c |
| 151 | src/arm/cache.c) |
| 152 | IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 153 | LIST(APPEND CPUINFO_SRCS |
| 154 | src/arm/linux/init.c |
| 155 | src/arm/linux/cpuinfo.c |
| 156 | src/arm/linux/clusters.c |
| 157 | src/arm/linux/chipset.c |
| 158 | src/arm/linux/midr.c |
| 159 | src/arm/linux/hwcap.c) |
| 160 | IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]") |
| 161 | LIST(APPEND CPUINFO_SRCS src/arm/linux/aarch32-isa.c) |
| 162 | IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND ANDROID_ABI STREQUAL "armeabi") |
| 163 | SET_SOURCE_FILES_PROPERTIES(src/arm/linux/aarch32-isa.c PROPERTIES COMPILE_FLAGS -marm) |
| 164 | ENDIF() |
| 165 | ELSEIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") |
| 166 | LIST(APPEND CPUINFO_SRCS src/arm/linux/aarch64-isa.c) |
| 167 | ENDIF() |
| 168 | ELSEIF(IOS) |
| 169 | LIST(APPEND CPUINFO_SRCS src/arm/mach/init.c) |
| 170 | ENDIF() |
| 171 | IF(CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 172 | LIST(APPEND CPUINFO_SRCS |
| 173 | src/arm/android/properties.c) |
| 174 | ENDIF() |
| 175 | ENDIF() |
| 176 | |
| 177 | IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 178 | LIST(APPEND CPUINFO_SRCS |
| 179 | src/linux/smallfile.c |
| 180 | src/linux/multiline.c |
| 181 | src/linux/current.c |
| 182 | src/linux/cpulist.c |
| 183 | src/linux/processors.c) |
| 184 | ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") |
| 185 | LIST(APPEND CPUINFO_SRCS src/mach/topology.c) |
| 186 | ENDIF() |
| 187 | |
| 188 | IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 189 | SET(CMAKE_THREAD_PREFER_PTHREAD TRUE) |
| 190 | SET(THREADS_PREFER_PTHREAD_FLAG TRUE) |
| 191 | FIND_PACKAGE(Threads REQUIRED) |
| 192 | ENDIF() |
| 193 | ENDIF() |
| 194 | |
| 195 | IF(CPUINFO_LIBRARY_TYPE STREQUAL "default") |
| 196 | ADD_LIBRARY(cpuinfo ${CPUINFO_SRCS}) |
| 197 | ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "shared") |
| 198 | ADD_LIBRARY(cpuinfo SHARED ${CPUINFO_SRCS}) |
| 199 | ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "static") |
| 200 | ADD_LIBRARY(cpuinfo STATIC ${CPUINFO_SRCS}) |
| 201 | ELSE() |
| 202 | MESSAGE(FATAL_ERROR "Unsupported library type ${CPUINFO_LIBRARY_TYPE}") |
| 203 | ENDIF() |
| 204 | ADD_LIBRARY(cpuinfo_internals STATIC ${CPUINFO_SRCS}) |
| 205 | CPUINFO_TARGET_ENABLE_C99(cpuinfo) |
| 206 | CPUINFO_TARGET_ENABLE_C99(cpuinfo_internals) |
| 207 | CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo) |
| 208 | SET_TARGET_PROPERTIES(cpuinfo PROPERTIES PUBLIC_HEADER include/cpuinfo.h) |
| 209 | TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PUBLIC include) |
| 210 | TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PRIVATE src) |
| 211 | TARGET_INCLUDE_DIRECTORIES(cpuinfo_internals BEFORE PUBLIC include src) |
| 212 | IF(CPUINFO_LOG_LEVEL STREQUAL "default") |
| 213 | # default logging level: error (subject to change) |
| 214 | TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2) |
| 215 | ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "debug") |
| 216 | TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=5) |
| 217 | ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "info") |
| 218 | TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=4) |
| 219 | ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "warning") |
| 220 | TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=3) |
| 221 | ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "error") |
| 222 | TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2) |
| 223 | ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "fatal") |
| 224 | TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=1) |
| 225 | ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "none") |
| 226 | TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=0) |
| 227 | ELSE() |
| 228 | MESSAGE(FATAL_ERROR "Unsupported logging level ${CPUINFO_LOG_LEVEL}") |
| 229 | ENDIF() |
| 230 | TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE CPUINFO_LOG_LEVEL=0) |
| 231 | |
| 232 | IF(CPUINFO_SUPPORTED_PLATFORM) |
| 233 | TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=1) |
| 234 | IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 235 | TARGET_LINK_LIBRARIES(cpuinfo PUBLIC ${CMAKE_THREAD_LIBS_INIT}) |
| 236 | TARGET_LINK_LIBRARIES(cpuinfo_internals PUBLIC ${CMAKE_THREAD_LIBS_INIT}) |
| 237 | TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE _GNU_SOURCE=1) |
| 238 | TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE _GNU_SOURCE=1) |
| 239 | ENDIF() |
| 240 | ELSE() |
| 241 | TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=0) |
| 242 | ENDIF() |
| 243 | |
| 244 | # ---[ cpuinfo dependencies: clog |
| 245 | IF(NOT DEFINED CLOG_SOURCE_DIR) |
| 246 | SET(CLOG_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/clog") |
| 247 | ENDIF() |
| 248 | IF(NOT TARGET clog) |
| 249 | SET(CLOG_BUILD_TESTS OFF CACHE BOOL "") |
| 250 | SET(CLOG_RUNTIME_TYPE "${CPUINFO_RUNTIME_TYPE}" CACHE STRING "") |
| 251 | ADD_SUBDIRECTORY( |
| 252 | "${CLOG_SOURCE_DIR}") |
| 253 | # We build static version of clog but a dynamic library may indirectly depend on it |
| 254 | SET_PROPERTY(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON) |
| 255 | ENDIF() |
| 256 | TARGET_LINK_LIBRARIES(cpuinfo PRIVATE clog) |
| 257 | TARGET_LINK_LIBRARIES(cpuinfo_internals PRIVATE clog) |
| 258 | |
| 259 | INSTALL(TARGETS cpuinfo |
| 260 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 261 | ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 262 | PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) |
| 263 | |
| 264 | # ---[ cpuinfo micro-benchmarks |
| 265 | IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS) |
| 266 | # ---[ Build google benchmark |
| 267 | IF(NOT TARGET benchmark) |
| 268 | SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "") |
| 269 | ADD_SUBDIRECTORY( |
| 270 | "${GOOGLEBENCHMARK_SOURCE_DIR}" |
| 271 | "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark") |
| 272 | ENDIF() |
| 273 | |
| 274 | IF(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Android)$") |
| 275 | ADD_EXECUTABLE(get-current-bench bench/get-current.cc) |
| 276 | TARGET_LINK_LIBRARIES(get-current-bench cpuinfo benchmark) |
| 277 | ENDIF() |
| 278 | |
| 279 | ADD_EXECUTABLE(init-bench bench/init.cc) |
| 280 | TARGET_LINK_LIBRARIES(init-bench cpuinfo benchmark) |
| 281 | ENDIF() |
| 282 | |
| 283 | IF(CPUINFO_SUPPORTED_PLATFORM) |
| 284 | IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS) |
| 285 | # ---[ Build google test |
| 286 | IF(NOT TARGET gtest) |
| 287 | IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "static") |
| 288 | SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE) |
| 289 | ENDIF() |
| 290 | ADD_SUBDIRECTORY( |
| 291 | "${GOOGLETEST_SOURCE_DIR}" |
| 292 | "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest") |
| 293 | ENDIF() |
| 294 | ENDIF() |
| 295 | ENDIF() |
| 296 | |
| 297 | # ---[ cpuinfo mock library and mock tests |
| 298 | IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_MOCK_TESTS) |
| 299 | SET(CPUINFO_MOCK_SRCS "${CPUINFO_SRCS}") |
| 300 | IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86_64)$") |
| 301 | LIST(APPEND CPUINFO_MOCK_SRCS src/x86/mockcpuid.c) |
| 302 | ENDIF() |
| 303 | IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 304 | LIST(APPEND CPUINFO_MOCK_SRCS src/linux/mockfile.c) |
| 305 | ENDIF() |
| 306 | |
| 307 | ADD_LIBRARY(cpuinfo_mock STATIC ${CPUINFO_MOCK_SRCS}) |
| 308 | CPUINFO_TARGET_ENABLE_C99(cpuinfo_mock) |
| 309 | CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo_mock) |
| 310 | SET_TARGET_PROPERTIES(cpuinfo_mock PROPERTIES PUBLIC_HEADER include/cpuinfo.h) |
| 311 | TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PUBLIC include) |
| 312 | TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PRIVATE src) |
| 313 | TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PUBLIC CPUINFO_MOCK=1) |
| 314 | TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE CLOG_LOG_TO_STDIO=1) |
| 315 | IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 316 | TARGET_LINK_LIBRARIES(cpuinfo_mock PUBLIC ${CMAKE_THREAD_LIBS_INIT}) |
| 317 | TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE _GNU_SOURCE=1) |
| 318 | ENDIF() |
| 319 | TARGET_LINK_LIBRARIES(cpuinfo_mock PRIVATE clog) |
| 320 | |
| 321 | IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a)$") |
| 322 | ADD_EXECUTABLE(atm7029b-tablet-test test/mock/atm7029b-tablet.cc) |
| 323 | TARGET_INCLUDE_DIRECTORIES(atm7029b-tablet-test BEFORE PRIVATE test/mock) |
| 324 | TARGET_LINK_LIBRARIES(atm7029b-tablet-test PRIVATE cpuinfo_mock gtest) |
| 325 | ADD_TEST(atm7029b-tablet-test atm7029b-tablet-test) |
| 326 | |
| 327 | ADD_EXECUTABLE(blu-r1-hd-test test/mock/blu-r1-hd.cc) |
| 328 | TARGET_INCLUDE_DIRECTORIES(blu-r1-hd-test BEFORE PRIVATE test/mock) |
| 329 | TARGET_LINK_LIBRARIES(blu-r1-hd-test PRIVATE cpuinfo_mock gtest) |
| 330 | ADD_TEST(blu-r1-hd-test blu-r1-hd-test) |
| 331 | |
| 332 | ADD_EXECUTABLE(galaxy-a3-2016-eu-test test/mock/galaxy-a3-2016-eu.cc) |
| 333 | TARGET_INCLUDE_DIRECTORIES(galaxy-a3-2016-eu-test BEFORE PRIVATE test/mock) |
| 334 | TARGET_LINK_LIBRARIES(galaxy-a3-2016-eu-test PRIVATE cpuinfo_mock gtest) |
| 335 | ADD_TEST(galaxy-a3-2016-eu-test galaxy-a3-2016-eu-test) |
| 336 | |
| 337 | ADD_EXECUTABLE(galaxy-a8-2016-duos-test test/mock/galaxy-a8-2016-duos.cc) |
| 338 | TARGET_INCLUDE_DIRECTORIES(galaxy-a8-2016-duos-test BEFORE PRIVATE test/mock) |
| 339 | TARGET_LINK_LIBRARIES(galaxy-a8-2016-duos-test PRIVATE cpuinfo_mock gtest) |
| 340 | ADD_TEST(galaxy-a8-2016-duos-test galaxy-a8-2016-duos-test) |
| 341 | |
| 342 | ADD_EXECUTABLE(galaxy-grand-prime-value-edition-test test/mock/galaxy-grand-prime-value-edition.cc) |
| 343 | TARGET_INCLUDE_DIRECTORIES(galaxy-grand-prime-value-edition-test BEFORE PRIVATE test/mock) |
| 344 | TARGET_LINK_LIBRARIES(galaxy-grand-prime-value-edition-test PRIVATE cpuinfo_mock gtest) |
| 345 | ADD_TEST(galaxy-grand-prime-value-edition-test galaxy-grand-prime-value-edition-test) |
| 346 | |
| 347 | ADD_EXECUTABLE(galaxy-j1-2016-test test/mock/galaxy-j1-2016.cc) |
| 348 | TARGET_INCLUDE_DIRECTORIES(galaxy-j1-2016-test BEFORE PRIVATE test/mock) |
| 349 | TARGET_LINK_LIBRARIES(galaxy-j1-2016-test PRIVATE cpuinfo_mock gtest) |
| 350 | ADD_TEST(galaxy-j1-2016-test galaxy-j1-2016-test) |
| 351 | |
| 352 | ADD_EXECUTABLE(galaxy-j5-test test/mock/galaxy-j5.cc) |
| 353 | TARGET_INCLUDE_DIRECTORIES(galaxy-j5-test BEFORE PRIVATE test/mock) |
| 354 | TARGET_LINK_LIBRARIES(galaxy-j5-test PRIVATE cpuinfo_mock gtest) |
| 355 | ADD_TEST(galaxy-j5-test galaxy-j5-test) |
| 356 | |
| 357 | ADD_EXECUTABLE(galaxy-j7-prime-test test/mock/galaxy-j7-prime.cc) |
| 358 | TARGET_INCLUDE_DIRECTORIES(galaxy-j7-prime-test BEFORE PRIVATE test/mock) |
| 359 | TARGET_LINK_LIBRARIES(galaxy-j7-prime-test PRIVATE cpuinfo_mock gtest) |
| 360 | ADD_TEST(galaxy-j7-prime-test galaxy-j7-prime-test) |
| 361 | |
| 362 | ADD_EXECUTABLE(galaxy-j7-tmobile-test test/mock/galaxy-j7-tmobile.cc) |
| 363 | TARGET_INCLUDE_DIRECTORIES(galaxy-j7-tmobile-test BEFORE PRIVATE test/mock) |
| 364 | TARGET_LINK_LIBRARIES(galaxy-j7-tmobile-test PRIVATE cpuinfo_mock gtest) |
| 365 | ADD_TEST(galaxy-j7-tmobile-test galaxy-j7-tmobile-test) |
| 366 | |
| 367 | ADD_EXECUTABLE(galaxy-j7-uae-test test/mock/galaxy-j7-uae.cc) |
| 368 | TARGET_INCLUDE_DIRECTORIES(galaxy-j7-uae-test BEFORE PRIVATE test/mock) |
| 369 | TARGET_LINK_LIBRARIES(galaxy-j7-uae-test PRIVATE cpuinfo_mock gtest) |
| 370 | ADD_TEST(galaxy-j7-uae-test galaxy-j7-uae-test) |
| 371 | |
| 372 | ADD_EXECUTABLE(galaxy-s3-us-test test/mock/galaxy-s3-us.cc) |
| 373 | TARGET_INCLUDE_DIRECTORIES(galaxy-s3-us-test BEFORE PRIVATE test/mock) |
| 374 | TARGET_LINK_LIBRARIES(galaxy-s3-us-test PRIVATE cpuinfo_mock gtest) |
| 375 | ADD_TEST(galaxy-s3-us-test galaxy-s3-us-test) |
| 376 | |
| 377 | ADD_EXECUTABLE(galaxy-s4-us-test test/mock/galaxy-s4-us.cc) |
| 378 | TARGET_INCLUDE_DIRECTORIES(galaxy-s4-us-test BEFORE PRIVATE test/mock) |
| 379 | TARGET_LINK_LIBRARIES(galaxy-s4-us-test PRIVATE cpuinfo_mock gtest) |
| 380 | ADD_TEST(galaxy-s4-us-test galaxy-s4-us-test) |
| 381 | |
| 382 | ADD_EXECUTABLE(galaxy-s5-global-test test/mock/galaxy-s5-global.cc) |
| 383 | TARGET_INCLUDE_DIRECTORIES(galaxy-s5-global-test BEFORE PRIVATE test/mock) |
| 384 | TARGET_LINK_LIBRARIES(galaxy-s5-global-test PRIVATE cpuinfo_mock gtest) |
| 385 | ADD_TEST(galaxy-s5-global-test galaxy-s5-global-test) |
| 386 | |
| 387 | ADD_EXECUTABLE(galaxy-s5-us-test test/mock/galaxy-s5-us.cc) |
| 388 | TARGET_INCLUDE_DIRECTORIES(galaxy-s5-us-test BEFORE PRIVATE test/mock) |
| 389 | TARGET_LINK_LIBRARIES(galaxy-s5-us-test PRIVATE cpuinfo_mock gtest) |
| 390 | ADD_TEST(galaxy-s5-us-test galaxy-s5-us-test) |
| 391 | |
| 392 | ADD_EXECUTABLE(galaxy-tab-3-7.0-test test/mock/galaxy-tab-3-7.0.cc) |
| 393 | TARGET_INCLUDE_DIRECTORIES(galaxy-tab-3-7.0-test BEFORE PRIVATE test/mock) |
| 394 | TARGET_LINK_LIBRARIES(galaxy-tab-3-7.0-test PRIVATE cpuinfo_mock gtest) |
| 395 | ADD_TEST(galaxy-tab-3-7.0-test galaxy-tab-3-7.0-test) |
| 396 | |
| 397 | ADD_EXECUTABLE(galaxy-tab-3-lite-test test/mock/galaxy-tab-3-lite.cc) |
| 398 | TARGET_INCLUDE_DIRECTORIES(galaxy-tab-3-lite-test BEFORE PRIVATE test/mock) |
| 399 | TARGET_LINK_LIBRARIES(galaxy-tab-3-lite-test PRIVATE cpuinfo_mock gtest) |
| 400 | ADD_TEST(galaxy-tab-3-lite-test galaxy-tab-3-lite-test) |
| 401 | |
| 402 | ADD_EXECUTABLE(galaxy-win-duos-test test/mock/galaxy-win-duos.cc) |
| 403 | TARGET_INCLUDE_DIRECTORIES(galaxy-win-duos-test BEFORE PRIVATE test/mock) |
| 404 | TARGET_LINK_LIBRARIES(galaxy-win-duos-test PRIVATE cpuinfo_mock gtest) |
| 405 | ADD_TEST(galaxy-win-duos-test galaxy-win-duos-test) |
| 406 | |
| 407 | ADD_EXECUTABLE(huawei-ascend-p7-test test/mock/huawei-ascend-p7.cc) |
| 408 | TARGET_INCLUDE_DIRECTORIES(huawei-ascend-p7-test BEFORE PRIVATE test/mock) |
| 409 | TARGET_LINK_LIBRARIES(huawei-ascend-p7-test PRIVATE cpuinfo_mock gtest) |
| 410 | ADD_TEST(huawei-ascend-p7-test huawei-ascend-p7-test) |
| 411 | |
| 412 | ADD_EXECUTABLE(huawei-honor-6-test test/mock/huawei-honor-6.cc) |
| 413 | TARGET_INCLUDE_DIRECTORIES(huawei-honor-6-test BEFORE PRIVATE test/mock) |
| 414 | TARGET_LINK_LIBRARIES(huawei-honor-6-test PRIVATE cpuinfo_mock gtest) |
| 415 | ADD_TEST(huawei-honor-6-test huawei-honor-6-test) |
| 416 | |
| 417 | ADD_EXECUTABLE(lenovo-a6600-plus-test test/mock/lenovo-a6600-plus.cc) |
| 418 | TARGET_INCLUDE_DIRECTORIES(lenovo-a6600-plus-test BEFORE PRIVATE test/mock) |
| 419 | TARGET_LINK_LIBRARIES(lenovo-a6600-plus-test PRIVATE cpuinfo_mock gtest) |
| 420 | ADD_TEST(lenovo-a6600-plus-test lenovo-a6600-plus-test) |
| 421 | |
| 422 | ADD_EXECUTABLE(lenovo-vibe-x2-test test/mock/lenovo-vibe-x2.cc) |
| 423 | TARGET_INCLUDE_DIRECTORIES(lenovo-vibe-x2-test BEFORE PRIVATE test/mock) |
| 424 | TARGET_LINK_LIBRARIES(lenovo-vibe-x2-test PRIVATE cpuinfo_mock gtest) |
| 425 | ADD_TEST(lenovo-vibe-x2-test lenovo-vibe-x2-test) |
| 426 | |
| 427 | ADD_EXECUTABLE(lg-k10-eu-test test/mock/lg-k10-eu.cc) |
| 428 | TARGET_INCLUDE_DIRECTORIES(lg-k10-eu-test BEFORE PRIVATE test/mock) |
| 429 | TARGET_LINK_LIBRARIES(lg-k10-eu-test PRIVATE cpuinfo_mock gtest) |
| 430 | ADD_TEST(lg-k10-eu-test lg-k10-eu-test) |
| 431 | |
| 432 | ADD_EXECUTABLE(lg-optimus-g-pro-test test/mock/lg-optimus-g-pro.cc) |
| 433 | TARGET_INCLUDE_DIRECTORIES(lg-optimus-g-pro-test BEFORE PRIVATE test/mock) |
| 434 | TARGET_LINK_LIBRARIES(lg-optimus-g-pro-test PRIVATE cpuinfo_mock gtest) |
| 435 | ADD_TEST(lg-optimus-g-pro-test lg-optimus-g-pro-test) |
| 436 | |
| 437 | ADD_EXECUTABLE(moto-e-gen1-test test/mock/moto-e-gen1.cc) |
| 438 | TARGET_INCLUDE_DIRECTORIES(moto-e-gen1-test BEFORE PRIVATE test/mock) |
| 439 | TARGET_LINK_LIBRARIES(moto-e-gen1-test PRIVATE cpuinfo_mock gtest) |
| 440 | ADD_TEST(moto-e-gen1-test moto-e-gen1-test) |
| 441 | |
| 442 | ADD_EXECUTABLE(moto-g-gen1-test test/mock/moto-g-gen1.cc) |
| 443 | TARGET_INCLUDE_DIRECTORIES(moto-g-gen1-test BEFORE PRIVATE test/mock) |
| 444 | TARGET_LINK_LIBRARIES(moto-g-gen1-test PRIVATE cpuinfo_mock gtest) |
| 445 | ADD_TEST(moto-g-gen1-test moto-g-gen1-test) |
| 446 | |
| 447 | ADD_EXECUTABLE(moto-g-gen2-test test/mock/moto-g-gen2.cc) |
| 448 | TARGET_INCLUDE_DIRECTORIES(moto-g-gen2-test BEFORE PRIVATE test/mock) |
| 449 | TARGET_LINK_LIBRARIES(moto-g-gen2-test PRIVATE cpuinfo_mock gtest) |
| 450 | ADD_TEST(moto-g-gen2-test moto-g-gen2-test) |
| 451 | |
| 452 | ADD_EXECUTABLE(moto-g-gen3-test test/mock/moto-g-gen3.cc) |
| 453 | TARGET_INCLUDE_DIRECTORIES(moto-g-gen3-test BEFORE PRIVATE test/mock) |
| 454 | TARGET_LINK_LIBRARIES(moto-g-gen3-test PRIVATE cpuinfo_mock gtest) |
| 455 | ADD_TEST(moto-g-gen3-test moto-g-gen3-test) |
| 456 | |
| 457 | ADD_EXECUTABLE(moto-g-gen4-test test/mock/moto-g-gen4.cc) |
| 458 | TARGET_INCLUDE_DIRECTORIES(moto-g-gen4-test BEFORE PRIVATE test/mock) |
| 459 | TARGET_LINK_LIBRARIES(moto-g-gen4-test PRIVATE cpuinfo_mock gtest) |
| 460 | ADD_TEST(moto-g-gen4-test moto-g-gen4-test) |
| 461 | |
| 462 | ADD_EXECUTABLE(moto-g-gen5-test test/mock/moto-g-gen5.cc) |
| 463 | TARGET_INCLUDE_DIRECTORIES(moto-g-gen5-test BEFORE PRIVATE test/mock) |
| 464 | TARGET_LINK_LIBRARIES(moto-g-gen5-test PRIVATE cpuinfo_mock gtest) |
| 465 | ADD_TEST(moto-g-gen5-test moto-g-gen5-test) |
| 466 | |
| 467 | ADD_EXECUTABLE(nexus-s-test test/mock/nexus-s.cc) |
| 468 | TARGET_INCLUDE_DIRECTORIES(nexus-s-test BEFORE PRIVATE test/mock) |
| 469 | TARGET_LINK_LIBRARIES(nexus-s-test PRIVATE cpuinfo_mock gtest) |
| 470 | ADD_TEST(nexus-s-test nexus-s-test) |
| 471 | |
| 472 | ADD_EXECUTABLE(nexus4-test test/mock/nexus4.cc) |
| 473 | TARGET_INCLUDE_DIRECTORIES(nexus4-test BEFORE PRIVATE test/mock) |
| 474 | TARGET_LINK_LIBRARIES(nexus4-test PRIVATE cpuinfo_mock gtest) |
| 475 | ADD_TEST(nexus4-test nexus4-test) |
| 476 | |
| 477 | ADD_EXECUTABLE(nexus6-test test/mock/nexus6.cc) |
| 478 | TARGET_INCLUDE_DIRECTORIES(nexus6-test BEFORE PRIVATE test/mock) |
| 479 | TARGET_LINK_LIBRARIES(nexus6-test PRIVATE cpuinfo_mock gtest) |
| 480 | ADD_TEST(nexus6-test nexus6-test) |
| 481 | |
| 482 | ADD_EXECUTABLE(nexus10-test test/mock/nexus10.cc) |
| 483 | TARGET_INCLUDE_DIRECTORIES(nexus10-test BEFORE PRIVATE test/mock) |
| 484 | TARGET_LINK_LIBRARIES(nexus10-test PRIVATE cpuinfo_mock gtest) |
| 485 | ADD_TEST(nexus10-test nexus10-test) |
| 486 | |
| 487 | ADD_EXECUTABLE(padcod-10.1-test test/mock/padcod-10.1.cc) |
| 488 | TARGET_INCLUDE_DIRECTORIES(padcod-10.1-test BEFORE PRIVATE test/mock) |
| 489 | TARGET_LINK_LIBRARIES(padcod-10.1-test PRIVATE cpuinfo_mock gtest) |
| 490 | ADD_TEST(padcod-10.1-test padcod-10.1-test) |
| 491 | |
| 492 | ADD_EXECUTABLE(xiaomi-redmi-2a-test test/mock/xiaomi-redmi-2a.cc) |
| 493 | TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-2a-test BEFORE PRIVATE test/mock) |
| 494 | TARGET_LINK_LIBRARIES(xiaomi-redmi-2a-test PRIVATE cpuinfo_mock gtest) |
| 495 | ADD_TEST(xiaomi-redmi-2a-test xiaomi-redmi-2a-test) |
| 496 | |
| 497 | ADD_EXECUTABLE(xperia-sl-test test/mock/xperia-sl.cc) |
| 498 | TARGET_INCLUDE_DIRECTORIES(xperia-sl-test BEFORE PRIVATE test/mock) |
| 499 | TARGET_LINK_LIBRARIES(xperia-sl-test PRIVATE cpuinfo_mock gtest) |
| 500 | ADD_TEST(xperia-sl-test xperia-sl-test) |
| 501 | ENDIF() |
| 502 | |
| 503 | IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a|aarch64)$") |
| 504 | ADD_EXECUTABLE(alcatel-revvl-test test/mock/alcatel-revvl.cc) |
| 505 | TARGET_INCLUDE_DIRECTORIES(alcatel-revvl-test BEFORE PRIVATE test/mock) |
| 506 | TARGET_LINK_LIBRARIES(alcatel-revvl-test PRIVATE cpuinfo_mock gtest) |
| 507 | ADD_TEST(alcatel-revvl-test alcatel-revvl-test) |
| 508 | |
| 509 | ADD_EXECUTABLE(galaxy-a8-2018-test test/mock/galaxy-a8-2018.cc) |
| 510 | TARGET_INCLUDE_DIRECTORIES(galaxy-a8-2018-test BEFORE PRIVATE test/mock) |
| 511 | TARGET_LINK_LIBRARIES(galaxy-a8-2018-test PRIVATE cpuinfo_mock gtest) |
| 512 | ADD_TEST(galaxy-a8-2018-test galaxy-a8-2018-test) |
| 513 | |
| 514 | ADD_EXECUTABLE(galaxy-c9-pro-test test/mock/galaxy-c9-pro.cc) |
| 515 | TARGET_INCLUDE_DIRECTORIES(galaxy-c9-pro-test BEFORE PRIVATE test/mock) |
| 516 | TARGET_LINK_LIBRARIES(galaxy-c9-pro-test PRIVATE cpuinfo_mock gtest) |
| 517 | ADD_TEST(galaxy-c9-pro-test galaxy-c9-pro-test) |
| 518 | |
| 519 | ADD_EXECUTABLE(galaxy-s6-test test/mock/galaxy-s6.cc) |
| 520 | TARGET_INCLUDE_DIRECTORIES(galaxy-s6-test BEFORE PRIVATE test/mock) |
| 521 | TARGET_LINK_LIBRARIES(galaxy-s6-test PRIVATE cpuinfo_mock gtest) |
| 522 | ADD_TEST(galaxy-s6-test galaxy-s6-test) |
| 523 | |
| 524 | ADD_EXECUTABLE(galaxy-s7-us-test test/mock/galaxy-s7-us.cc) |
| 525 | TARGET_INCLUDE_DIRECTORIES(galaxy-s7-us-test BEFORE PRIVATE test/mock) |
| 526 | TARGET_LINK_LIBRARIES(galaxy-s7-us-test PRIVATE cpuinfo_mock gtest) |
| 527 | ADD_TEST(galaxy-s7-us-test galaxy-s7-us-test) |
| 528 | |
| 529 | ADD_EXECUTABLE(galaxy-s7-global-test test/mock/galaxy-s7-global.cc) |
| 530 | TARGET_INCLUDE_DIRECTORIES(galaxy-s7-global-test BEFORE PRIVATE test/mock) |
| 531 | TARGET_LINK_LIBRARIES(galaxy-s7-global-test PRIVATE cpuinfo_mock gtest) |
| 532 | ADD_TEST(galaxy-s7-global-test galaxy-s7-global-test) |
| 533 | |
| 534 | ADD_EXECUTABLE(galaxy-s8-us-test test/mock/galaxy-s8-us.cc) |
| 535 | TARGET_INCLUDE_DIRECTORIES(galaxy-s8-us-test BEFORE PRIVATE test/mock) |
| 536 | TARGET_LINK_LIBRARIES(galaxy-s8-us-test PRIVATE cpuinfo_mock gtest) |
| 537 | ADD_TEST(galaxy-s8-us-test galaxy-s8-us-test) |
| 538 | |
| 539 | ADD_EXECUTABLE(galaxy-s8-global-test test/mock/galaxy-s8-global.cc) |
| 540 | TARGET_INCLUDE_DIRECTORIES(galaxy-s8-global-test BEFORE PRIVATE test/mock) |
| 541 | TARGET_LINK_LIBRARIES(galaxy-s8-global-test PRIVATE cpuinfo_mock gtest) |
| 542 | ADD_TEST(galaxy-s8-global-test galaxy-s8-global-test) |
| 543 | |
| 544 | ADD_EXECUTABLE(galaxy-s9-us-test test/mock/galaxy-s9-us.cc) |
| 545 | TARGET_INCLUDE_DIRECTORIES(galaxy-s9-us-test BEFORE PRIVATE test/mock) |
| 546 | TARGET_LINK_LIBRARIES(galaxy-s9-us-test PRIVATE cpuinfo_mock gtest) |
| 547 | ADD_TEST(galaxy-s9-us-test galaxy-s9-us-test) |
| 548 | |
| 549 | ADD_EXECUTABLE(galaxy-s9-global-test test/mock/galaxy-s9-global.cc) |
| 550 | TARGET_INCLUDE_DIRECTORIES(galaxy-s9-global-test BEFORE PRIVATE test/mock) |
| 551 | TARGET_LINK_LIBRARIES(galaxy-s9-global-test PRIVATE cpuinfo_mock gtest) |
| 552 | ADD_TEST(galaxy-s9-global-test galaxy-s9-global-test) |
| 553 | |
| 554 | ADD_EXECUTABLE(huawei-mate-8-test test/mock/huawei-mate-8.cc) |
| 555 | TARGET_INCLUDE_DIRECTORIES(huawei-mate-8-test BEFORE PRIVATE test/mock) |
| 556 | TARGET_LINK_LIBRARIES(huawei-mate-8-test PRIVATE cpuinfo_mock gtest) |
| 557 | ADD_TEST(huawei-mate-8-test huawei-mate-8-test) |
| 558 | |
| 559 | ADD_EXECUTABLE(huawei-mate-9-test test/mock/huawei-mate-9.cc) |
| 560 | TARGET_INCLUDE_DIRECTORIES(huawei-mate-9-test BEFORE PRIVATE test/mock) |
| 561 | TARGET_LINK_LIBRARIES(huawei-mate-9-test PRIVATE cpuinfo_mock gtest) |
| 562 | ADD_TEST(huawei-mate-9-test huawei-mate-9-test) |
| 563 | |
| 564 | ADD_EXECUTABLE(huawei-mate-10-test test/mock/huawei-mate-10.cc) |
| 565 | TARGET_INCLUDE_DIRECTORIES(huawei-mate-10-test BEFORE PRIVATE test/mock) |
| 566 | TARGET_LINK_LIBRARIES(huawei-mate-10-test PRIVATE cpuinfo_mock gtest) |
| 567 | ADD_TEST(huawei-mate-10-test huawei-mate-10-test) |
| 568 | |
| 569 | ADD_EXECUTABLE(huawei-mate-20-test test/mock/huawei-mate-20.cc) |
| 570 | TARGET_INCLUDE_DIRECTORIES(huawei-mate-20-test BEFORE PRIVATE test/mock) |
| 571 | TARGET_LINK_LIBRARIES(huawei-mate-20-test PRIVATE cpuinfo_mock gtest) |
| 572 | ADD_TEST(huawei-mate-20-test huawei-mate-20-test) |
| 573 | |
| 574 | ADD_EXECUTABLE(huawei-p8-lite-test test/mock/huawei-p8-lite.cc) |
| 575 | TARGET_INCLUDE_DIRECTORIES(huawei-p8-lite-test BEFORE PRIVATE test/mock) |
| 576 | TARGET_LINK_LIBRARIES(huawei-p8-lite-test PRIVATE cpuinfo_mock gtest) |
| 577 | ADD_TEST(huawei-p8-lite-test huawei-p8-lite-test) |
| 578 | |
| 579 | ADD_EXECUTABLE(huawei-p9-lite-test test/mock/huawei-p9-lite.cc) |
| 580 | TARGET_INCLUDE_DIRECTORIES(huawei-p9-lite-test BEFORE PRIVATE test/mock) |
| 581 | TARGET_LINK_LIBRARIES(huawei-p9-lite-test PRIVATE cpuinfo_mock gtest) |
| 582 | ADD_TEST(huawei-p9-lite-test huawei-p9-lite-test) |
| 583 | |
| 584 | ADD_EXECUTABLE(huawei-p20-pro-test test/mock/huawei-p20-pro.cc) |
| 585 | TARGET_INCLUDE_DIRECTORIES(huawei-p20-pro-test BEFORE PRIVATE test/mock) |
| 586 | TARGET_LINK_LIBRARIES(huawei-p20-pro-test PRIVATE cpuinfo_mock gtest) |
| 587 | ADD_TEST(huawei-p20-pro-test huawei-p20-pro-test) |
| 588 | |
| 589 | ADD_EXECUTABLE(iconia-one-10-test test/mock/iconia-one-10.cc) |
| 590 | TARGET_INCLUDE_DIRECTORIES(iconia-one-10-test BEFORE PRIVATE test/mock) |
| 591 | TARGET_LINK_LIBRARIES(iconia-one-10-test PRIVATE cpuinfo_mock gtest) |
| 592 | ADD_TEST(iconia-one-10-test iconia-one-10-test) |
| 593 | |
| 594 | ADD_EXECUTABLE(meizu-pro-6-test test/mock/meizu-pro-6.cc) |
| 595 | TARGET_INCLUDE_DIRECTORIES(meizu-pro-6-test BEFORE PRIVATE test/mock) |
| 596 | TARGET_LINK_LIBRARIES(meizu-pro-6-test PRIVATE cpuinfo_mock gtest) |
| 597 | ADD_TEST(meizu-pro-6-test meizu-pro-6-test) |
| 598 | |
| 599 | ADD_EXECUTABLE(meizu-pro-6s-test test/mock/meizu-pro-6s.cc) |
| 600 | TARGET_INCLUDE_DIRECTORIES(meizu-pro-6s-test BEFORE PRIVATE test/mock) |
| 601 | TARGET_LINK_LIBRARIES(meizu-pro-6s-test PRIVATE cpuinfo_mock gtest) |
| 602 | ADD_TEST(meizu-pro-6s-test meizu-pro-6s-test) |
| 603 | |
| 604 | ADD_EXECUTABLE(meizu-pro-7-plus-test test/mock/meizu-pro-7-plus.cc) |
| 605 | TARGET_INCLUDE_DIRECTORIES(meizu-pro-7-plus-test BEFORE PRIVATE test/mock) |
| 606 | TARGET_LINK_LIBRARIES(meizu-pro-7-plus-test PRIVATE cpuinfo_mock gtest) |
| 607 | ADD_TEST(meizu-pro-7-plus-test meizu-pro-7-plus-test) |
| 608 | |
| 609 | ADD_EXECUTABLE(nexus5x-test test/mock/nexus5x.cc) |
| 610 | TARGET_INCLUDE_DIRECTORIES(nexus5x-test BEFORE PRIVATE test/mock) |
| 611 | TARGET_LINK_LIBRARIES(nexus5x-test PRIVATE cpuinfo_mock gtest) |
| 612 | ADD_TEST(nexus5x-test nexus5x-test) |
| 613 | |
| 614 | ADD_EXECUTABLE(nexus6p-test test/mock/nexus6p.cc) |
| 615 | TARGET_INCLUDE_DIRECTORIES(nexus6p-test BEFORE PRIVATE test/mock) |
| 616 | TARGET_LINK_LIBRARIES(nexus6p-test PRIVATE cpuinfo_mock gtest) |
| 617 | ADD_TEST(nexus6p-test nexus6p-test) |
| 618 | |
| 619 | ADD_EXECUTABLE(nexus9-test test/mock/nexus9.cc) |
| 620 | TARGET_INCLUDE_DIRECTORIES(nexus9-test BEFORE PRIVATE test/mock) |
| 621 | TARGET_LINK_LIBRARIES(nexus9-test PRIVATE cpuinfo_mock gtest) |
| 622 | ADD_TEST(nexus9-test nexus9-test) |
| 623 | |
| 624 | ADD_EXECUTABLE(oneplus-3t-test test/mock/oneplus-3t.cc) |
| 625 | TARGET_INCLUDE_DIRECTORIES(oneplus-3t-test BEFORE PRIVATE test/mock) |
| 626 | TARGET_LINK_LIBRARIES(oneplus-3t-test PRIVATE cpuinfo_mock gtest) |
| 627 | ADD_TEST(oneplus-3t-test oneplus-3t-test) |
| 628 | |
| 629 | ADD_EXECUTABLE(oneplus-5-test test/mock/oneplus-5.cc) |
| 630 | TARGET_INCLUDE_DIRECTORIES(oneplus-5-test BEFORE PRIVATE test/mock) |
| 631 | TARGET_LINK_LIBRARIES(oneplus-5-test PRIVATE cpuinfo_mock gtest) |
| 632 | ADD_TEST(oneplus-5-test oneplus-5-test) |
| 633 | |
| 634 | ADD_EXECUTABLE(oneplus-5t-test test/mock/oneplus-5t.cc) |
| 635 | TARGET_INCLUDE_DIRECTORIES(oneplus-5t-test BEFORE PRIVATE test/mock) |
| 636 | TARGET_LINK_LIBRARIES(oneplus-5t-test PRIVATE cpuinfo_mock gtest) |
| 637 | ADD_TEST(oneplus-5t-test oneplus-5t-test) |
| 638 | |
| 639 | ADD_EXECUTABLE(oppo-a37-test test/mock/oppo-a37.cc) |
| 640 | TARGET_INCLUDE_DIRECTORIES(oppo-a37-test BEFORE PRIVATE test/mock) |
| 641 | TARGET_LINK_LIBRARIES(oppo-a37-test PRIVATE cpuinfo_mock gtest) |
| 642 | ADD_TEST(oppo-a37-test oppo-a37-test) |
| 643 | |
| 644 | ADD_EXECUTABLE(oppo-r9-test test/mock/oppo-r9.cc) |
| 645 | TARGET_INCLUDE_DIRECTORIES(oppo-r9-test BEFORE PRIVATE test/mock) |
| 646 | TARGET_LINK_LIBRARIES(oppo-r9-test PRIVATE cpuinfo_mock gtest) |
| 647 | ADD_TEST(oppo-r9-test oppo-r9-test) |
| 648 | |
| 649 | ADD_EXECUTABLE(oppo-r15-test test/mock/oppo-r15.cc) |
| 650 | TARGET_INCLUDE_DIRECTORIES(oppo-r15-test BEFORE PRIVATE test/mock) |
| 651 | TARGET_LINK_LIBRARIES(oppo-r15-test PRIVATE cpuinfo_mock gtest) |
| 652 | ADD_TEST(oppo-r15-test oppo-r15-test) |
| 653 | |
| 654 | ADD_EXECUTABLE(pixel-test test/mock/pixel.cc) |
| 655 | TARGET_INCLUDE_DIRECTORIES(pixel-test BEFORE PRIVATE test/mock) |
| 656 | TARGET_LINK_LIBRARIES(pixel-test PRIVATE cpuinfo_mock gtest) |
| 657 | ADD_TEST(pixel-test pixel-test) |
| 658 | |
| 659 | ADD_EXECUTABLE(pixel-c-test test/mock/pixel-c.cc) |
| 660 | TARGET_INCLUDE_DIRECTORIES(pixel-c-test BEFORE PRIVATE test/mock) |
| 661 | TARGET_LINK_LIBRARIES(pixel-c-test PRIVATE cpuinfo_mock gtest) |
| 662 | ADD_TEST(pixel-c-test pixel-c-test) |
| 663 | |
| 664 | ADD_EXECUTABLE(pixel-xl-test test/mock/pixel-xl.cc) |
| 665 | TARGET_INCLUDE_DIRECTORIES(pixel-xl-test BEFORE PRIVATE test/mock) |
| 666 | TARGET_LINK_LIBRARIES(pixel-xl-test PRIVATE cpuinfo_mock gtest) |
| 667 | ADD_TEST(pixel-xl-test pixel-xl-test) |
| 668 | |
| 669 | ADD_EXECUTABLE(pixel-2-xl-test test/mock/pixel-2-xl.cc) |
| 670 | TARGET_INCLUDE_DIRECTORIES(pixel-2-xl-test BEFORE PRIVATE test/mock) |
| 671 | TARGET_LINK_LIBRARIES(pixel-2-xl-test PRIVATE cpuinfo_mock gtest) |
| 672 | ADD_TEST(pixel-2-xl-test pixel-2-xl-test) |
| 673 | |
| 674 | ADD_EXECUTABLE(xiaomi-mi-5c-test test/mock/xiaomi-mi-5c.cc) |
| 675 | TARGET_INCLUDE_DIRECTORIES(xiaomi-mi-5c-test BEFORE PRIVATE test/mock) |
| 676 | TARGET_LINK_LIBRARIES(xiaomi-mi-5c-test PRIVATE cpuinfo_mock gtest) |
| 677 | ADD_TEST(xiaomi-mi-5c-test xiaomi-mi-5c-test) |
| 678 | |
| 679 | ADD_EXECUTABLE(xiaomi-redmi-note-3-test test/mock/xiaomi-redmi-note-3.cc) |
| 680 | TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-note-3-test BEFORE PRIVATE test/mock) |
| 681 | TARGET_LINK_LIBRARIES(xiaomi-redmi-note-3-test PRIVATE cpuinfo_mock gtest) |
| 682 | ADD_TEST(xiaomi-redmi-note-3-test xiaomi-redmi-note-3-test) |
| 683 | |
| 684 | ADD_EXECUTABLE(xiaomi-redmi-note-4-test test/mock/xiaomi-redmi-note-4.cc) |
| 685 | TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-note-4-test BEFORE PRIVATE test/mock) |
| 686 | TARGET_LINK_LIBRARIES(xiaomi-redmi-note-4-test PRIVATE cpuinfo_mock gtest) |
| 687 | ADD_TEST(xiaomi-redmi-note-4-test xiaomi-redmi-note-4-test) |
| 688 | |
| 689 | ADD_EXECUTABLE(xperia-c4-dual-test test/mock/xperia-c4-dual.cc) |
| 690 | TARGET_INCLUDE_DIRECTORIES(xperia-c4-dual-test BEFORE PRIVATE test/mock) |
| 691 | TARGET_LINK_LIBRARIES(xperia-c4-dual-test PRIVATE cpuinfo_mock gtest) |
| 692 | ADD_TEST(xperia-c4-dual-test xperia-c4-dual-test) |
| 693 | ENDIF() |
| 694 | |
| 695 | IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|x86_64)$") |
| 696 | ADD_EXECUTABLE(alldocube-iwork8-test test/mock/alldocube-iwork8.cc) |
| 697 | TARGET_INCLUDE_DIRECTORIES(alldocube-iwork8-test BEFORE PRIVATE test/mock) |
| 698 | TARGET_LINK_LIBRARIES(alldocube-iwork8-test PRIVATE cpuinfo_mock gtest) |
| 699 | ADD_TEST(alldocube-iwork8-test alldocube-iwork8-test) |
| 700 | |
| 701 | ADD_EXECUTABLE(leagoo-t5c-test test/mock/leagoo-t5c.cc) |
| 702 | TARGET_INCLUDE_DIRECTORIES(leagoo-t5c-test BEFORE PRIVATE test/mock) |
| 703 | TARGET_LINK_LIBRARIES(leagoo-t5c-test PRIVATE cpuinfo_mock gtest) |
| 704 | ADD_TEST(leagoo-t5c-test leagoo-t5c-test) |
| 705 | |
| 706 | ADD_EXECUTABLE(memo-pad-7-test test/mock/memo-pad-7.cc) |
| 707 | TARGET_INCLUDE_DIRECTORIES(memo-pad-7-test BEFORE PRIVATE test/mock) |
| 708 | TARGET_LINK_LIBRARIES(memo-pad-7-test PRIVATE cpuinfo_mock gtest) |
| 709 | ADD_TEST(memo-pad-7-test memo-pad-7-test) |
| 710 | |
| 711 | ADD_EXECUTABLE(zenfone-c-test test/mock/zenfone-c.cc) |
| 712 | TARGET_INCLUDE_DIRECTORIES(zenfone-c-test BEFORE PRIVATE test/mock) |
| 713 | TARGET_LINK_LIBRARIES(zenfone-c-test PRIVATE cpuinfo_mock gtest) |
| 714 | ADD_TEST(zenfone-c-test zenfone-c-test) |
| 715 | |
| 716 | ADD_EXECUTABLE(zenfone-2-test test/mock/zenfone-2.cc) |
| 717 | TARGET_INCLUDE_DIRECTORIES(zenfone-2-test BEFORE PRIVATE test/mock) |
| 718 | TARGET_LINK_LIBRARIES(zenfone-2-test PRIVATE cpuinfo_mock gtest) |
| 719 | ADD_TEST(zenfone-2-test zenfone-2-test) |
| 720 | |
| 721 | ADD_EXECUTABLE(zenfone-2e-test test/mock/zenfone-2e.cc) |
| 722 | TARGET_INCLUDE_DIRECTORIES(zenfone-2e-test BEFORE PRIVATE test/mock) |
| 723 | TARGET_LINK_LIBRARIES(zenfone-2e-test PRIVATE cpuinfo_mock gtest) |
| 724 | ADD_TEST(zenfone-2e-test zenfone-2e-test) |
| 725 | ENDIF() |
| 726 | ENDIF() |
| 727 | |
| 728 | # ---[ cpuinfo unit tests |
| 729 | IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_UNIT_TESTS) |
| 730 | ADD_EXECUTABLE(init-test test/init.cc) |
| 731 | CPUINFO_TARGET_ENABLE_CXX11(init-test) |
| 732 | CPUINFO_TARGET_RUNTIME_LIBRARY(init-test) |
| 733 | TARGET_LINK_LIBRARIES(init-test PRIVATE cpuinfo gtest gtest_main) |
| 734 | ADD_TEST(init-test init-test) |
| 735 | |
| 736 | IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") |
| 737 | ADD_EXECUTABLE(get-current-test test/get-current.cc) |
| 738 | CPUINFO_TARGET_ENABLE_CXX11(get-current-test) |
| 739 | CPUINFO_TARGET_RUNTIME_LIBRARY(get-current-test) |
| 740 | TARGET_LINK_LIBRARIES(get-current-test PRIVATE cpuinfo gtest gtest_main) |
| 741 | ADD_TEST(get-current-test get-current-test) |
| 742 | ENDIF() |
| 743 | |
| 744 | IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86_64)$") |
| 745 | ADD_EXECUTABLE(brand-string-test test/name/brand-string.cc) |
| 746 | CPUINFO_TARGET_ENABLE_CXX11(brand-string-test) |
| 747 | CPUINFO_TARGET_RUNTIME_LIBRARY(brand-string-test) |
| 748 | TARGET_LINK_LIBRARIES(brand-string-test PRIVATE cpuinfo_internals gtest gtest_main) |
| 749 | ADD_TEST(brand-string-test brand-string-test) |
| 750 | ENDIF() |
| 751 | |
| 752 | IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv[5-8].*|aarch64)$") |
| 753 | ADD_LIBRARY(android_properties_interface STATIC test/name/android-properties-interface.c) |
| 754 | CPUINFO_TARGET_ENABLE_C99(android_properties_interface) |
| 755 | CPUINFO_TARGET_RUNTIME_LIBRARY(android_properties_interface) |
| 756 | TARGET_LINK_LIBRARIES(android_properties_interface PRIVATE cpuinfo_internals) |
| 757 | |
| 758 | ADD_EXECUTABLE(chipset-test |
| 759 | test/name/proc-cpuinfo-hardware.cc |
| 760 | test/name/ro-product-board.cc |
| 761 | test/name/ro-board-platform.cc |
| 762 | test/name/ro-mediatek-platform.cc |
| 763 | test/name/ro-arch.cc |
| 764 | test/name/ro-chipname.cc |
| 765 | test/name/android-properties.cc) |
| 766 | CPUINFO_TARGET_ENABLE_CXX11(chipset-test) |
| 767 | CPUINFO_TARGET_RUNTIME_LIBRARY(chipset-test) |
| 768 | TARGET_LINK_LIBRARIES(chipset-test PRIVATE android_properties_interface gtest gtest_main) |
| 769 | ADD_TEST(chipset-test chipset-test) |
| 770 | |
| 771 | ADD_EXECUTABLE(cache-test test/arm-cache.cc) |
| 772 | CPUINFO_TARGET_ENABLE_CXX11(cache-test) |
| 773 | CPUINFO_TARGET_RUNTIME_LIBRARY(cache-test) |
| 774 | TARGET_COMPILE_DEFINITIONS(cache-test PRIVATE __STDC_LIMIT_MACROS=1 __STDC_CONSTANT_MACROS=1) |
| 775 | TARGET_LINK_LIBRARIES(cache-test PRIVATE cpuinfo_internals gtest gtest_main) |
| 776 | ADD_TEST(cache-test, cache-test) |
| 777 | ENDIF() |
| 778 | ENDIF() |
| 779 | |
| 780 | # ---[ Helper and debug tools |
| 781 | IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_TOOLS) |
| 782 | ADD_EXECUTABLE(isa-info tools/isa-info.c) |
| 783 | CPUINFO_TARGET_ENABLE_C99(isa-info) |
| 784 | CPUINFO_TARGET_RUNTIME_LIBRARY(isa-info) |
| 785 | TARGET_LINK_LIBRARIES(isa-info PRIVATE cpuinfo) |
| 786 | INSTALL(TARGETS isa-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 787 | |
| 788 | ADD_EXECUTABLE(cpu-info tools/cpu-info.c) |
| 789 | CPUINFO_TARGET_ENABLE_C99(cpu-info) |
| 790 | CPUINFO_TARGET_RUNTIME_LIBRARY(cpu-info) |
| 791 | TARGET_LINK_LIBRARIES(cpu-info PRIVATE cpuinfo) |
| 792 | INSTALL(TARGETS cpu-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 793 | |
| 794 | ADD_EXECUTABLE(cache-info tools/cache-info.c) |
| 795 | CPUINFO_TARGET_ENABLE_C99(cache-info) |
| 796 | CPUINFO_TARGET_RUNTIME_LIBRARY(cache-info) |
| 797 | TARGET_LINK_LIBRARIES(cache-info PRIVATE cpuinfo) |
| 798 | INSTALL(TARGETS cache-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 799 | |
| 800 | IF(CMAKE_SYSTEM_NAME MATCHES "^(Android|Linux)$" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv[5-8].*|aarch64)$") |
| 801 | ADD_EXECUTABLE(auxv-dump tools/auxv-dump.c) |
| 802 | CPUINFO_TARGET_ENABLE_C99(auxv-dump) |
| 803 | CPUINFO_TARGET_RUNTIME_LIBRARY(auxv-dump) |
| 804 | TARGET_LINK_LIBRARIES(auxv-dump PRIVATE ${CMAKE_DL_LIBS} cpuinfo) |
| 805 | |
| 806 | ADD_EXECUTABLE(cpuinfo-dump tools/cpuinfo-dump.c) |
| 807 | CPUINFO_TARGET_ENABLE_C99(cpuinfo-dump) |
| 808 | CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo-dump) |
| 809 | ENDIF() |
| 810 | |
| 811 | IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86_64)$") |
| 812 | ADD_EXECUTABLE(cpuid-dump tools/cpuid-dump.c) |
| 813 | CPUINFO_TARGET_ENABLE_C99(cpuid-dump) |
| 814 | CPUINFO_TARGET_RUNTIME_LIBRARY(cpuid-dump) |
| 815 | TARGET_INCLUDE_DIRECTORIES(cpuid-dump BEFORE PRIVATE src) |
| 816 | TARGET_INCLUDE_DIRECTORIES(cpuid-dump BEFORE PRIVATE include) |
| 817 | INSTALL(TARGETS cpuid-dump RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 818 | ENDIF() |
| 819 | ENDIF() |