1CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) 2 3INCLUDE(GNUInstallDirs) 4 5# ---[ Project and semantic versioning. 6PROJECT(cpuinfo C CXX) 7 8# ---[ Options. 9SET(CPUINFO_LIBRARY_TYPE "default" CACHE STRING "Type of cpuinfo library (shared, static, or default) to build") 10SET_PROPERTY(CACHE CPUINFO_LIBRARY_TYPE PROPERTY STRINGS default static shared) 11SET(CPUINFO_RUNTIME_TYPE "default" CACHE STRING "Type of runtime library (shared, static, or default) to use") 12SET_PROPERTY(CACHE CPUINFO_RUNTIME_TYPE PROPERTY STRINGS default static shared) 13SET(CPUINFO_LOG_LEVEL "default" CACHE STRING "Minimum logging level (info with lower severity will be ignored)") 14SET_PROPERTY(CACHE CPUINFO_LOG_LEVEL PROPERTY STRINGS default debug info warning error fatal none) 15OPTION(CPUINFO_BUILD_TOOLS "Build command-line tools" ON) 16OPTION(CPUINFO_BUILD_UNIT_TESTS "Build cpuinfo unit tests" ON) 17OPTION(CPUINFO_BUILD_MOCK_TESTS "Build cpuinfo mock tests" ON) 18OPTION(CPUINFO_BUILD_BENCHMARKS "Build cpuinfo micro-benchmarks" ON) 19 20# ---[ CMake options 21IF(CPUINFO_BUILD_UNIT_TESTS OR CPUINFO_BUILD_MOCK_TESTS) 22 ENABLE_TESTING() 23ENDIF() 24 25MACRO(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() 35ENDMACRO() 36 37MACRO(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() 47ENDMACRO() 48 49MACRO(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() 59ENDMACRO() 60 61# ---[ Build flags 62SET(CPUINFO_SUPPORTED_PLATFORM TRUE) 63IF(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() 70ELSEIF(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) 75ENDIF() 76 77IF(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) 82ELSEIF(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() 89ENDIF() 90 91# ---[ Download deps 92SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps 93 CACHE PATH "Confu-style dependencies source directory") 94SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps 95 CACHE PATH "Confu-style dependencies binary directory") 96 97IF(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() 107ENDIF() 108 109IF(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() 119ENDIF() 120 121# ---[ cpuinfo library 122SET(CPUINFO_SRCS 123 src/init.c 124 src/api.c) 125 126IF(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() 193ENDIF() 194 195IF(CPUINFO_LIBRARY_TYPE STREQUAL "default") 196 ADD_LIBRARY(cpuinfo ${CPUINFO_SRCS}) 197ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "shared") 198 ADD_LIBRARY(cpuinfo SHARED ${CPUINFO_SRCS}) 199ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "static") 200 ADD_LIBRARY(cpuinfo STATIC ${CPUINFO_SRCS}) 201ELSE() 202 MESSAGE(FATAL_ERROR "Unsupported library type ${CPUINFO_LIBRARY_TYPE}") 203ENDIF() 204ADD_LIBRARY(cpuinfo_internals STATIC ${CPUINFO_SRCS}) 205CPUINFO_TARGET_ENABLE_C99(cpuinfo) 206CPUINFO_TARGET_ENABLE_C99(cpuinfo_internals) 207CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo) 208SET_TARGET_PROPERTIES(cpuinfo PROPERTIES PUBLIC_HEADER include/cpuinfo.h) 209TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PUBLIC include) 210TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PRIVATE src) 211TARGET_INCLUDE_DIRECTORIES(cpuinfo_internals BEFORE PUBLIC include src) 212IF(CPUINFO_LOG_LEVEL STREQUAL "default") 213 # default logging level: error (subject to change) 214 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2) 215ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "debug") 216 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=5) 217ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "info") 218 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=4) 219ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "warning") 220 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=3) 221ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "error") 222 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2) 223ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "fatal") 224 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=1) 225ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "none") 226 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=0) 227ELSE() 228 MESSAGE(FATAL_ERROR "Unsupported logging level ${CPUINFO_LOG_LEVEL}") 229ENDIF() 230TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE CPUINFO_LOG_LEVEL=0) 231 232IF(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() 240ELSE() 241 TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=0) 242ENDIF() 243 244# ---[ cpuinfo dependencies: clog 245IF(NOT DEFINED CLOG_SOURCE_DIR) 246 SET(CLOG_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/clog") 247ENDIF() 248IF(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) 255ENDIF() 256TARGET_LINK_LIBRARIES(cpuinfo PRIVATE clog) 257TARGET_LINK_LIBRARIES(cpuinfo_internals PRIVATE clog) 258 259INSTALL(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 265IF(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) 281ENDIF() 282 283IF(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() 295ENDIF() 296 297# ---[ cpuinfo mock library and mock tests 298IF(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() 726ENDIF() 727 728# ---[ cpuinfo unit tests 729IF(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() 778ENDIF() 779 780# ---[ Helper and debug tools 781IF(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() 819ENDIF() 820