blob: a71aede58c7a3ec3e5cbff6827035c19027ecb34 [file] [log] [blame]
Ashkan Aliabadi0e6bde92020-01-21 14:15:03 -08001CMAKE_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()