blob: 7cdbcaf25d82c7c8f76ecbd6d477f3fcc4cbabbc [file] [log] [blame]
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -07001CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
Marat Dukhan3645b922017-10-13 17:03:35 -04002
3INCLUDE(GNUInstallDirs)
4
5# ---[ Project and semantic versioning.
Marat Dukhan63d41a52017-10-26 00:37:12 +00006PROJECT(cpuinfo C CXX)
Marat Dukhan3645b922017-10-13 17:03:35 -04007
8# ---[ Options.
Marat Dukhandaafc282018-01-31 23:55:05 -08009SET(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)
Marat Dukhand0222b42018-03-26 11:19:48 -070011SET(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)
Marat Dukhancf70aee2018-03-24 23:21:02 -070013IF(ANDROID)
14 OPTION(CPUINFO_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" OFF)
15ELSE()
16 OPTION(CPUINFO_LOG_TO_STDIO "Log errors, warnings, and information to stdout/stderr" ON)
17ENDIF()
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -070018OPTION(CPUINFO_BUILD_TOOLS "Build command-line tools" ON)
Marat Dukhancc44bf32017-12-18 17:45:48 -080019OPTION(CPUINFO_BUILD_UNIT_TESTS "Build cpuinfo unit tests" ON)
20OPTION(CPUINFO_BUILD_MOCK_TESTS "Build cpuinfo mock tests" ON)
21OPTION(CPUINFO_BUILD_BENCHMARKS "Build cpuinfo micro-benchmarks" ON)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -070022
23# ---[ CMake options
24IF(CPUINFO_BUILD_UNIT_TESTS OR CPUINFO_BUILD_MOCK_TESTS)
25 ENABLE_TESTING()
26ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -040027
Marat Dukhancddf01b2018-02-25 01:37:55 +010028MACRO(CPUINFO_TARGET_ENABLE_C99 target)
29 IF(${CMAKE_VERSION} VERSION_LESS "3.1")
30 IF(NOT MSVC)
31 TARGET_COMPILE_OPTIONS(${target} PRIVATE -std=c99)
32 ENDIF()
33 ELSE()
34 SET_TARGET_PROPERTIES(${target} PROPERTIES
35 C_STANDARD 99
36 C_EXTENSIONS NO)
37 ENDIF()
38ENDMACRO()
Marat Dukhan3645b922017-10-13 17:03:35 -040039
Marat Dukhancddf01b2018-02-25 01:37:55 +010040MACRO(CPUINFO_TARGET_ENABLE_CXX11 target)
41 IF(${CMAKE_VERSION} VERSION_LESS "3.1")
42 IF(NOT MSVC)
43 TARGET_COMPILE_OPTIONS(${target} PRIVATE -std=c++11)
44 ENDIF()
45 ELSE()
46 SET_TARGET_PROPERTIES(${target} PROPERTIES
47 CXX_STANDARD 11
48 CXX_EXTENSIONS NO)
49 ENDIF()
50ENDMACRO()
51
Marat Dukhand0222b42018-03-26 11:19:48 -070052MACRO(CPUINFO_TARGET_RUNTIME_LIBRARY target)
53 IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "default")
54 IF(CPUINFO_RUNTIME_TYPE STREQUAL "shared")
55 TARGET_COMPILE_OPTIONS(${target} PRIVATE
56 "/MD$<$<CONFIG:Debug>:d>")
57 ELSEIF(CPUINFO_RUNTIME_TYPE STREQUAL "static")
58 TARGET_COMPILE_OPTIONS(${target} PRIVATE
59 "/MT$<$<CONFIG:Debug>:d>")
60 ENDIF()
61 ENDIF()
62ENDMACRO()
63
Marat Dukhancddf01b2018-02-25 01:37:55 +010064# ---[ Build flags
Marat Dukhan249d3142018-03-15 23:20:11 -070065SET(CPUINFO_SUPPORTED_PLATFORM TRUE)
Marat Dukhan3645b922017-10-13 17:03:35 -040066IF(NOT CMAKE_SYSTEM_PROCESSOR)
Marat Dukhane135eff2018-02-01 00:39:31 -080067 IF(NOT IOS)
Marat Dukhan249d3142018-03-15 23:20:11 -070068 MESSAGE(WARNING
69 "Target processor architecture is not specified. "
70 "cpuinfo will compile, but cpuinfo_initialize() will always fail.")
71 SET(CPUINFO_SUPPORTED_PLATFORM FALSE)
Marat Dukhane135eff2018-02-01 00:39:31 -080072 ENDIF()
Marat Dukhanb2fc4ab2018-02-19 22:43:26 -080073ELSEIF(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|AMD64|x86_64|armv5te|armv7|armv7f|armv7s|armv7k|armv7-a|armv7l|arm64|aarch64)$")
Marat Dukhan249d3142018-03-15 23:20:11 -070074 MESSAGE(WARNING
75 "Target processor architecture \"${CMAKE_SYSTEM_PROCESSOR}\" is not supported in cpuinfo. "
76 "cpuinfo will compile, but cpuinfo_initialize() will always fail.")
77 SET(CPUINFO_SUPPORTED_PLATFORM FALSE)
Marat Dukhan3645b922017-10-13 17:03:35 -040078ENDIF()
79
80IF(NOT CMAKE_SYSTEM_NAME)
Marat Dukhan249d3142018-03-15 23:20:11 -070081 MESSAGE(WARNING
82 "Target operating system is not specified. "
83 "cpuinfo will compile, but cpuinfo_initialize() will always fail.")
84 SET(CPUINFO_SUPPORTED_PLATFORM FALSE)
Marat Dukhanb2fc4ab2018-02-19 22:43:26 -080085ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Windows|Darwin|Linux|Android)$")
Marat Dukhan249d3142018-03-15 23:20:11 -070086 MESSAGE(WARNING
87 "Target operating system \"${CMAKE_SYSTEM_NAME}\" is not supported in cpuinfo. "
88 "cpuinfo will compile, but cpuinfo_initialize() will always fail.")
89 SET(CPUINFO_SUPPORTED_PLATFORM FALSE)
Marat Dukhan3645b922017-10-13 17:03:35 -040090ENDIF()
91
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -070092# ---[ Download deps
93SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps
94 CACHE PATH "Confu-style dependencies source directory")
95SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
96 CACHE PATH "Confu-style dependencies binary directory")
97
Marat Dukhand5817162018-01-31 18:39:05 -080098IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
Marat Dukhan249d3142018-03-15 23:20:11 -070099 IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
Marat Dukhand5817162018-01-31 18:39:05 -0800100 MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
Marat Dukhand416acf2018-02-24 16:36:59 +0100101 CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
Marat Dukhand5817162018-01-31 18:39:05 -0800102 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
Marat Dukhand416acf2018-02-24 16:36:59 +0100103 WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
Marat Dukhand5817162018-01-31 18:39:05 -0800104 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build .
Marat Dukhand416acf2018-02-24 16:36:59 +0100105 WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
Marat Dukhand5817162018-01-31 18:39:05 -0800106 SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory")
107 ENDIF()
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700108ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400109
Marat Dukhan249d3142018-03-15 23:20:11 -0700110IF(CPUINFO_BUILD_BENCHMARKS)
111 IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR)
112 MESSAGE(STATUS "Downloading Google Benchmark to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)")
113 CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt")
114 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
115 WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download")
116 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build .
117 WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download")
118 SET(GOOGLEBENCHMARK_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark" CACHE STRING "Google Benchmark source directory")
119 ENDIF()
Marat Dukhancc44bf32017-12-18 17:45:48 -0800120ENDIF()
121
Marat Dukhan3645b922017-10-13 17:03:35 -0400122# ---[ cpuinfo library
123SET(CPUINFO_SRCS
124 src/init.c
125 src/api.c
126 src/log.c)
127
Marat Dukhan249d3142018-03-15 23:20:11 -0700128IF(CPUINFO_SUPPORTED_PLATFORM)
129 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|x86_64|AMD64)$")
Marat Dukhan3645b922017-10-13 17:03:35 -0400130 LIST(APPEND CPUINFO_SRCS
Marat Dukhan249d3142018-03-15 23:20:11 -0700131 src/x86/init.c
132 src/x86/info.c
133 src/x86/vendor.c
134 src/x86/uarch.c
135 src/x86/name.c
136 src/x86/topology.c
137 src/x86/isa.c
138 src/x86/cache/init.c
139 src/x86/cache/descriptor.c
140 src/x86/cache/deterministic.c)
141 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
142 LIST(APPEND CPUINFO_SRCS
143 src/x86/linux/init.c
144 src/x86/linux/cpuinfo.c)
145 ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
146 LIST(APPEND CPUINFO_SRCS src/x86/mach/init.c)
147 ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
148 LIST(APPEND CPUINFO_SRCS src/x86/windows/init.c)
Marat Dukhan3985cf82017-12-18 18:58:26 -0800149 ENDIF()
Marat Dukhan249d3142018-03-15 23:20:11 -0700150 ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7|armv7f|armv7s|armv7k|armv7-a|armv7l|arm64|aarch64)$" OR IOS)
151 LIST(APPEND CPUINFO_SRCS
152 src/arm/uarch.c
153 src/arm/cache.c)
154 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
155 LIST(APPEND CPUINFO_SRCS
156 src/arm/linux/init.c
157 src/arm/linux/cpuinfo.c
158 src/arm/linux/clusters.c
159 src/arm/linux/chipset.c
160 src/arm/linux/midr.c
161 src/arm/linux/hwcap.c)
162 IF(CMAKE_SYSTEM_NAME STREQUAL "Android")
163 LIST(APPEND CPUINFO_SRCS src/arm/android/gpu.c)
Marat Dukhan7b738882017-10-18 16:59:28 -0700164 ENDIF()
Marat Dukhan249d3142018-03-15 23:20:11 -0700165 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7l|armv7-a)$")
166 LIST(APPEND CPUINFO_SRCS src/arm/linux/aarch32-isa.c)
167 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND ANDROID_ABI STREQUAL "armeabi")
168 SET_SOURCE_FILES_PROPERTIES(src/arm/linux/aarch32-isa.c PROPERTIES COMPILE_FLAGS -marm)
169 ENDIF()
170 ELSEIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
171 LIST(APPEND CPUINFO_SRCS src/arm/linux/aarch64-isa.c)
172 ENDIF()
173 ELSEIF(IOS)
174 LIST(APPEND CPUINFO_SRCS
175 src/arm/mach/init.c
176 src/gpu/gles-ios.m)
177 SET_SOURCE_FILES_PROPERTIES(src/gpu/gles-ios.m PROPERTIES COMPILE_FLAGS -fobjc-arc)
Marat Dukhan7b738882017-10-18 16:59:28 -0700178 ENDIF()
Marat Dukhan249d3142018-03-15 23:20:11 -0700179 IF(CMAKE_SYSTEM_NAME STREQUAL "Android")
180 LIST(APPEND CPUINFO_SRCS
181 src/arm/android/properties.c)
182 ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400183 ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400184
Marat Dukhan249d3142018-03-15 23:20:11 -0700185 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
186 LIST(APPEND CPUINFO_SRCS
187 src/linux/smallfile.c
188 src/linux/multiline.c
189 src/linux/current.c
190 src/linux/cpulist.c
191 src/linux/processors.c)
192 IF(CMAKE_SYSTEM_NAME STREQUAL "Android")
193 LIST(APPEND CPUINFO_SRCS
194 src/gpu/gles2.c
195 src/linux/gpu.c)
196 ENDIF()
197 ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
198 LIST(APPEND CPUINFO_SRCS src/mach/topology.c)
Marat Dukhan3645b922017-10-13 17:03:35 -0400199 ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400200
Marat Dukhan249d3142018-03-15 23:20:11 -0700201 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
202 SET(CMAKE_THREAD_PREFER_PTHREAD TRUE)
203 SET(THREADS_PREFER_PTHREAD_FLAG TRUE)
204 FIND_PACKAGE(Threads REQUIRED)
205 ENDIF()
Marat Dukhanbfff3482017-10-15 22:24:32 +0000206ENDIF()
207
Marat Dukhandaafc282018-01-31 23:55:05 -0800208IF(CPUINFO_LIBRARY_TYPE STREQUAL "default")
209 ADD_LIBRARY(cpuinfo ${CPUINFO_SRCS})
210ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "shared")
211 ADD_LIBRARY(cpuinfo SHARED ${CPUINFO_SRCS})
212ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "static")
213 ADD_LIBRARY(cpuinfo STATIC ${CPUINFO_SRCS})
214ELSE()
215 MESSAGE(FATAL_ERROR "Unsupported library type ${CPUINFO_LIBRARY_TYPE}")
216ENDIF()
Marat Dukhancddf01b2018-02-25 01:37:55 +0100217CPUINFO_TARGET_ENABLE_C99(cpuinfo)
Marat Dukhand0222b42018-03-26 11:19:48 -0700218CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo)
Marat Dukhan3645b922017-10-13 17:03:35 -0400219SET_TARGET_PROPERTIES(cpuinfo PROPERTIES PUBLIC_HEADER include/cpuinfo.h)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700220TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PUBLIC include)
221TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PRIVATE src)
Marat Dukhancf70aee2018-03-24 23:21:02 -0700222IF(CPUINFO_LOG_TO_STDIO)
223 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_TO_STDIO=1)
224ELSE()
225 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_TO_STDIO=0)
226ENDIF()
Marat Dukhan249d3142018-03-15 23:20:11 -0700227IF(CPUINFO_SUPPORTED_PLATFORM)
228 TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=1)
229 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
230 TARGET_LINK_LIBRARIES(cpuinfo PUBLIC ${CMAKE_THREAD_LIBS_INIT})
231 ENDIF()
232 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
233 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE _GNU_SOURCE=1)
234 ENDIF()
Marat Dukhancf70aee2018-03-24 23:21:02 -0700235 IF(CMAKE_SYSTEM_NAME STREQUAL "Android")
236 TARGET_LINK_LIBRARIES(cpuinfo PRIVATE log)
237 ENDIF()
Marat Dukhan249d3142018-03-15 23:20:11 -0700238 IF(IOS)
239 TARGET_LINK_LIBRARIES(cpuinfo INTERFACE "-framework OpenGLES")
240 TARGET_LINK_LIBRARIES(cpuinfo INTERFACE "-framework Foundation")
241 ENDIF()
242ELSE()
243 TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=0)
Marat Dukhanad1ac952017-10-23 15:32:25 -0700244ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400245
246INSTALL(TARGETS cpuinfo
Marat Dukhan249d3142018-03-15 23:20:11 -0700247 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
248 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
249 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
Marat Dukhan3645b922017-10-13 17:03:35 -0400250
Marat Dukhancc44bf32017-12-18 17:45:48 -0800251# ---[ cpuinfo micro-benchmarks
Marat Dukhan249d3142018-03-15 23:20:11 -0700252IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
Marat Dukhancc44bf32017-12-18 17:45:48 -0800253 # ---[ Build google benchmark
254 IF(NOT TARGET benchmark)
255 SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "")
256 ADD_SUBDIRECTORY(
Marat Dukhand5817162018-01-31 18:39:05 -0800257 "${GOOGLEBENCHMARK_SOURCE_DIR}"
Marat Dukhancc44bf32017-12-18 17:45:48 -0800258 "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark")
259 ENDIF()
260
261 IF(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Android)$")
262 ADD_EXECUTABLE(get-current-bench bench/get-current.cc)
263 TARGET_LINK_LIBRARIES(get-current-bench cpuinfo benchmark)
264 ENDIF()
265
266 ADD_EXECUTABLE(init-bench bench/init.cc)
267 TARGET_LINK_LIBRARIES(init-bench cpuinfo benchmark)
268ENDIF()
269
Marat Dukhan249d3142018-03-15 23:20:11 -0700270IF(CPUINFO_SUPPORTED_PLATFORM)
271 IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
272 # ---[ Build google test
273 IF(NOT TARGET gtest)
Marat Dukhand0222b42018-03-26 11:19:48 -0700274 IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "static")
275 SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
276 ENDIF()
Marat Dukhan249d3142018-03-15 23:20:11 -0700277 ADD_SUBDIRECTORY(
278 "${GOOGLETEST_SOURCE_DIR}"
279 "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest")
280 ENDIF()
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700281 ENDIF()
282ENDIF()
283
284# ---[ cpuinfo mock library and mock tests
Marat Dukhan249d3142018-03-15 23:20:11 -0700285IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_MOCK_TESTS)
Marat Dukhanb8a83372017-10-13 21:07:44 -0400286 SET(CPUINFO_MOCK_SRCS "${CPUINFO_SRCS}")
Marat Dukhanfd0f3ef2017-12-18 17:45:18 -0800287 IF(CMAKE_SYSTEM_NAME STREQUAL "Android")
288 LIST(REMOVE_ITEM CPUINFO_MOCK_SRCS src/gpu/gles2.c)
289 LIST(APPEND CPUINFO_MOCK_SRCS src/gpu/gles2-mock.c)
290 ENDIF()
Marat Dukhan1b474622017-12-18 17:52:40 -0800291 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|x86_64)$")
292 LIST(APPEND CPUINFO_MOCK_SRCS src/x86/mockcpuid.c)
293 ENDIF()
Marat Dukhanb8a83372017-10-13 21:07:44 -0400294 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
295 LIST(APPEND CPUINFO_MOCK_SRCS src/linux/mockfile.c)
296 ENDIF()
297
Marat Dukhandaafc282018-01-31 23:55:05 -0800298 ADD_LIBRARY(cpuinfo_mock STATIC ${CPUINFO_MOCK_SRCS})
Marat Dukhancddf01b2018-02-25 01:37:55 +0100299 CPUINFO_TARGET_ENABLE_C99(cpuinfo_mock)
Marat Dukhand0222b42018-03-26 11:19:48 -0700300 CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo_mock)
Marat Dukhanb8a83372017-10-13 21:07:44 -0400301 SET_TARGET_PROPERTIES(cpuinfo_mock PROPERTIES PUBLIC_HEADER include/cpuinfo.h)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700302 TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PUBLIC include)
303 TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PRIVATE src)
304 TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PUBLIC CPUINFO_MOCK=1)
Marat Dukhancf70aee2018-03-24 23:21:02 -0700305 TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE CPUINFO_LOG_TO_STDIO=1)
Marat Dukhanbfff3482017-10-15 22:24:32 +0000306 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
307 TARGET_LINK_LIBRARIES(cpuinfo_mock PUBLIC ${CMAKE_THREAD_LIBS_INIT})
308 ENDIF()
Marat Dukhane029fd42017-10-26 00:35:46 +0000309 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
Marat Dukhan806dcca2018-03-22 12:22:48 -0700310 TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE _GNU_SOURCE=1)
Marat Dukhane029fd42017-10-26 00:35:46 +0000311 ENDIF()
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700312
313 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a)$")
Marat Dukhanf18db832017-11-28 11:10:10 -0800314 ADD_EXECUTABLE(atm7029b-tablet-test test/mock/atm7029b-tablet.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700315 TARGET_INCLUDE_DIRECTORIES(atm7029b-tablet-test BEFORE PRIVATE test/mock)
Marat Dukhanf18db832017-11-28 11:10:10 -0800316 TARGET_LINK_LIBRARIES(atm7029b-tablet-test PRIVATE cpuinfo_mock gtest)
317 ADD_TEST(atm7029b-tablet-test atm7029b-tablet-test)
318
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700319 ADD_EXECUTABLE(blu-r1-hd-test test/mock/blu-r1-hd.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700320 TARGET_INCLUDE_DIRECTORIES(blu-r1-hd-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700321 TARGET_LINK_LIBRARIES(blu-r1-hd-test PRIVATE cpuinfo_mock gtest)
322 ADD_TEST(blu-r1-hd-test blu-r1-hd-test)
323
Marat Dukhan94f763a2017-12-04 16:44:33 -0800324 ADD_EXECUTABLE(galaxy-a3-2016-eu-test test/mock/galaxy-a3-2016-eu.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700325 TARGET_INCLUDE_DIRECTORIES(galaxy-a3-2016-eu-test BEFORE PRIVATE test/mock)
Marat Dukhan94f763a2017-12-04 16:44:33 -0800326 TARGET_LINK_LIBRARIES(galaxy-a3-2016-eu-test PRIVATE cpuinfo_mock gtest)
327 ADD_TEST(galaxy-a3-2016-eu-test galaxy-a3-2016-eu-test)
328
Marat Dukhanf9ccfa32017-11-27 15:50:06 -0800329 ADD_EXECUTABLE(galaxy-a8-2016-duos-test test/mock/galaxy-a8-2016-duos.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700330 TARGET_INCLUDE_DIRECTORIES(galaxy-a8-2016-duos-test BEFORE PRIVATE test/mock)
Marat Dukhanf9ccfa32017-11-27 15:50:06 -0800331 TARGET_LINK_LIBRARIES(galaxy-a8-2016-duos-test PRIVATE cpuinfo_mock gtest)
332 ADD_TEST(galaxy-a8-2016-duos-test galaxy-a8-2016-duos-test)
333
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700334 ADD_EXECUTABLE(galaxy-grand-prime-value-edition-test test/mock/galaxy-grand-prime-value-edition.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700335 TARGET_INCLUDE_DIRECTORIES(galaxy-grand-prime-value-edition-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700336 TARGET_LINK_LIBRARIES(galaxy-grand-prime-value-edition-test PRIVATE cpuinfo_mock gtest)
337 ADD_TEST(galaxy-grand-prime-value-edition-test galaxy-grand-prime-value-edition-test)
338
Marat Dukhand77e1a22018-01-04 19:45:06 -0800339 ADD_EXECUTABLE(galaxy-j1-2016-test test/mock/galaxy-j1-2016.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700340 TARGET_INCLUDE_DIRECTORIES(galaxy-j1-2016-test BEFORE PRIVATE test/mock)
Marat Dukhand77e1a22018-01-04 19:45:06 -0800341 TARGET_LINK_LIBRARIES(galaxy-j1-2016-test PRIVATE cpuinfo_mock gtest)
342 ADD_TEST(galaxy-j1-2016-test galaxy-j1-2016-test)
343
Marat Dukhan126c46d2017-12-04 16:24:48 -0800344 ADD_EXECUTABLE(galaxy-j5-test test/mock/galaxy-j5.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700345 TARGET_INCLUDE_DIRECTORIES(galaxy-j5-test BEFORE PRIVATE test/mock)
Marat Dukhan126c46d2017-12-04 16:24:48 -0800346 TARGET_LINK_LIBRARIES(galaxy-j5-test PRIVATE cpuinfo_mock gtest)
347 ADD_TEST(galaxy-j5-test galaxy-j5-test)
348
Marat Dukhan84435902017-11-29 15:53:58 -0800349 ADD_EXECUTABLE(galaxy-j7-prime-test test/mock/galaxy-j7-prime.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700350 TARGET_INCLUDE_DIRECTORIES(galaxy-j7-prime-test BEFORE PRIVATE test/mock)
Marat Dukhan84435902017-11-29 15:53:58 -0800351 TARGET_LINK_LIBRARIES(galaxy-j7-prime-test PRIVATE cpuinfo_mock gtest)
352 ADD_TEST(galaxy-j7-prime-test galaxy-j7-prime-test)
353
Marat Dukhan0d2aaa72017-11-29 15:48:46 -0800354 ADD_EXECUTABLE(galaxy-j7-tmobile-test test/mock/galaxy-j7-tmobile.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700355 TARGET_INCLUDE_DIRECTORIES(galaxy-j7-tmobile-test BEFORE PRIVATE test/mock)
Marat Dukhan0d2aaa72017-11-29 15:48:46 -0800356 TARGET_LINK_LIBRARIES(galaxy-j7-tmobile-test PRIVATE cpuinfo_mock gtest)
357 ADD_TEST(galaxy-j7-tmobile-test galaxy-j7-tmobile-test)
358
359 ADD_EXECUTABLE(galaxy-j7-uae-test test/mock/galaxy-j7-uae.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700360 TARGET_INCLUDE_DIRECTORIES(galaxy-j7-uae-test BEFORE PRIVATE test/mock)
Marat Dukhan0d2aaa72017-11-29 15:48:46 -0800361 TARGET_LINK_LIBRARIES(galaxy-j7-uae-test PRIVATE cpuinfo_mock gtest)
362 ADD_TEST(galaxy-j7-uae-test galaxy-j7-uae-test)
363
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700364 ADD_EXECUTABLE(galaxy-s3-us-test test/mock/galaxy-s3-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700365 TARGET_INCLUDE_DIRECTORIES(galaxy-s3-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700366 TARGET_LINK_LIBRARIES(galaxy-s3-us-test PRIVATE cpuinfo_mock gtest)
367 ADD_TEST(galaxy-s3-us-test galaxy-s3-us-test)
368
369 ADD_EXECUTABLE(galaxy-s4-us-test test/mock/galaxy-s4-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700370 TARGET_INCLUDE_DIRECTORIES(galaxy-s4-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700371 TARGET_LINK_LIBRARIES(galaxy-s4-us-test PRIVATE cpuinfo_mock gtest)
372 ADD_TEST(galaxy-s4-us-test galaxy-s4-us-test)
373
374 ADD_EXECUTABLE(galaxy-s5-global-test test/mock/galaxy-s5-global.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700375 TARGET_INCLUDE_DIRECTORIES(galaxy-s5-global-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700376 TARGET_LINK_LIBRARIES(galaxy-s5-global-test PRIVATE cpuinfo_mock gtest)
377 ADD_TEST(galaxy-s5-global-test galaxy-s5-global-test)
378
379 ADD_EXECUTABLE(galaxy-s5-us-test test/mock/galaxy-s5-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700380 TARGET_INCLUDE_DIRECTORIES(galaxy-s5-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700381 TARGET_LINK_LIBRARIES(galaxy-s5-us-test PRIVATE cpuinfo_mock gtest)
382 ADD_TEST(galaxy-s5-us-test galaxy-s5-us-test)
383
384 ADD_EXECUTABLE(galaxy-tab-3-7.0-test test/mock/galaxy-tab-3-7.0.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700385 TARGET_INCLUDE_DIRECTORIES(galaxy-tab-3-7.0-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700386 TARGET_LINK_LIBRARIES(galaxy-tab-3-7.0-test PRIVATE cpuinfo_mock gtest)
387 ADD_TEST(galaxy-tab-3-7.0-test galaxy-tab-3-7.0-test)
388
389 ADD_EXECUTABLE(galaxy-tab-3-lite-test test/mock/galaxy-tab-3-lite.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700390 TARGET_INCLUDE_DIRECTORIES(galaxy-tab-3-lite-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700391 TARGET_LINK_LIBRARIES(galaxy-tab-3-lite-test PRIVATE cpuinfo_mock gtest)
392 ADD_TEST(galaxy-tab-3-lite-test galaxy-tab-3-lite-test)
393
394 ADD_EXECUTABLE(galaxy-win-duos-test test/mock/galaxy-win-duos.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700395 TARGET_INCLUDE_DIRECTORIES(galaxy-win-duos-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700396 TARGET_LINK_LIBRARIES(galaxy-win-duos-test PRIVATE cpuinfo_mock gtest)
397 ADD_TEST(galaxy-win-duos-test galaxy-win-duos-test)
398
399 ADD_EXECUTABLE(huawei-ascend-p7-test test/mock/huawei-ascend-p7.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700400 TARGET_INCLUDE_DIRECTORIES(huawei-ascend-p7-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700401 TARGET_LINK_LIBRARIES(huawei-ascend-p7-test PRIVATE cpuinfo_mock gtest)
402 ADD_TEST(huawei-ascend-p7-test huawei-ascend-p7-test)
403
Marat Dukhan80f4b7f2018-04-10 21:37:52 -0700404 ADD_EXECUTABLE(huawei-honor-6-test test/mock/huawei-honor-6.cc)
405 TARGET_INCLUDE_DIRECTORIES(huawei-honor-6-test BEFORE PRIVATE test/mock)
406 TARGET_LINK_LIBRARIES(huawei-honor-6-test PRIVATE cpuinfo_mock gtest)
407 ADD_TEST(huawei-honor-6-test huawei-honor-6-test)
408
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700409 ADD_EXECUTABLE(lenovo-a6600-plus-test test/mock/lenovo-a6600-plus.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700410 TARGET_INCLUDE_DIRECTORIES(lenovo-a6600-plus-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700411 TARGET_LINK_LIBRARIES(lenovo-a6600-plus-test PRIVATE cpuinfo_mock gtest)
412 ADD_TEST(lenovo-a6600-plus-test lenovo-a6600-plus-test)
413
414 ADD_EXECUTABLE(lenovo-vibe-x2-test test/mock/lenovo-vibe-x2.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700415 TARGET_INCLUDE_DIRECTORIES(lenovo-vibe-x2-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700416 TARGET_LINK_LIBRARIES(lenovo-vibe-x2-test PRIVATE cpuinfo_mock gtest)
417 ADD_TEST(lenovo-vibe-x2-test lenovo-vibe-x2-test)
418
419 ADD_EXECUTABLE(lg-k10-eu-test test/mock/lg-k10-eu.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700420 TARGET_INCLUDE_DIRECTORIES(lg-k10-eu-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700421 TARGET_LINK_LIBRARIES(lg-k10-eu-test PRIVATE cpuinfo_mock gtest)
422 ADD_TEST(lg-k10-eu-test lg-k10-eu-test)
423
Marat Dukhandc58d502018-01-04 20:25:30 -0800424 ADD_EXECUTABLE(lg-optimus-g-pro-test test/mock/lg-optimus-g-pro.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700425 TARGET_INCLUDE_DIRECTORIES(lg-optimus-g-pro-test BEFORE PRIVATE test/mock)
Marat Dukhandc58d502018-01-04 20:25:30 -0800426 TARGET_LINK_LIBRARIES(lg-optimus-g-pro-test PRIVATE cpuinfo_mock gtest)
427 ADD_TEST(lg-optimus-g-pro-test lg-optimus-g-pro-test)
428
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700429 ADD_EXECUTABLE(moto-e-gen1-test test/mock/moto-e-gen1.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700430 TARGET_INCLUDE_DIRECTORIES(moto-e-gen1-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700431 TARGET_LINK_LIBRARIES(moto-e-gen1-test PRIVATE cpuinfo_mock gtest)
432 ADD_TEST(moto-e-gen1-test moto-e-gen1-test)
433
Marat Dukhan92db81f2018-01-05 19:01:52 -0800434 ADD_EXECUTABLE(moto-g-gen1-test test/mock/moto-g-gen1.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700435 TARGET_INCLUDE_DIRECTORIES(moto-g-gen1-test BEFORE PRIVATE test/mock)
Marat Dukhan92db81f2018-01-05 19:01:52 -0800436 TARGET_LINK_LIBRARIES(moto-g-gen1-test PRIVATE cpuinfo_mock gtest)
437 ADD_TEST(moto-g-gen1-test moto-g-gen1-test)
438
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700439 ADD_EXECUTABLE(moto-g-gen2-test test/mock/moto-g-gen2.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700440 TARGET_INCLUDE_DIRECTORIES(moto-g-gen2-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700441 TARGET_LINK_LIBRARIES(moto-g-gen2-test PRIVATE cpuinfo_mock gtest)
442 ADD_TEST(moto-g-gen2-test moto-g-gen2-test)
443
444 ADD_EXECUTABLE(moto-g-gen3-test test/mock/moto-g-gen3.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700445 TARGET_INCLUDE_DIRECTORIES(moto-g-gen3-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700446 TARGET_LINK_LIBRARIES(moto-g-gen3-test PRIVATE cpuinfo_mock gtest)
447 ADD_TEST(moto-g-gen3-test moto-g-gen3-test)
448
Marat Dukhan76829232018-03-02 12:58:30 -0800449 ADD_EXECUTABLE(moto-g-gen4-test test/mock/moto-g-gen4.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700450 TARGET_INCLUDE_DIRECTORIES(moto-g-gen4-test BEFORE PRIVATE test/mock)
Marat Dukhan76829232018-03-02 12:58:30 -0800451 TARGET_LINK_LIBRARIES(moto-g-gen4-test PRIVATE cpuinfo_mock gtest)
452 ADD_TEST(moto-g-gen4-test moto-g-gen4-test)
453
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700454 ADD_EXECUTABLE(nexus-s-test test/mock/nexus-s.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700455 TARGET_INCLUDE_DIRECTORIES(nexus-s-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700456 TARGET_LINK_LIBRARIES(nexus-s-test PRIVATE cpuinfo_mock gtest)
457 ADD_TEST(nexus-s-test nexus-s-test)
458
459 ADD_EXECUTABLE(nexus4-test test/mock/nexus4.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700460 TARGET_INCLUDE_DIRECTORIES(nexus4-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700461 TARGET_LINK_LIBRARIES(nexus4-test PRIVATE cpuinfo_mock gtest)
462 ADD_TEST(nexus4-test nexus4-test)
463
464 ADD_EXECUTABLE(nexus6-test test/mock/nexus6.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700465 TARGET_INCLUDE_DIRECTORIES(nexus6-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700466 TARGET_LINK_LIBRARIES(nexus6-test PRIVATE cpuinfo_mock gtest)
467 ADD_TEST(nexus6-test nexus6-test)
468
Marat Dukhan2ca13b22018-01-04 18:52:46 -0800469 ADD_EXECUTABLE(nexus10-test test/mock/nexus10.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700470 TARGET_INCLUDE_DIRECTORIES(nexus10-test BEFORE PRIVATE test/mock)
Marat Dukhan2ca13b22018-01-04 18:52:46 -0800471 TARGET_LINK_LIBRARIES(nexus10-test PRIVATE cpuinfo_mock gtest)
472 ADD_TEST(nexus10-test nexus10-test)
473
Marat Dukhan59572542017-11-27 17:22:09 -0800474 ADD_EXECUTABLE(padcod-10.1-test test/mock/padcod-10.1.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700475 TARGET_INCLUDE_DIRECTORIES(padcod-10.1-test BEFORE PRIVATE test/mock)
Marat Dukhan59572542017-11-27 17:22:09 -0800476 TARGET_LINK_LIBRARIES(padcod-10.1-test PRIVATE cpuinfo_mock gtest)
477 ADD_TEST(padcod-10.1-test padcod-10.1-test)
478
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700479 ADD_EXECUTABLE(xiaomi-redmi-2a-test test/mock/xiaomi-redmi-2a.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700480 TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-2a-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700481 TARGET_LINK_LIBRARIES(xiaomi-redmi-2a-test PRIVATE cpuinfo_mock gtest)
482 ADD_TEST(xiaomi-redmi-2a-test xiaomi-redmi-2a-test)
Marat Dukhanad741842017-12-03 23:11:46 -0800483
484 ADD_EXECUTABLE(xperia-sl-test test/mock/xperia-sl.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700485 TARGET_INCLUDE_DIRECTORIES(xperia-sl-test BEFORE PRIVATE test/mock)
Marat Dukhanad741842017-12-03 23:11:46 -0800486 TARGET_LINK_LIBRARIES(xperia-sl-test PRIVATE cpuinfo_mock gtest)
487 ADD_TEST(xperia-sl-test xperia-sl-test)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700488 ENDIF()
489
490 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a|aarch64)$")
Marat Dukhanc246e322018-01-26 11:21:48 -0800491 ADD_EXECUTABLE(alcatel-revvl-test test/mock/alcatel-revvl.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700492 TARGET_INCLUDE_DIRECTORIES(alcatel-revvl-test BEFORE PRIVATE test/mock)
Marat Dukhanc246e322018-01-26 11:21:48 -0800493 TARGET_LINK_LIBRARIES(alcatel-revvl-test PRIVATE cpuinfo_mock gtest)
494 ADD_TEST(alcatel-revvl-test alcatel-revvl-test)
495
Marat Dukhan89a3f082018-03-13 11:59:03 -0700496 ADD_EXECUTABLE(galaxy-a8-2018-test test/mock/galaxy-a8-2018.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700497 TARGET_INCLUDE_DIRECTORIES(galaxy-a8-2018-test BEFORE PRIVATE test/mock)
Marat Dukhan89a3f082018-03-13 11:59:03 -0700498 TARGET_LINK_LIBRARIES(galaxy-a8-2018-test PRIVATE cpuinfo_mock gtest)
499 ADD_TEST(galaxy-a8-2018-test galaxy-a8-2018-test)
500
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700501 ADD_EXECUTABLE(galaxy-c9-pro-test test/mock/galaxy-c9-pro.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700502 TARGET_INCLUDE_DIRECTORIES(galaxy-c9-pro-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700503 TARGET_LINK_LIBRARIES(galaxy-c9-pro-test PRIVATE cpuinfo_mock gtest)
504 ADD_TEST(galaxy-c9-pro-test galaxy-c9-pro-test)
505
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700506 ADD_EXECUTABLE(galaxy-s6-test test/mock/galaxy-s6.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700507 TARGET_INCLUDE_DIRECTORIES(galaxy-s6-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700508 TARGET_LINK_LIBRARIES(galaxy-s6-test PRIVATE cpuinfo_mock gtest)
509 ADD_TEST(galaxy-s6-test galaxy-s6-test)
510
511 ADD_EXECUTABLE(galaxy-s7-us-test test/mock/galaxy-s7-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700512 TARGET_INCLUDE_DIRECTORIES(galaxy-s7-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700513 TARGET_LINK_LIBRARIES(galaxy-s7-us-test PRIVATE cpuinfo_mock gtest)
514 ADD_TEST(galaxy-s7-us-test galaxy-s7-us-test)
515
516 ADD_EXECUTABLE(galaxy-s7-global-test test/mock/galaxy-s7-global.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700517 TARGET_INCLUDE_DIRECTORIES(galaxy-s7-global-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700518 TARGET_LINK_LIBRARIES(galaxy-s7-global-test PRIVATE cpuinfo_mock gtest)
519 ADD_TEST(galaxy-s7-global-test galaxy-s7-global-test)
520
521 ADD_EXECUTABLE(galaxy-s8-us-test test/mock/galaxy-s8-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700522 TARGET_INCLUDE_DIRECTORIES(galaxy-s8-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700523 TARGET_LINK_LIBRARIES(galaxy-s8-us-test PRIVATE cpuinfo_mock gtest)
524 ADD_TEST(galaxy-s8-us-test galaxy-s8-us-test)
525
526 ADD_EXECUTABLE(galaxy-s8-global-test test/mock/galaxy-s8-global.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700527 TARGET_INCLUDE_DIRECTORIES(galaxy-s8-global-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700528 TARGET_LINK_LIBRARIES(galaxy-s8-global-test PRIVATE cpuinfo_mock gtest)
529 ADD_TEST(galaxy-s8-global-test galaxy-s8-global-test)
530
Marat Dukhand51d3952018-03-17 19:18:06 -0700531 ADD_EXECUTABLE(galaxy-s9-us-test test/mock/galaxy-s9-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700532 TARGET_INCLUDE_DIRECTORIES(galaxy-s9-us-test BEFORE PRIVATE test/mock)
Marat Dukhand51d3952018-03-17 19:18:06 -0700533 TARGET_LINK_LIBRARIES(galaxy-s9-us-test PRIVATE cpuinfo_mock gtest)
534 ADD_TEST(galaxy-s9-us-test galaxy-s9-us-test)
535
Marat Dukhan2f29c762018-04-10 22:07:36 -0700536 ADD_EXECUTABLE(galaxy-s9-global-test test/mock/galaxy-s9-global.cc)
537 TARGET_INCLUDE_DIRECTORIES(galaxy-s9-global-test BEFORE PRIVATE test/mock)
538 TARGET_LINK_LIBRARIES(galaxy-s9-global-test PRIVATE cpuinfo_mock gtest)
539 ADD_TEST(galaxy-s9-global-test galaxy-s9-global-test)
540
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700541 ADD_EXECUTABLE(huawei-mate-8-test test/mock/huawei-mate-8.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700542 TARGET_INCLUDE_DIRECTORIES(huawei-mate-8-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700543 TARGET_LINK_LIBRARIES(huawei-mate-8-test PRIVATE cpuinfo_mock gtest)
544 ADD_TEST(huawei-mate-8-test huawei-mate-8-test)
545
546 ADD_EXECUTABLE(huawei-mate-9-test test/mock/huawei-mate-9.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700547 TARGET_INCLUDE_DIRECTORIES(huawei-mate-9-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700548 TARGET_LINK_LIBRARIES(huawei-mate-9-test PRIVATE cpuinfo_mock gtest)
549 ADD_TEST(huawei-mate-9-test huawei-mate-9-test)
550
Marat Dukhan7be11402017-11-27 14:57:02 -0800551 ADD_EXECUTABLE(huawei-mate-10-test test/mock/huawei-mate-10.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700552 TARGET_INCLUDE_DIRECTORIES(huawei-mate-10-test BEFORE PRIVATE test/mock)
Marat Dukhan7be11402017-11-27 14:57:02 -0800553 TARGET_LINK_LIBRARIES(huawei-mate-10-test PRIVATE cpuinfo_mock gtest)
554 ADD_TEST(huawei-mate-10-test huawei-mate-10-test)
555
Marat Dukhan705122f2018-01-03 18:24:55 -0800556 ADD_EXECUTABLE(huawei-p8-lite-test test/mock/huawei-p8-lite.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700557 TARGET_INCLUDE_DIRECTORIES(huawei-p8-lite-test BEFORE PRIVATE test/mock)
Marat Dukhan705122f2018-01-03 18:24:55 -0800558 TARGET_LINK_LIBRARIES(huawei-p8-lite-test PRIVATE cpuinfo_mock gtest)
559 ADD_TEST(huawei-p8-lite-test huawei-p8-lite-test)
560
561 ADD_EXECUTABLE(huawei-p9-lite-test test/mock/huawei-p9-lite.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700562 TARGET_INCLUDE_DIRECTORIES(huawei-p9-lite-test BEFORE PRIVATE test/mock)
Marat Dukhan705122f2018-01-03 18:24:55 -0800563 TARGET_LINK_LIBRARIES(huawei-p9-lite-test PRIVATE cpuinfo_mock gtest)
564 ADD_TEST(huawei-p9-lite-test huawei-p9-lite-test)
565
566 ADD_EXECUTABLE(iconia-one-10-test test/mock/iconia-one-10.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700567 TARGET_INCLUDE_DIRECTORIES(iconia-one-10-test BEFORE PRIVATE test/mock)
Marat Dukhan705122f2018-01-03 18:24:55 -0800568 TARGET_LINK_LIBRARIES(iconia-one-10-test PRIVATE cpuinfo_mock gtest)
569 ADD_TEST(iconia-one-10-test iconia-one-10-test)
570
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700571 ADD_EXECUTABLE(meizu-pro-6-test test/mock/meizu-pro-6.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700572 TARGET_INCLUDE_DIRECTORIES(meizu-pro-6-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700573 TARGET_LINK_LIBRARIES(meizu-pro-6-test PRIVATE cpuinfo_mock gtest)
574 ADD_TEST(meizu-pro-6-test meizu-pro-6-test)
575
576 ADD_EXECUTABLE(meizu-pro-6s-test test/mock/meizu-pro-6s.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700577 TARGET_INCLUDE_DIRECTORIES(meizu-pro-6s-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700578 TARGET_LINK_LIBRARIES(meizu-pro-6s-test PRIVATE cpuinfo_mock gtest)
579 ADD_TEST(meizu-pro-6s-test meizu-pro-6s-test)
580
581 ADD_EXECUTABLE(meizu-pro-7-plus-test test/mock/meizu-pro-7-plus.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700582 TARGET_INCLUDE_DIRECTORIES(meizu-pro-7-plus-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700583 TARGET_LINK_LIBRARIES(meizu-pro-7-plus-test PRIVATE cpuinfo_mock gtest)
584 ADD_TEST(meizu-pro-7-plus-test meizu-pro-7-plus-test)
585
586 ADD_EXECUTABLE(nexus5x-test test/mock/nexus5x.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700587 TARGET_INCLUDE_DIRECTORIES(nexus5x-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700588 TARGET_LINK_LIBRARIES(nexus5x-test PRIVATE cpuinfo_mock gtest)
589 ADD_TEST(nexus5x-test nexus5x-test)
590
591 ADD_EXECUTABLE(nexus6p-test test/mock/nexus6p.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700592 TARGET_INCLUDE_DIRECTORIES(nexus6p-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700593 TARGET_LINK_LIBRARIES(nexus6p-test PRIVATE cpuinfo_mock gtest)
594 ADD_TEST(nexus6p-test nexus6p-test)
595
596 ADD_EXECUTABLE(nexus9-test test/mock/nexus9.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700597 TARGET_INCLUDE_DIRECTORIES(nexus9-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700598 TARGET_LINK_LIBRARIES(nexus9-test PRIVATE cpuinfo_mock gtest)
599 ADD_TEST(nexus9-test nexus9-test)
600
Marat Dukhan4d4d7e22018-03-02 10:34:59 -0800601 ADD_EXECUTABLE(oneplus-3t-test test/mock/oneplus-3t.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700602 TARGET_INCLUDE_DIRECTORIES(oneplus-3t-test BEFORE PRIVATE test/mock)
Marat Dukhan4d4d7e22018-03-02 10:34:59 -0800603 TARGET_LINK_LIBRARIES(oneplus-3t-test PRIVATE cpuinfo_mock gtest)
604 ADD_TEST(oneplus-3t-test oneplus-3t-test)
605
Marat Dukhan52621bb2018-03-02 10:51:11 -0800606 ADD_EXECUTABLE(oneplus-5-test test/mock/oneplus-5.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700607 TARGET_INCLUDE_DIRECTORIES(oneplus-5-test BEFORE PRIVATE test/mock)
Marat Dukhan52621bb2018-03-02 10:51:11 -0800608 TARGET_LINK_LIBRARIES(oneplus-5-test PRIVATE cpuinfo_mock gtest)
609 ADD_TEST(oneplus-5-test oneplus-5-test)
610
Marat Dukhand00216b2018-03-02 11:43:51 -0800611 ADD_EXECUTABLE(oneplus-5t-test test/mock/oneplus-5t.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700612 TARGET_INCLUDE_DIRECTORIES(oneplus-5t-test BEFORE PRIVATE test/mock)
Marat Dukhand00216b2018-03-02 11:43:51 -0800613 TARGET_LINK_LIBRARIES(oneplus-5t-test PRIVATE cpuinfo_mock gtest)
614 ADD_TEST(oneplus-5t-test oneplus-5t-test)
615
Marat Dukhan75dd8a12017-12-04 15:43:02 -0800616 ADD_EXECUTABLE(oppo-a37-test test/mock/oppo-a37.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700617 TARGET_INCLUDE_DIRECTORIES(oppo-a37-test BEFORE PRIVATE test/mock)
Marat Dukhan75dd8a12017-12-04 15:43:02 -0800618 TARGET_LINK_LIBRARIES(oppo-a37-test PRIVATE cpuinfo_mock gtest)
619 ADD_TEST(oppo-a37-test oppo-a37-test)
620
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700621 ADD_EXECUTABLE(oppo-r9-test test/mock/oppo-r9.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700622 TARGET_INCLUDE_DIRECTORIES(oppo-r9-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700623 TARGET_LINK_LIBRARIES(oppo-r9-test PRIVATE cpuinfo_mock gtest)
624 ADD_TEST(oppo-r9-test oppo-r9-test)
625
626 ADD_EXECUTABLE(pixel-test test/mock/pixel.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700627 TARGET_INCLUDE_DIRECTORIES(pixel-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700628 TARGET_LINK_LIBRARIES(pixel-test PRIVATE cpuinfo_mock gtest)
629 ADD_TEST(pixel-test pixel-test)
630
631 ADD_EXECUTABLE(pixel-c-test test/mock/pixel-c.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700632 TARGET_INCLUDE_DIRECTORIES(pixel-c-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700633 TARGET_LINK_LIBRARIES(pixel-c-test PRIVATE cpuinfo_mock gtest)
634 ADD_TEST(pixel-c-test pixel-c-test)
635
636 ADD_EXECUTABLE(pixel-xl-test test/mock/pixel-xl.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700637 TARGET_INCLUDE_DIRECTORIES(pixel-xl-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700638 TARGET_LINK_LIBRARIES(pixel-xl-test PRIVATE cpuinfo_mock gtest)
639 ADD_TEST(pixel-xl-test pixel-xl-test)
640
Marat Dukhan9bfb1072017-11-27 17:02:25 -0800641 ADD_EXECUTABLE(pixel-2-xl-test test/mock/pixel-2-xl.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700642 TARGET_INCLUDE_DIRECTORIES(pixel-2-xl-test BEFORE PRIVATE test/mock)
Marat Dukhan9bfb1072017-11-27 17:02:25 -0800643 TARGET_LINK_LIBRARIES(pixel-2-xl-test PRIVATE cpuinfo_mock gtest)
644 ADD_TEST(pixel-2-xl-test pixel-2-xl-test)
645
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700646 ADD_EXECUTABLE(xiaomi-mi-5c-test test/mock/xiaomi-mi-5c.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700647 TARGET_INCLUDE_DIRECTORIES(xiaomi-mi-5c-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700648 TARGET_LINK_LIBRARIES(xiaomi-mi-5c-test PRIVATE cpuinfo_mock gtest)
649 ADD_TEST(xiaomi-mi-5c-test xiaomi-mi-5c-test)
650
651 ADD_EXECUTABLE(xiaomi-redmi-note-3-test test/mock/xiaomi-redmi-note-3.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700652 TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-note-3-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700653 TARGET_LINK_LIBRARIES(xiaomi-redmi-note-3-test PRIVATE cpuinfo_mock gtest)
654 ADD_TEST(xiaomi-redmi-note-3-test xiaomi-redmi-note-3-test)
655
Marat Dukhana5fda232017-12-04 16:08:25 -0800656 ADD_EXECUTABLE(xiaomi-redmi-note-4-test test/mock/xiaomi-redmi-note-4.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700657 TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-note-4-test BEFORE PRIVATE test/mock)
Marat Dukhana5fda232017-12-04 16:08:25 -0800658 TARGET_LINK_LIBRARIES(xiaomi-redmi-note-4-test PRIVATE cpuinfo_mock gtest)
659 ADD_TEST(xiaomi-redmi-note-4-test xiaomi-redmi-note-4-test)
660
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700661 ADD_EXECUTABLE(xperia-c4-dual-test test/mock/xperia-c4-dual.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700662 TARGET_INCLUDE_DIRECTORIES(xperia-c4-dual-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700663 TARGET_LINK_LIBRARIES(xperia-c4-dual-test PRIVATE cpuinfo_mock gtest)
664 ADD_TEST(xperia-c4-dual-test xperia-c4-dual-test)
665 ENDIF()
666
667 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|x86_64)$")
Marat Dukhanaf8a12d2017-12-08 16:12:16 -0800668 ADD_EXECUTABLE(alldocube-iwork8-test test/mock/alldocube-iwork8.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700669 TARGET_INCLUDE_DIRECTORIES(alldocube-iwork8-test BEFORE PRIVATE test/mock)
Marat Dukhanaf8a12d2017-12-08 16:12:16 -0800670 TARGET_LINK_LIBRARIES(alldocube-iwork8-test PRIVATE cpuinfo_mock gtest)
671 ADD_TEST(alldocube-iwork8-test alldocube-iwork8-test)
672
Marat Dukhan3b434e62018-04-07 02:23:55 -0700673 ADD_EXECUTABLE(leagoo-t5c-test test/mock/leagoo-t5c.cc)
674 TARGET_INCLUDE_DIRECTORIES(leagoo-t5c-test BEFORE PRIVATE test/mock)
675 TARGET_LINK_LIBRARIES(leagoo-t5c-test PRIVATE cpuinfo_mock gtest)
676 ADD_TEST(leagoo-t5c-test leagoo-t5c-test)
677
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700678 ADD_EXECUTABLE(memo-pad-7-test test/mock/memo-pad-7.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700679 TARGET_INCLUDE_DIRECTORIES(memo-pad-7-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700680 TARGET_LINK_LIBRARIES(memo-pad-7-test PRIVATE cpuinfo_mock gtest)
681 ADD_TEST(memo-pad-7-test memo-pad-7-test)
682
683 ADD_EXECUTABLE(zenfone-c-test test/mock/zenfone-c.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700684 TARGET_INCLUDE_DIRECTORIES(zenfone-c-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700685 TARGET_LINK_LIBRARIES(zenfone-c-test PRIVATE cpuinfo_mock gtest)
686 ADD_TEST(zenfone-c-test zenfone-c-test)
687
688 ADD_EXECUTABLE(zenfone-2-test test/mock/zenfone-2.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700689 TARGET_INCLUDE_DIRECTORIES(zenfone-2-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700690 TARGET_LINK_LIBRARIES(zenfone-2-test PRIVATE cpuinfo_mock gtest)
691 ADD_TEST(zenfone-2-test zenfone-2-test)
692
693 ADD_EXECUTABLE(zenfone-2e-test test/mock/zenfone-2e.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700694 TARGET_INCLUDE_DIRECTORIES(zenfone-2e-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700695 TARGET_LINK_LIBRARIES(zenfone-2e-test PRIVATE cpuinfo_mock gtest)
696 ADD_TEST(zenfone-2e-test zenfone-2e-test)
697 ENDIF()
698ENDIF()
699
700# ---[ cpuinfo unit tests
Marat Dukhan249d3142018-03-15 23:20:11 -0700701IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_UNIT_TESTS)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700702 ADD_EXECUTABLE(init-test test/init.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100703 CPUINFO_TARGET_ENABLE_CXX11(init-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700704 CPUINFO_TARGET_RUNTIME_LIBRARY(init-test)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700705 TARGET_LINK_LIBRARIES(init-test PRIVATE cpuinfo gtest)
706 ADD_TEST(init-test init-test)
707
708 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
709 ADD_EXECUTABLE(get-current-test test/get-current.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100710 CPUINFO_TARGET_ENABLE_CXX11(get-current-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700711 CPUINFO_TARGET_RUNTIME_LIBRARY(get-current-test)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700712 TARGET_LINK_LIBRARIES(get-current-test PRIVATE cpuinfo gtest)
713 ADD_TEST(get-current-test get-current-test)
714 ENDIF()
715
716 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|x86_64)$")
717 ADD_EXECUTABLE(brand-string-test test/name/brand-string.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100718 CPUINFO_TARGET_ENABLE_CXX11(brand-string-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700719 CPUINFO_TARGET_RUNTIME_LIBRARY(brand-string-test)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700720 TARGET_LINK_LIBRARIES(brand-string-test PRIVATE cpuinfo gtest gtest_main)
721 ADD_TEST(brand-string-test brand-string-test)
722 ENDIF()
723
724 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a|aarch64)$")
Marat Dukhancddf01b2018-02-25 01:37:55 +0100725 ADD_LIBRARY(android_properties_interface STATIC test/name/android-properties-interface.c)
726 CPUINFO_TARGET_ENABLE_C99(android_properties_interface)
Marat Dukhand0222b42018-03-26 11:19:48 -0700727 CPUINFO_TARGET_RUNTIME_LIBRARY(android_properties_interface)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700728 TARGET_INCLUDE_DIRECTORIES(android_properties_interface PRIVATE src)
729 TARGET_LINK_LIBRARIES(android_properties_interface PRIVATE cpuinfo)
730
731 ADD_EXECUTABLE(chipset-test
732 test/name/proc-cpuinfo-hardware.cc
733 test/name/ro-product-board.cc
734 test/name/ro-board-platform.cc
735 test/name/ro-mediatek-platform.cc
Marat Dukhane5d60492018-03-08 12:47:27 -0800736 test/name/ro-arch.cc
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700737 test/name/ro-chipname.cc
738 test/name/android-properties.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100739 CPUINFO_TARGET_ENABLE_CXX11(chipset-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700740 CPUINFO_TARGET_RUNTIME_LIBRARY(chipset-test)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700741 TARGET_LINK_LIBRARIES(chipset-test PRIVATE android_properties_interface gtest gtest_main)
742 ADD_TEST(chipset-test chipset-test)
743
744 ADD_EXECUTABLE(cache-test test/arm-cache.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100745 CPUINFO_TARGET_ENABLE_CXX11(cache-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700746 CPUINFO_TARGET_RUNTIME_LIBRARY(cache-test)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100747 TARGET_COMPILE_DEFINITIONS(cache-test PRIVATE __STDC_LIMIT_MACROS=1 __STDC_CONSTANT_MACROS=1)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700748 TARGET_INCLUDE_DIRECTORIES(cache-test PRIVATE src)
749 TARGET_LINK_LIBRARIES(cache-test PRIVATE cpuinfo gtest gtest_main)
750 ADD_TEST(cache-test, cache-test)
751 ENDIF()
Marat Dukhanb8a83372017-10-13 21:07:44 -0400752ENDIF()
753
Marat Dukhan3645b922017-10-13 17:03:35 -0400754# ---[ Helper and debug tools
Marat Dukhan249d3142018-03-15 23:20:11 -0700755IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_TOOLS)
Marat Dukhan3645b922017-10-13 17:03:35 -0400756 ADD_EXECUTABLE(isa-info tools/isa-info.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100757 CPUINFO_TARGET_ENABLE_C99(isa-info)
Marat Dukhand0222b42018-03-26 11:19:48 -0700758 CPUINFO_TARGET_RUNTIME_LIBRARY(isa-info)
Marat Dukhan3645b922017-10-13 17:03:35 -0400759 TARGET_LINK_LIBRARIES(isa-info PRIVATE cpuinfo)
760
761 ADD_EXECUTABLE(cpu-info tools/cpu-info.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100762 CPUINFO_TARGET_ENABLE_C99(cpu-info)
Marat Dukhand0222b42018-03-26 11:19:48 -0700763 CPUINFO_TARGET_RUNTIME_LIBRARY(cpu-info)
Marat Dukhan3645b922017-10-13 17:03:35 -0400764 TARGET_LINK_LIBRARIES(cpu-info PRIVATE cpuinfo)
765
766 ADD_EXECUTABLE(cache-info tools/cache-info.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100767 CPUINFO_TARGET_ENABLE_C99(cache-info)
Marat Dukhand0222b42018-03-26 11:19:48 -0700768 CPUINFO_TARGET_RUNTIME_LIBRARY(cache-info)
Marat Dukhan3645b922017-10-13 17:03:35 -0400769 TARGET_LINK_LIBRARIES(cache-info PRIVATE cpuinfo)
770
Marat Dukhanf3a71e62017-11-29 15:15:36 -0800771 IF(CMAKE_SYSTEM_NAME MATCHES "^(Android|Linux)$" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7|armv7-a|armv7l|arm64|aarch64)$")
772 ADD_EXECUTABLE(auxv-dump tools/auxv-dump.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100773 CPUINFO_TARGET_ENABLE_C99(auxv-dump)
Marat Dukhand0222b42018-03-26 11:19:48 -0700774 CPUINFO_TARGET_RUNTIME_LIBRARY(auxv-dump)
Marat Dukhand4b4a122018-03-18 08:16:25 +0000775 TARGET_LINK_LIBRARIES(auxv-dump PRIVATE ${CMAKE_DL_LIBS})
Marat Dukhancb9ae9c2018-04-19 12:29:15 -0700776
777 ADD_EXECUTABLE(cpuinfo-dump tools/cpuinfo-dump.c)
778 CPUINFO_TARGET_ENABLE_C99(cpuinfo-dump)
779 CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo-dump)
Marat Dukhanf3a71e62017-11-29 15:15:36 -0800780 ENDIF()
781
Marat Dukhand0222b42018-03-26 11:19:48 -0700782 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|AMD64|x86_64)$")
Marat Dukhan3645b922017-10-13 17:03:35 -0400783 ADD_EXECUTABLE(cpuid-dump tools/cpuid-dump.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100784 CPUINFO_TARGET_ENABLE_C99(cpuid-dump)
Marat Dukhand0222b42018-03-26 11:19:48 -0700785 CPUINFO_TARGET_RUNTIME_LIBRARY(cpuid-dump)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700786 TARGET_INCLUDE_DIRECTORIES(cpuid-dump BEFORE PRIVATE src)
787 TARGET_INCLUDE_DIRECTORIES(cpuid-dump BEFORE PRIVATE include)
Marat Dukhan3645b922017-10-13 17:03:35 -0400788 ENDIF()
789ENDIF()