blob: de319eff9522bf6aaaf665bacc5a3d8c4f0a76ce [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 Dukhan52b2c082018-12-16 02:34:43 -080013SET(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)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -070015OPTION(CPUINFO_BUILD_TOOLS "Build command-line tools" ON)
Marat Dukhancc44bf32017-12-18 17:45:48 -080016OPTION(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)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -070019
20# ---[ CMake options
21IF(CPUINFO_BUILD_UNIT_TESTS OR CPUINFO_BUILD_MOCK_TESTS)
22 ENABLE_TESTING()
23ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -040024
Marat Dukhancddf01b2018-02-25 01:37:55 +010025MACRO(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()
Marat Dukhan3645b922017-10-13 17:03:35 -040036
Marat Dukhancddf01b2018-02-25 01:37:55 +010037MACRO(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
Marat Dukhand0222b42018-03-26 11:19:48 -070049MACRO(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
Marat Dukhancddf01b2018-02-25 01:37:55 +010061# ---[ Build flags
Marat Dukhan249d3142018-03-15 23:20:11 -070062SET(CPUINFO_SUPPORTED_PLATFORM TRUE)
Marat Dukhan3645b922017-10-13 17:03:35 -040063IF(NOT CMAKE_SYSTEM_PROCESSOR)
Marat Dukhane135eff2018-02-01 00:39:31 -080064 IF(NOT IOS)
Marat Dukhan249d3142018-03-15 23:20:11 -070065 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)
Marat Dukhane135eff2018-02-01 00:39:31 -080069 ENDIF()
KOLANICH3bf2c722018-11-13 00:45:16 +000070ELSEIF(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?|armv[5-8].*|aarch64)$")
Marat Dukhan249d3142018-03-15 23:20:11 -070071 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)
Marat Dukhan3645b922017-10-13 17:03:35 -040075ENDIF()
76
77IF(NOT CMAKE_SYSTEM_NAME)
Marat Dukhan249d3142018-03-15 23:20:11 -070078 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)
Marat Dukhanb2fc4ab2018-02-19 22:43:26 -080082ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Windows|Darwin|Linux|Android)$")
Bas Hendrifd253b72019-12-18 14:32:30 -080083 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()
Marat Dukhan3645b922017-10-13 17:03:35 -040089ENDIF()
90
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -070091# ---[ 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
Marat Dukhand5817162018-01-31 18:39:05 -080097IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
Marat Dukhan249d3142018-03-15 23:20:11 -070098 IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
Marat Dukhand5817162018-01-31 18:39:05 -080099 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 +0100100 CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
Marat Dukhand5817162018-01-31 18:39:05 -0800101 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
Marat Dukhand416acf2018-02-24 16:36:59 +0100102 WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
Marat Dukhand5817162018-01-31 18:39:05 -0800103 EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build .
Marat Dukhand416acf2018-02-24 16:36:59 +0100104 WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
Marat Dukhand5817162018-01-31 18:39:05 -0800105 SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory")
106 ENDIF()
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700107ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400108
Marat Dukhan249d3142018-03-15 23:20:11 -0700109IF(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()
Marat Dukhancc44bf32017-12-18 17:45:48 -0800119ENDIF()
120
Marat Dukhan3645b922017-10-13 17:03:35 -0400121# ---[ cpuinfo library
122SET(CPUINFO_SRCS
123 src/init.c
Ashkan Aliabadi0e6bde92020-01-21 14:15:03 -0800124 src/api.c
125 src/cache.c)
Marat Dukhan3645b922017-10-13 17:03:35 -0400126
Marat Dukhan249d3142018-03-15 23:20:11 -0700127IF(CPUINFO_SUPPORTED_PLATFORM)
KOLANICH3bf2c722018-11-13 00:45:16 +0000128 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?)$" OR IOS_ARCH MATCHES "^(i386|x86_64)$")
Marat Dukhan3645b922017-10-13 17:03:35 -0400129 LIST(APPEND CPUINFO_SRCS
Marat Dukhan249d3142018-03-15 23:20:11 -0700130 src/x86/init.c
131 src/x86/info.c
132 src/x86/vendor.c
133 src/x86/uarch.c
134 src/x86/name.c
135 src/x86/topology.c
136 src/x86/isa.c
137 src/x86/cache/init.c
138 src/x86/cache/descriptor.c
139 src/x86/cache/deterministic.c)
140 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
141 LIST(APPEND CPUINFO_SRCS
142 src/x86/linux/init.c
143 src/x86/linux/cpuinfo.c)
Bas Hendri58d183d2019-12-26 09:00:05 -0800144 ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS")
Marat Dukhan249d3142018-03-15 23:20:11 -0700145 LIST(APPEND CPUINFO_SRCS src/x86/mach/init.c)
146 ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
147 LIST(APPEND CPUINFO_SRCS src/x86/windows/init.c)
Marat Dukhan3985cf82017-12-18 18:58:26 -0800148 ENDIF()
Marat Dukhanba5a0df2018-11-01 11:54:50 -1000149 ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv[5-8].*|aarch64)$" OR IOS_ARCH MATCHES "^(armv7.*|arm64.*)$")
Marat Dukhan249d3142018-03-15 23:20:11 -0700150 LIST(APPEND CPUINFO_SRCS
151 src/arm/uarch.c
152 src/arm/cache.c)
153 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
154 LIST(APPEND CPUINFO_SRCS
155 src/arm/linux/init.c
156 src/arm/linux/cpuinfo.c
157 src/arm/linux/clusters.c
158 src/arm/linux/chipset.c
159 src/arm/linux/midr.c
160 src/arm/linux/hwcap.c)
Marat Dukhana9103882018-10-30 22:02:37 -1000161 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv[5-8]")
Marat Dukhan249d3142018-03-15 23:20:11 -0700162 LIST(APPEND CPUINFO_SRCS src/arm/linux/aarch32-isa.c)
163 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND ANDROID_ABI STREQUAL "armeabi")
164 SET_SOURCE_FILES_PROPERTIES(src/arm/linux/aarch32-isa.c PROPERTIES COMPILE_FLAGS -marm)
165 ENDIF()
166 ELSEIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
167 LIST(APPEND CPUINFO_SRCS src/arm/linux/aarch64-isa.c)
168 ENDIF()
169 ELSEIF(IOS)
Marat Dukhan112dbf92018-12-09 01:40:27 -0800170 LIST(APPEND CPUINFO_SRCS src/arm/mach/init.c)
Marat Dukhan7b738882017-10-18 16:59:28 -0700171 ENDIF()
Marat Dukhan249d3142018-03-15 23:20:11 -0700172 IF(CMAKE_SYSTEM_NAME STREQUAL "Android")
173 LIST(APPEND CPUINFO_SRCS
174 src/arm/android/properties.c)
175 ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400176 ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400177
Marat Dukhan249d3142018-03-15 23:20:11 -0700178 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
Marat Dukhanbb161542018-12-16 05:56:49 -0500179 LIST(APPEND CPUINFO_SRCS
180 src/linux/smallfile.c
Marat Dukhan249d3142018-03-15 23:20:11 -0700181 src/linux/multiline.c
182 src/linux/current.c
183 src/linux/cpulist.c
184 src/linux/processors.c)
Bas Hendrifd253b72019-12-18 14:32:30 -0800185 ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS")
Marat Dukhan249d3142018-03-15 23:20:11 -0700186 LIST(APPEND CPUINFO_SRCS src/mach/topology.c)
Marat Dukhan3645b922017-10-13 17:03:35 -0400187 ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400188
Marat Dukhan249d3142018-03-15 23:20:11 -0700189 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
190 SET(CMAKE_THREAD_PREFER_PTHREAD TRUE)
191 SET(THREADS_PREFER_PTHREAD_FLAG TRUE)
192 FIND_PACKAGE(Threads REQUIRED)
193 ENDIF()
Marat Dukhanbfff3482017-10-15 22:24:32 +0000194ENDIF()
195
Marat Dukhandaafc282018-01-31 23:55:05 -0800196IF(CPUINFO_LIBRARY_TYPE STREQUAL "default")
197 ADD_LIBRARY(cpuinfo ${CPUINFO_SRCS})
198ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "shared")
199 ADD_LIBRARY(cpuinfo SHARED ${CPUINFO_SRCS})
200ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "static")
201 ADD_LIBRARY(cpuinfo STATIC ${CPUINFO_SRCS})
202ELSE()
203 MESSAGE(FATAL_ERROR "Unsupported library type ${CPUINFO_LIBRARY_TYPE}")
204ENDIF()
Marat Dukhanbb161542018-12-16 05:56:49 -0500205ADD_LIBRARY(cpuinfo_internals STATIC ${CPUINFO_SRCS})
Marat Dukhancddf01b2018-02-25 01:37:55 +0100206CPUINFO_TARGET_ENABLE_C99(cpuinfo)
Marat Dukhanccbddb52018-12-16 01:51:31 -0800207CPUINFO_TARGET_ENABLE_C99(cpuinfo_internals)
Marat Dukhand0222b42018-03-26 11:19:48 -0700208CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo)
Marat Dukhan3645b922017-10-13 17:03:35 -0400209SET_TARGET_PROPERTIES(cpuinfo PROPERTIES PUBLIC_HEADER include/cpuinfo.h)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700210TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PUBLIC include)
211TARGET_INCLUDE_DIRECTORIES(cpuinfo BEFORE PRIVATE src)
Marat Dukhanccbddb52018-12-16 01:51:31 -0800212TARGET_INCLUDE_DIRECTORIES(cpuinfo_internals BEFORE PUBLIC include src)
Marat Dukhan52b2c082018-12-16 02:34:43 -0800213IF(CPUINFO_LOG_LEVEL STREQUAL "default")
214 # default logging level: error (subject to change)
Marat Dukhand3eda1b2018-12-19 11:05:42 -0800215 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2)
Marat Dukhan52b2c082018-12-16 02:34:43 -0800216ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "debug")
217 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=5)
218ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "info")
219 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=4)
220ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "warning")
221 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=3)
222ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "error")
223 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=2)
224ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "fatal")
225 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=1)
226ELSEIF(CPUINFO_LOG_LEVEL STREQUAL "none")
227 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_LOG_LEVEL=0)
Marat Dukhancf70aee2018-03-24 23:21:02 -0700228ELSE()
Marat Dukhan52b2c082018-12-16 02:34:43 -0800229 MESSAGE(FATAL_ERROR "Unsupported logging level ${CPUINFO_LOG_LEVEL}")
Marat Dukhancf70aee2018-03-24 23:21:02 -0700230ENDIF()
Marat Dukhan52b2c082018-12-16 02:34:43 -0800231TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE CPUINFO_LOG_LEVEL=0)
232
Marat Dukhan249d3142018-03-15 23:20:11 -0700233IF(CPUINFO_SUPPORTED_PLATFORM)
234 TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=1)
235 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
236 TARGET_LINK_LIBRARIES(cpuinfo PUBLIC ${CMAKE_THREAD_LIBS_INIT})
Marat Dukhanccbddb52018-12-16 01:51:31 -0800237 TARGET_LINK_LIBRARIES(cpuinfo_internals PUBLIC ${CMAKE_THREAD_LIBS_INIT})
Marat Dukhan249d3142018-03-15 23:20:11 -0700238 TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE _GNU_SOURCE=1)
Marat Dukhanccbddb52018-12-16 01:51:31 -0800239 TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE _GNU_SOURCE=1)
Marat Dukhan249d3142018-03-15 23:20:11 -0700240 ENDIF()
241ELSE()
242 TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=0)
Marat Dukhanad1ac952017-10-23 15:32:25 -0700243ENDIF()
Marat Dukhan3645b922017-10-13 17:03:35 -0400244
Marat Dukhanad935b52018-06-04 02:40:10 -0700245# ---[ cpuinfo dependencies: clog
246IF(NOT DEFINED CLOG_SOURCE_DIR)
247 SET(CLOG_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/clog")
248ENDIF()
249IF(NOT TARGET clog)
250 SET(CLOG_BUILD_TESTS OFF CACHE BOOL "")
Marat Dukhan104bc932018-06-04 10:41:25 -0700251 SET(CLOG_RUNTIME_TYPE "${CPUINFO_RUNTIME_TYPE}" CACHE STRING "")
Marat Dukhanad935b52018-06-04 02:40:10 -0700252 ADD_SUBDIRECTORY(
253 "${CLOG_SOURCE_DIR}")
Marat Dukhan91e2aad2018-06-24 16:41:20 -0700254 # We build static version of clog but a dynamic library may indirectly depend on it
255 SET_PROPERTY(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON)
Marat Dukhanad935b52018-06-04 02:40:10 -0700256ENDIF()
257TARGET_LINK_LIBRARIES(cpuinfo PRIVATE clog)
Marat Dukhanccbddb52018-12-16 01:51:31 -0800258TARGET_LINK_LIBRARIES(cpuinfo_internals PRIVATE clog)
Marat Dukhanad935b52018-06-04 02:40:10 -0700259
Marat Dukhan3645b922017-10-13 17:03:35 -0400260INSTALL(TARGETS cpuinfo
Marat Dukhan249d3142018-03-15 23:20:11 -0700261 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
262 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
263 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
Marat Dukhan3645b922017-10-13 17:03:35 -0400264
Marat Dukhancc44bf32017-12-18 17:45:48 -0800265# ---[ cpuinfo micro-benchmarks
Marat Dukhan249d3142018-03-15 23:20:11 -0700266IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
Marat Dukhancc44bf32017-12-18 17:45:48 -0800267 # ---[ Build google benchmark
268 IF(NOT TARGET benchmark)
269 SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "")
270 ADD_SUBDIRECTORY(
Marat Dukhand5817162018-01-31 18:39:05 -0800271 "${GOOGLEBENCHMARK_SOURCE_DIR}"
Marat Dukhancc44bf32017-12-18 17:45:48 -0800272 "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark")
273 ENDIF()
274
275 IF(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Android)$")
276 ADD_EXECUTABLE(get-current-bench bench/get-current.cc)
277 TARGET_LINK_LIBRARIES(get-current-bench cpuinfo benchmark)
278 ENDIF()
279
280 ADD_EXECUTABLE(init-bench bench/init.cc)
281 TARGET_LINK_LIBRARIES(init-bench cpuinfo benchmark)
282ENDIF()
283
Marat Dukhan249d3142018-03-15 23:20:11 -0700284IF(CPUINFO_SUPPORTED_PLATFORM)
285 IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
286 # ---[ Build google test
287 IF(NOT TARGET gtest)
Marat Dukhand0222b42018-03-26 11:19:48 -0700288 IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "static")
289 SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
290 ENDIF()
Marat Dukhan249d3142018-03-15 23:20:11 -0700291 ADD_SUBDIRECTORY(
292 "${GOOGLETEST_SOURCE_DIR}"
293 "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest")
294 ENDIF()
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700295 ENDIF()
296ENDIF()
297
298# ---[ cpuinfo mock library and mock tests
Marat Dukhan249d3142018-03-15 23:20:11 -0700299IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_MOCK_TESTS)
Marat Dukhanb8a83372017-10-13 21:07:44 -0400300 SET(CPUINFO_MOCK_SRCS "${CPUINFO_SRCS}")
Marat Dukhana9103882018-10-30 22:02:37 -1000301 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86_64)$")
Marat Dukhan1b474622017-12-18 17:52:40 -0800302 LIST(APPEND CPUINFO_MOCK_SRCS src/x86/mockcpuid.c)
303 ENDIF()
Marat Dukhanb8a83372017-10-13 21:07:44 -0400304 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
305 LIST(APPEND CPUINFO_MOCK_SRCS src/linux/mockfile.c)
306 ENDIF()
307
Marat Dukhandaafc282018-01-31 23:55:05 -0800308 ADD_LIBRARY(cpuinfo_mock STATIC ${CPUINFO_MOCK_SRCS})
Marat Dukhancddf01b2018-02-25 01:37:55 +0100309 CPUINFO_TARGET_ENABLE_C99(cpuinfo_mock)
Marat Dukhand0222b42018-03-26 11:19:48 -0700310 CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo_mock)
Marat Dukhanb8a83372017-10-13 21:07:44 -0400311 SET_TARGET_PROPERTIES(cpuinfo_mock PROPERTIES PUBLIC_HEADER include/cpuinfo.h)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700312 TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PUBLIC include)
313 TARGET_INCLUDE_DIRECTORIES(cpuinfo_mock BEFORE PRIVATE src)
314 TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PUBLIC CPUINFO_MOCK=1)
Marat Dukhan52b2c082018-12-16 02:34:43 -0800315 TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE CLOG_LOG_TO_STDIO=1)
Marat Dukhanbfff3482017-10-15 22:24:32 +0000316 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
317 TARGET_LINK_LIBRARIES(cpuinfo_mock PUBLIC ${CMAKE_THREAD_LIBS_INIT})
Marat Dukhan806dcca2018-03-22 12:22:48 -0700318 TARGET_COMPILE_DEFINITIONS(cpuinfo_mock PRIVATE _GNU_SOURCE=1)
Marat Dukhane029fd42017-10-26 00:35:46 +0000319 ENDIF()
Marat Dukhanad935b52018-06-04 02:40:10 -0700320 TARGET_LINK_LIBRARIES(cpuinfo_mock PRIVATE clog)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700321
322 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a)$")
Marat Dukhanf18db832017-11-28 11:10:10 -0800323 ADD_EXECUTABLE(atm7029b-tablet-test test/mock/atm7029b-tablet.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700324 TARGET_INCLUDE_DIRECTORIES(atm7029b-tablet-test BEFORE PRIVATE test/mock)
Marat Dukhanf18db832017-11-28 11:10:10 -0800325 TARGET_LINK_LIBRARIES(atm7029b-tablet-test PRIVATE cpuinfo_mock gtest)
326 ADD_TEST(atm7029b-tablet-test atm7029b-tablet-test)
327
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700328 ADD_EXECUTABLE(blu-r1-hd-test test/mock/blu-r1-hd.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700329 TARGET_INCLUDE_DIRECTORIES(blu-r1-hd-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700330 TARGET_LINK_LIBRARIES(blu-r1-hd-test PRIVATE cpuinfo_mock gtest)
331 ADD_TEST(blu-r1-hd-test blu-r1-hd-test)
332
Marat Dukhan94f763a2017-12-04 16:44:33 -0800333 ADD_EXECUTABLE(galaxy-a3-2016-eu-test test/mock/galaxy-a3-2016-eu.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700334 TARGET_INCLUDE_DIRECTORIES(galaxy-a3-2016-eu-test BEFORE PRIVATE test/mock)
Marat Dukhan94f763a2017-12-04 16:44:33 -0800335 TARGET_LINK_LIBRARIES(galaxy-a3-2016-eu-test PRIVATE cpuinfo_mock gtest)
336 ADD_TEST(galaxy-a3-2016-eu-test galaxy-a3-2016-eu-test)
337
Marat Dukhanf9ccfa32017-11-27 15:50:06 -0800338 ADD_EXECUTABLE(galaxy-a8-2016-duos-test test/mock/galaxy-a8-2016-duos.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700339 TARGET_INCLUDE_DIRECTORIES(galaxy-a8-2016-duos-test BEFORE PRIVATE test/mock)
Marat Dukhanf9ccfa32017-11-27 15:50:06 -0800340 TARGET_LINK_LIBRARIES(galaxy-a8-2016-duos-test PRIVATE cpuinfo_mock gtest)
341 ADD_TEST(galaxy-a8-2016-duos-test galaxy-a8-2016-duos-test)
342
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700343 ADD_EXECUTABLE(galaxy-grand-prime-value-edition-test test/mock/galaxy-grand-prime-value-edition.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700344 TARGET_INCLUDE_DIRECTORIES(galaxy-grand-prime-value-edition-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700345 TARGET_LINK_LIBRARIES(galaxy-grand-prime-value-edition-test PRIVATE cpuinfo_mock gtest)
346 ADD_TEST(galaxy-grand-prime-value-edition-test galaxy-grand-prime-value-edition-test)
347
Marat Dukhand77e1a22018-01-04 19:45:06 -0800348 ADD_EXECUTABLE(galaxy-j1-2016-test test/mock/galaxy-j1-2016.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700349 TARGET_INCLUDE_DIRECTORIES(galaxy-j1-2016-test BEFORE PRIVATE test/mock)
Marat Dukhand77e1a22018-01-04 19:45:06 -0800350 TARGET_LINK_LIBRARIES(galaxy-j1-2016-test PRIVATE cpuinfo_mock gtest)
351 ADD_TEST(galaxy-j1-2016-test galaxy-j1-2016-test)
352
Marat Dukhan126c46d2017-12-04 16:24:48 -0800353 ADD_EXECUTABLE(galaxy-j5-test test/mock/galaxy-j5.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700354 TARGET_INCLUDE_DIRECTORIES(galaxy-j5-test BEFORE PRIVATE test/mock)
Marat Dukhan126c46d2017-12-04 16:24:48 -0800355 TARGET_LINK_LIBRARIES(galaxy-j5-test PRIVATE cpuinfo_mock gtest)
356 ADD_TEST(galaxy-j5-test galaxy-j5-test)
357
Marat Dukhan84435902017-11-29 15:53:58 -0800358 ADD_EXECUTABLE(galaxy-j7-prime-test test/mock/galaxy-j7-prime.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700359 TARGET_INCLUDE_DIRECTORIES(galaxy-j7-prime-test BEFORE PRIVATE test/mock)
Marat Dukhan84435902017-11-29 15:53:58 -0800360 TARGET_LINK_LIBRARIES(galaxy-j7-prime-test PRIVATE cpuinfo_mock gtest)
361 ADD_TEST(galaxy-j7-prime-test galaxy-j7-prime-test)
362
Marat Dukhan0d2aaa72017-11-29 15:48:46 -0800363 ADD_EXECUTABLE(galaxy-j7-tmobile-test test/mock/galaxy-j7-tmobile.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700364 TARGET_INCLUDE_DIRECTORIES(galaxy-j7-tmobile-test BEFORE PRIVATE test/mock)
Marat Dukhan0d2aaa72017-11-29 15:48:46 -0800365 TARGET_LINK_LIBRARIES(galaxy-j7-tmobile-test PRIVATE cpuinfo_mock gtest)
366 ADD_TEST(galaxy-j7-tmobile-test galaxy-j7-tmobile-test)
367
368 ADD_EXECUTABLE(galaxy-j7-uae-test test/mock/galaxy-j7-uae.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700369 TARGET_INCLUDE_DIRECTORIES(galaxy-j7-uae-test BEFORE PRIVATE test/mock)
Marat Dukhan0d2aaa72017-11-29 15:48:46 -0800370 TARGET_LINK_LIBRARIES(galaxy-j7-uae-test PRIVATE cpuinfo_mock gtest)
371 ADD_TEST(galaxy-j7-uae-test galaxy-j7-uae-test)
372
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700373 ADD_EXECUTABLE(galaxy-s3-us-test test/mock/galaxy-s3-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700374 TARGET_INCLUDE_DIRECTORIES(galaxy-s3-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700375 TARGET_LINK_LIBRARIES(galaxy-s3-us-test PRIVATE cpuinfo_mock gtest)
376 ADD_TEST(galaxy-s3-us-test galaxy-s3-us-test)
377
378 ADD_EXECUTABLE(galaxy-s4-us-test test/mock/galaxy-s4-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700379 TARGET_INCLUDE_DIRECTORIES(galaxy-s4-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700380 TARGET_LINK_LIBRARIES(galaxy-s4-us-test PRIVATE cpuinfo_mock gtest)
381 ADD_TEST(galaxy-s4-us-test galaxy-s4-us-test)
382
383 ADD_EXECUTABLE(galaxy-s5-global-test test/mock/galaxy-s5-global.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700384 TARGET_INCLUDE_DIRECTORIES(galaxy-s5-global-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700385 TARGET_LINK_LIBRARIES(galaxy-s5-global-test PRIVATE cpuinfo_mock gtest)
386 ADD_TEST(galaxy-s5-global-test galaxy-s5-global-test)
387
388 ADD_EXECUTABLE(galaxy-s5-us-test test/mock/galaxy-s5-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700389 TARGET_INCLUDE_DIRECTORIES(galaxy-s5-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700390 TARGET_LINK_LIBRARIES(galaxy-s5-us-test PRIVATE cpuinfo_mock gtest)
391 ADD_TEST(galaxy-s5-us-test galaxy-s5-us-test)
392
393 ADD_EXECUTABLE(galaxy-tab-3-7.0-test test/mock/galaxy-tab-3-7.0.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700394 TARGET_INCLUDE_DIRECTORIES(galaxy-tab-3-7.0-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700395 TARGET_LINK_LIBRARIES(galaxy-tab-3-7.0-test PRIVATE cpuinfo_mock gtest)
396 ADD_TEST(galaxy-tab-3-7.0-test galaxy-tab-3-7.0-test)
397
398 ADD_EXECUTABLE(galaxy-tab-3-lite-test test/mock/galaxy-tab-3-lite.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700399 TARGET_INCLUDE_DIRECTORIES(galaxy-tab-3-lite-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700400 TARGET_LINK_LIBRARIES(galaxy-tab-3-lite-test PRIVATE cpuinfo_mock gtest)
401 ADD_TEST(galaxy-tab-3-lite-test galaxy-tab-3-lite-test)
402
403 ADD_EXECUTABLE(galaxy-win-duos-test test/mock/galaxy-win-duos.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700404 TARGET_INCLUDE_DIRECTORIES(galaxy-win-duos-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700405 TARGET_LINK_LIBRARIES(galaxy-win-duos-test PRIVATE cpuinfo_mock gtest)
406 ADD_TEST(galaxy-win-duos-test galaxy-win-duos-test)
407
408 ADD_EXECUTABLE(huawei-ascend-p7-test test/mock/huawei-ascend-p7.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700409 TARGET_INCLUDE_DIRECTORIES(huawei-ascend-p7-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700410 TARGET_LINK_LIBRARIES(huawei-ascend-p7-test PRIVATE cpuinfo_mock gtest)
411 ADD_TEST(huawei-ascend-p7-test huawei-ascend-p7-test)
412
Marat Dukhan80f4b7f2018-04-10 21:37:52 -0700413 ADD_EXECUTABLE(huawei-honor-6-test test/mock/huawei-honor-6.cc)
414 TARGET_INCLUDE_DIRECTORIES(huawei-honor-6-test BEFORE PRIVATE test/mock)
415 TARGET_LINK_LIBRARIES(huawei-honor-6-test PRIVATE cpuinfo_mock gtest)
416 ADD_TEST(huawei-honor-6-test huawei-honor-6-test)
417
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700418 ADD_EXECUTABLE(lenovo-a6600-plus-test test/mock/lenovo-a6600-plus.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700419 TARGET_INCLUDE_DIRECTORIES(lenovo-a6600-plus-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700420 TARGET_LINK_LIBRARIES(lenovo-a6600-plus-test PRIVATE cpuinfo_mock gtest)
421 ADD_TEST(lenovo-a6600-plus-test lenovo-a6600-plus-test)
422
423 ADD_EXECUTABLE(lenovo-vibe-x2-test test/mock/lenovo-vibe-x2.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700424 TARGET_INCLUDE_DIRECTORIES(lenovo-vibe-x2-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700425 TARGET_LINK_LIBRARIES(lenovo-vibe-x2-test PRIVATE cpuinfo_mock gtest)
426 ADD_TEST(lenovo-vibe-x2-test lenovo-vibe-x2-test)
427
428 ADD_EXECUTABLE(lg-k10-eu-test test/mock/lg-k10-eu.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700429 TARGET_INCLUDE_DIRECTORIES(lg-k10-eu-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700430 TARGET_LINK_LIBRARIES(lg-k10-eu-test PRIVATE cpuinfo_mock gtest)
431 ADD_TEST(lg-k10-eu-test lg-k10-eu-test)
432
Marat Dukhandc58d502018-01-04 20:25:30 -0800433 ADD_EXECUTABLE(lg-optimus-g-pro-test test/mock/lg-optimus-g-pro.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700434 TARGET_INCLUDE_DIRECTORIES(lg-optimus-g-pro-test BEFORE PRIVATE test/mock)
Marat Dukhandc58d502018-01-04 20:25:30 -0800435 TARGET_LINK_LIBRARIES(lg-optimus-g-pro-test PRIVATE cpuinfo_mock gtest)
436 ADD_TEST(lg-optimus-g-pro-test lg-optimus-g-pro-test)
437
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700438 ADD_EXECUTABLE(moto-e-gen1-test test/mock/moto-e-gen1.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700439 TARGET_INCLUDE_DIRECTORIES(moto-e-gen1-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700440 TARGET_LINK_LIBRARIES(moto-e-gen1-test PRIVATE cpuinfo_mock gtest)
441 ADD_TEST(moto-e-gen1-test moto-e-gen1-test)
442
Marat Dukhan92db81f2018-01-05 19:01:52 -0800443 ADD_EXECUTABLE(moto-g-gen1-test test/mock/moto-g-gen1.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700444 TARGET_INCLUDE_DIRECTORIES(moto-g-gen1-test BEFORE PRIVATE test/mock)
Marat Dukhan92db81f2018-01-05 19:01:52 -0800445 TARGET_LINK_LIBRARIES(moto-g-gen1-test PRIVATE cpuinfo_mock gtest)
446 ADD_TEST(moto-g-gen1-test moto-g-gen1-test)
447
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700448 ADD_EXECUTABLE(moto-g-gen2-test test/mock/moto-g-gen2.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700449 TARGET_INCLUDE_DIRECTORIES(moto-g-gen2-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700450 TARGET_LINK_LIBRARIES(moto-g-gen2-test PRIVATE cpuinfo_mock gtest)
451 ADD_TEST(moto-g-gen2-test moto-g-gen2-test)
452
453 ADD_EXECUTABLE(moto-g-gen3-test test/mock/moto-g-gen3.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700454 TARGET_INCLUDE_DIRECTORIES(moto-g-gen3-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700455 TARGET_LINK_LIBRARIES(moto-g-gen3-test PRIVATE cpuinfo_mock gtest)
456 ADD_TEST(moto-g-gen3-test moto-g-gen3-test)
457
Marat Dukhan76829232018-03-02 12:58:30 -0800458 ADD_EXECUTABLE(moto-g-gen4-test test/mock/moto-g-gen4.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700459 TARGET_INCLUDE_DIRECTORIES(moto-g-gen4-test BEFORE PRIVATE test/mock)
Marat Dukhan76829232018-03-02 12:58:30 -0800460 TARGET_LINK_LIBRARIES(moto-g-gen4-test PRIVATE cpuinfo_mock gtest)
461 ADD_TEST(moto-g-gen4-test moto-g-gen4-test)
462
Marat Dukhan2bfb2c42018-07-13 22:08:12 -0700463 ADD_EXECUTABLE(moto-g-gen5-test test/mock/moto-g-gen5.cc)
464 TARGET_INCLUDE_DIRECTORIES(moto-g-gen5-test BEFORE PRIVATE test/mock)
465 TARGET_LINK_LIBRARIES(moto-g-gen5-test PRIVATE cpuinfo_mock gtest)
466 ADD_TEST(moto-g-gen5-test moto-g-gen5-test)
467
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700468 ADD_EXECUTABLE(nexus-s-test test/mock/nexus-s.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700469 TARGET_INCLUDE_DIRECTORIES(nexus-s-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700470 TARGET_LINK_LIBRARIES(nexus-s-test PRIVATE cpuinfo_mock gtest)
471 ADD_TEST(nexus-s-test nexus-s-test)
472
473 ADD_EXECUTABLE(nexus4-test test/mock/nexus4.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700474 TARGET_INCLUDE_DIRECTORIES(nexus4-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700475 TARGET_LINK_LIBRARIES(nexus4-test PRIVATE cpuinfo_mock gtest)
476 ADD_TEST(nexus4-test nexus4-test)
477
478 ADD_EXECUTABLE(nexus6-test test/mock/nexus6.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700479 TARGET_INCLUDE_DIRECTORIES(nexus6-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700480 TARGET_LINK_LIBRARIES(nexus6-test PRIVATE cpuinfo_mock gtest)
481 ADD_TEST(nexus6-test nexus6-test)
482
Marat Dukhan2ca13b22018-01-04 18:52:46 -0800483 ADD_EXECUTABLE(nexus10-test test/mock/nexus10.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700484 TARGET_INCLUDE_DIRECTORIES(nexus10-test BEFORE PRIVATE test/mock)
Marat Dukhan2ca13b22018-01-04 18:52:46 -0800485 TARGET_LINK_LIBRARIES(nexus10-test PRIVATE cpuinfo_mock gtest)
486 ADD_TEST(nexus10-test nexus10-test)
487
Marat Dukhan59572542017-11-27 17:22:09 -0800488 ADD_EXECUTABLE(padcod-10.1-test test/mock/padcod-10.1.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700489 TARGET_INCLUDE_DIRECTORIES(padcod-10.1-test BEFORE PRIVATE test/mock)
Marat Dukhan59572542017-11-27 17:22:09 -0800490 TARGET_LINK_LIBRARIES(padcod-10.1-test PRIVATE cpuinfo_mock gtest)
491 ADD_TEST(padcod-10.1-test padcod-10.1-test)
492
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700493 ADD_EXECUTABLE(xiaomi-redmi-2a-test test/mock/xiaomi-redmi-2a.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700494 TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-2a-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700495 TARGET_LINK_LIBRARIES(xiaomi-redmi-2a-test PRIVATE cpuinfo_mock gtest)
496 ADD_TEST(xiaomi-redmi-2a-test xiaomi-redmi-2a-test)
Marat Dukhanad741842017-12-03 23:11:46 -0800497
498 ADD_EXECUTABLE(xperia-sl-test test/mock/xperia-sl.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700499 TARGET_INCLUDE_DIRECTORIES(xperia-sl-test BEFORE PRIVATE test/mock)
Marat Dukhanad741842017-12-03 23:11:46 -0800500 TARGET_LINK_LIBRARIES(xperia-sl-test PRIVATE cpuinfo_mock gtest)
501 ADD_TEST(xperia-sl-test xperia-sl-test)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700502 ENDIF()
503
504 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a|aarch64)$")
Marat Dukhanc246e322018-01-26 11:21:48 -0800505 ADD_EXECUTABLE(alcatel-revvl-test test/mock/alcatel-revvl.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700506 TARGET_INCLUDE_DIRECTORIES(alcatel-revvl-test BEFORE PRIVATE test/mock)
Marat Dukhanc246e322018-01-26 11:21:48 -0800507 TARGET_LINK_LIBRARIES(alcatel-revvl-test PRIVATE cpuinfo_mock gtest)
508 ADD_TEST(alcatel-revvl-test alcatel-revvl-test)
509
Marat Dukhan89a3f082018-03-13 11:59:03 -0700510 ADD_EXECUTABLE(galaxy-a8-2018-test test/mock/galaxy-a8-2018.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700511 TARGET_INCLUDE_DIRECTORIES(galaxy-a8-2018-test BEFORE PRIVATE test/mock)
Marat Dukhan89a3f082018-03-13 11:59:03 -0700512 TARGET_LINK_LIBRARIES(galaxy-a8-2018-test PRIVATE cpuinfo_mock gtest)
513 ADD_TEST(galaxy-a8-2018-test galaxy-a8-2018-test)
514
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700515 ADD_EXECUTABLE(galaxy-c9-pro-test test/mock/galaxy-c9-pro.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700516 TARGET_INCLUDE_DIRECTORIES(galaxy-c9-pro-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700517 TARGET_LINK_LIBRARIES(galaxy-c9-pro-test PRIVATE cpuinfo_mock gtest)
518 ADD_TEST(galaxy-c9-pro-test galaxy-c9-pro-test)
519
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700520 ADD_EXECUTABLE(galaxy-s6-test test/mock/galaxy-s6.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700521 TARGET_INCLUDE_DIRECTORIES(galaxy-s6-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700522 TARGET_LINK_LIBRARIES(galaxy-s6-test PRIVATE cpuinfo_mock gtest)
523 ADD_TEST(galaxy-s6-test galaxy-s6-test)
524
525 ADD_EXECUTABLE(galaxy-s7-us-test test/mock/galaxy-s7-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700526 TARGET_INCLUDE_DIRECTORIES(galaxy-s7-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700527 TARGET_LINK_LIBRARIES(galaxy-s7-us-test PRIVATE cpuinfo_mock gtest)
528 ADD_TEST(galaxy-s7-us-test galaxy-s7-us-test)
529
530 ADD_EXECUTABLE(galaxy-s7-global-test test/mock/galaxy-s7-global.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700531 TARGET_INCLUDE_DIRECTORIES(galaxy-s7-global-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700532 TARGET_LINK_LIBRARIES(galaxy-s7-global-test PRIVATE cpuinfo_mock gtest)
533 ADD_TEST(galaxy-s7-global-test galaxy-s7-global-test)
534
535 ADD_EXECUTABLE(galaxy-s8-us-test test/mock/galaxy-s8-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700536 TARGET_INCLUDE_DIRECTORIES(galaxy-s8-us-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700537 TARGET_LINK_LIBRARIES(galaxy-s8-us-test PRIVATE cpuinfo_mock gtest)
538 ADD_TEST(galaxy-s8-us-test galaxy-s8-us-test)
539
540 ADD_EXECUTABLE(galaxy-s8-global-test test/mock/galaxy-s8-global.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700541 TARGET_INCLUDE_DIRECTORIES(galaxy-s8-global-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700542 TARGET_LINK_LIBRARIES(galaxy-s8-global-test PRIVATE cpuinfo_mock gtest)
543 ADD_TEST(galaxy-s8-global-test galaxy-s8-global-test)
544
Marat Dukhand51d3952018-03-17 19:18:06 -0700545 ADD_EXECUTABLE(galaxy-s9-us-test test/mock/galaxy-s9-us.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700546 TARGET_INCLUDE_DIRECTORIES(galaxy-s9-us-test BEFORE PRIVATE test/mock)
Marat Dukhand51d3952018-03-17 19:18:06 -0700547 TARGET_LINK_LIBRARIES(galaxy-s9-us-test PRIVATE cpuinfo_mock gtest)
548 ADD_TEST(galaxy-s9-us-test galaxy-s9-us-test)
549
Marat Dukhan2f29c762018-04-10 22:07:36 -0700550 ADD_EXECUTABLE(galaxy-s9-global-test test/mock/galaxy-s9-global.cc)
551 TARGET_INCLUDE_DIRECTORIES(galaxy-s9-global-test BEFORE PRIVATE test/mock)
552 TARGET_LINK_LIBRARIES(galaxy-s9-global-test PRIVATE cpuinfo_mock gtest)
553 ADD_TEST(galaxy-s9-global-test galaxy-s9-global-test)
554
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700555 ADD_EXECUTABLE(huawei-mate-8-test test/mock/huawei-mate-8.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700556 TARGET_INCLUDE_DIRECTORIES(huawei-mate-8-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700557 TARGET_LINK_LIBRARIES(huawei-mate-8-test PRIVATE cpuinfo_mock gtest)
558 ADD_TEST(huawei-mate-8-test huawei-mate-8-test)
559
560 ADD_EXECUTABLE(huawei-mate-9-test test/mock/huawei-mate-9.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700561 TARGET_INCLUDE_DIRECTORIES(huawei-mate-9-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700562 TARGET_LINK_LIBRARIES(huawei-mate-9-test PRIVATE cpuinfo_mock gtest)
563 ADD_TEST(huawei-mate-9-test huawei-mate-9-test)
564
Marat Dukhan7be11402017-11-27 14:57:02 -0800565 ADD_EXECUTABLE(huawei-mate-10-test test/mock/huawei-mate-10.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700566 TARGET_INCLUDE_DIRECTORIES(huawei-mate-10-test BEFORE PRIVATE test/mock)
Marat Dukhan7be11402017-11-27 14:57:02 -0800567 TARGET_LINK_LIBRARIES(huawei-mate-10-test PRIVATE cpuinfo_mock gtest)
568 ADD_TEST(huawei-mate-10-test huawei-mate-10-test)
569
Marat Dukhana281cc92018-12-19 01:38:28 -0800570 ADD_EXECUTABLE(huawei-mate-20-test test/mock/huawei-mate-20.cc)
571 TARGET_INCLUDE_DIRECTORIES(huawei-mate-20-test BEFORE PRIVATE test/mock)
572 TARGET_LINK_LIBRARIES(huawei-mate-20-test PRIVATE cpuinfo_mock gtest)
573 ADD_TEST(huawei-mate-20-test huawei-mate-20-test)
574
Marat Dukhan705122f2018-01-03 18:24:55 -0800575 ADD_EXECUTABLE(huawei-p8-lite-test test/mock/huawei-p8-lite.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700576 TARGET_INCLUDE_DIRECTORIES(huawei-p8-lite-test BEFORE PRIVATE test/mock)
Marat Dukhan705122f2018-01-03 18:24:55 -0800577 TARGET_LINK_LIBRARIES(huawei-p8-lite-test PRIVATE cpuinfo_mock gtest)
578 ADD_TEST(huawei-p8-lite-test huawei-p8-lite-test)
579
580 ADD_EXECUTABLE(huawei-p9-lite-test test/mock/huawei-p9-lite.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700581 TARGET_INCLUDE_DIRECTORIES(huawei-p9-lite-test BEFORE PRIVATE test/mock)
Marat Dukhan705122f2018-01-03 18:24:55 -0800582 TARGET_LINK_LIBRARIES(huawei-p9-lite-test PRIVATE cpuinfo_mock gtest)
583 ADD_TEST(huawei-p9-lite-test huawei-p9-lite-test)
584
Marat Dukhan09021042018-07-13 19:53:15 -0700585 ADD_EXECUTABLE(huawei-p20-pro-test test/mock/huawei-p20-pro.cc)
586 TARGET_INCLUDE_DIRECTORIES(huawei-p20-pro-test BEFORE PRIVATE test/mock)
587 TARGET_LINK_LIBRARIES(huawei-p20-pro-test PRIVATE cpuinfo_mock gtest)
588 ADD_TEST(huawei-p20-pro-test huawei-p20-pro-test)
589
Marat Dukhan705122f2018-01-03 18:24:55 -0800590 ADD_EXECUTABLE(iconia-one-10-test test/mock/iconia-one-10.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700591 TARGET_INCLUDE_DIRECTORIES(iconia-one-10-test BEFORE PRIVATE test/mock)
Marat Dukhan705122f2018-01-03 18:24:55 -0800592 TARGET_LINK_LIBRARIES(iconia-one-10-test PRIVATE cpuinfo_mock gtest)
593 ADD_TEST(iconia-one-10-test iconia-one-10-test)
594
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700595 ADD_EXECUTABLE(meizu-pro-6-test test/mock/meizu-pro-6.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700596 TARGET_INCLUDE_DIRECTORIES(meizu-pro-6-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700597 TARGET_LINK_LIBRARIES(meizu-pro-6-test PRIVATE cpuinfo_mock gtest)
598 ADD_TEST(meizu-pro-6-test meizu-pro-6-test)
599
600 ADD_EXECUTABLE(meizu-pro-6s-test test/mock/meizu-pro-6s.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700601 TARGET_INCLUDE_DIRECTORIES(meizu-pro-6s-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700602 TARGET_LINK_LIBRARIES(meizu-pro-6s-test PRIVATE cpuinfo_mock gtest)
603 ADD_TEST(meizu-pro-6s-test meizu-pro-6s-test)
604
605 ADD_EXECUTABLE(meizu-pro-7-plus-test test/mock/meizu-pro-7-plus.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700606 TARGET_INCLUDE_DIRECTORIES(meizu-pro-7-plus-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700607 TARGET_LINK_LIBRARIES(meizu-pro-7-plus-test PRIVATE cpuinfo_mock gtest)
608 ADD_TEST(meizu-pro-7-plus-test meizu-pro-7-plus-test)
609
610 ADD_EXECUTABLE(nexus5x-test test/mock/nexus5x.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700611 TARGET_INCLUDE_DIRECTORIES(nexus5x-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700612 TARGET_LINK_LIBRARIES(nexus5x-test PRIVATE cpuinfo_mock gtest)
613 ADD_TEST(nexus5x-test nexus5x-test)
614
615 ADD_EXECUTABLE(nexus6p-test test/mock/nexus6p.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700616 TARGET_INCLUDE_DIRECTORIES(nexus6p-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700617 TARGET_LINK_LIBRARIES(nexus6p-test PRIVATE cpuinfo_mock gtest)
618 ADD_TEST(nexus6p-test nexus6p-test)
619
620 ADD_EXECUTABLE(nexus9-test test/mock/nexus9.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700621 TARGET_INCLUDE_DIRECTORIES(nexus9-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700622 TARGET_LINK_LIBRARIES(nexus9-test PRIVATE cpuinfo_mock gtest)
623 ADD_TEST(nexus9-test nexus9-test)
624
Marat Dukhan4d4d7e22018-03-02 10:34:59 -0800625 ADD_EXECUTABLE(oneplus-3t-test test/mock/oneplus-3t.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700626 TARGET_INCLUDE_DIRECTORIES(oneplus-3t-test BEFORE PRIVATE test/mock)
Marat Dukhan4d4d7e22018-03-02 10:34:59 -0800627 TARGET_LINK_LIBRARIES(oneplus-3t-test PRIVATE cpuinfo_mock gtest)
628 ADD_TEST(oneplus-3t-test oneplus-3t-test)
629
Marat Dukhan52621bb2018-03-02 10:51:11 -0800630 ADD_EXECUTABLE(oneplus-5-test test/mock/oneplus-5.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700631 TARGET_INCLUDE_DIRECTORIES(oneplus-5-test BEFORE PRIVATE test/mock)
Marat Dukhan52621bb2018-03-02 10:51:11 -0800632 TARGET_LINK_LIBRARIES(oneplus-5-test PRIVATE cpuinfo_mock gtest)
633 ADD_TEST(oneplus-5-test oneplus-5-test)
634
Marat Dukhand00216b2018-03-02 11:43:51 -0800635 ADD_EXECUTABLE(oneplus-5t-test test/mock/oneplus-5t.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700636 TARGET_INCLUDE_DIRECTORIES(oneplus-5t-test BEFORE PRIVATE test/mock)
Marat Dukhand00216b2018-03-02 11:43:51 -0800637 TARGET_LINK_LIBRARIES(oneplus-5t-test PRIVATE cpuinfo_mock gtest)
638 ADD_TEST(oneplus-5t-test oneplus-5t-test)
639
Marat Dukhan75dd8a12017-12-04 15:43:02 -0800640 ADD_EXECUTABLE(oppo-a37-test test/mock/oppo-a37.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700641 TARGET_INCLUDE_DIRECTORIES(oppo-a37-test BEFORE PRIVATE test/mock)
Marat Dukhan75dd8a12017-12-04 15:43:02 -0800642 TARGET_LINK_LIBRARIES(oppo-a37-test PRIVATE cpuinfo_mock gtest)
643 ADD_TEST(oppo-a37-test oppo-a37-test)
644
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700645 ADD_EXECUTABLE(oppo-r9-test test/mock/oppo-r9.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700646 TARGET_INCLUDE_DIRECTORIES(oppo-r9-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700647 TARGET_LINK_LIBRARIES(oppo-r9-test PRIVATE cpuinfo_mock gtest)
648 ADD_TEST(oppo-r9-test oppo-r9-test)
649
Marat Dukhan31b7c012018-07-13 21:24:51 -0700650 ADD_EXECUTABLE(oppo-r15-test test/mock/oppo-r15.cc)
651 TARGET_INCLUDE_DIRECTORIES(oppo-r15-test BEFORE PRIVATE test/mock)
652 TARGET_LINK_LIBRARIES(oppo-r15-test PRIVATE cpuinfo_mock gtest)
653 ADD_TEST(oppo-r15-test oppo-r15-test)
654
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700655 ADD_EXECUTABLE(pixel-test test/mock/pixel.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700656 TARGET_INCLUDE_DIRECTORIES(pixel-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700657 TARGET_LINK_LIBRARIES(pixel-test PRIVATE cpuinfo_mock gtest)
658 ADD_TEST(pixel-test pixel-test)
659
660 ADD_EXECUTABLE(pixel-c-test test/mock/pixel-c.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700661 TARGET_INCLUDE_DIRECTORIES(pixel-c-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700662 TARGET_LINK_LIBRARIES(pixel-c-test PRIVATE cpuinfo_mock gtest)
663 ADD_TEST(pixel-c-test pixel-c-test)
664
665 ADD_EXECUTABLE(pixel-xl-test test/mock/pixel-xl.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700666 TARGET_INCLUDE_DIRECTORIES(pixel-xl-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700667 TARGET_LINK_LIBRARIES(pixel-xl-test PRIVATE cpuinfo_mock gtest)
668 ADD_TEST(pixel-xl-test pixel-xl-test)
669
Marat Dukhan9bfb1072017-11-27 17:02:25 -0800670 ADD_EXECUTABLE(pixel-2-xl-test test/mock/pixel-2-xl.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700671 TARGET_INCLUDE_DIRECTORIES(pixel-2-xl-test BEFORE PRIVATE test/mock)
Marat Dukhan9bfb1072017-11-27 17:02:25 -0800672 TARGET_LINK_LIBRARIES(pixel-2-xl-test PRIVATE cpuinfo_mock gtest)
673 ADD_TEST(pixel-2-xl-test pixel-2-xl-test)
674
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700675 ADD_EXECUTABLE(xiaomi-mi-5c-test test/mock/xiaomi-mi-5c.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700676 TARGET_INCLUDE_DIRECTORIES(xiaomi-mi-5c-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700677 TARGET_LINK_LIBRARIES(xiaomi-mi-5c-test PRIVATE cpuinfo_mock gtest)
678 ADD_TEST(xiaomi-mi-5c-test xiaomi-mi-5c-test)
679
680 ADD_EXECUTABLE(xiaomi-redmi-note-3-test test/mock/xiaomi-redmi-note-3.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700681 TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-note-3-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700682 TARGET_LINK_LIBRARIES(xiaomi-redmi-note-3-test PRIVATE cpuinfo_mock gtest)
683 ADD_TEST(xiaomi-redmi-note-3-test xiaomi-redmi-note-3-test)
684
Marat Dukhana5fda232017-12-04 16:08:25 -0800685 ADD_EXECUTABLE(xiaomi-redmi-note-4-test test/mock/xiaomi-redmi-note-4.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700686 TARGET_INCLUDE_DIRECTORIES(xiaomi-redmi-note-4-test BEFORE PRIVATE test/mock)
Marat Dukhana5fda232017-12-04 16:08:25 -0800687 TARGET_LINK_LIBRARIES(xiaomi-redmi-note-4-test PRIVATE cpuinfo_mock gtest)
688 ADD_TEST(xiaomi-redmi-note-4-test xiaomi-redmi-note-4-test)
689
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700690 ADD_EXECUTABLE(xperia-c4-dual-test test/mock/xperia-c4-dual.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700691 TARGET_INCLUDE_DIRECTORIES(xperia-c4-dual-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700692 TARGET_LINK_LIBRARIES(xperia-c4-dual-test PRIVATE cpuinfo_mock gtest)
693 ADD_TEST(xperia-c4-dual-test xperia-c4-dual-test)
694 ENDIF()
695
696 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(i686|x86_64)$")
Marat Dukhanaf8a12d2017-12-08 16:12:16 -0800697 ADD_EXECUTABLE(alldocube-iwork8-test test/mock/alldocube-iwork8.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700698 TARGET_INCLUDE_DIRECTORIES(alldocube-iwork8-test BEFORE PRIVATE test/mock)
Marat Dukhanaf8a12d2017-12-08 16:12:16 -0800699 TARGET_LINK_LIBRARIES(alldocube-iwork8-test PRIVATE cpuinfo_mock gtest)
700 ADD_TEST(alldocube-iwork8-test alldocube-iwork8-test)
701
Marat Dukhan3b434e62018-04-07 02:23:55 -0700702 ADD_EXECUTABLE(leagoo-t5c-test test/mock/leagoo-t5c.cc)
703 TARGET_INCLUDE_DIRECTORIES(leagoo-t5c-test BEFORE PRIVATE test/mock)
704 TARGET_LINK_LIBRARIES(leagoo-t5c-test PRIVATE cpuinfo_mock gtest)
705 ADD_TEST(leagoo-t5c-test leagoo-t5c-test)
706
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700707 ADD_EXECUTABLE(memo-pad-7-test test/mock/memo-pad-7.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700708 TARGET_INCLUDE_DIRECTORIES(memo-pad-7-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700709 TARGET_LINK_LIBRARIES(memo-pad-7-test PRIVATE cpuinfo_mock gtest)
710 ADD_TEST(memo-pad-7-test memo-pad-7-test)
711
712 ADD_EXECUTABLE(zenfone-c-test test/mock/zenfone-c.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700713 TARGET_INCLUDE_DIRECTORIES(zenfone-c-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700714 TARGET_LINK_LIBRARIES(zenfone-c-test PRIVATE cpuinfo_mock gtest)
715 ADD_TEST(zenfone-c-test zenfone-c-test)
716
717 ADD_EXECUTABLE(zenfone-2-test test/mock/zenfone-2.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700718 TARGET_INCLUDE_DIRECTORIES(zenfone-2-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700719 TARGET_LINK_LIBRARIES(zenfone-2-test PRIVATE cpuinfo_mock gtest)
720 ADD_TEST(zenfone-2-test zenfone-2-test)
721
722 ADD_EXECUTABLE(zenfone-2e-test test/mock/zenfone-2e.cc)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700723 TARGET_INCLUDE_DIRECTORIES(zenfone-2e-test BEFORE PRIVATE test/mock)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700724 TARGET_LINK_LIBRARIES(zenfone-2e-test PRIVATE cpuinfo_mock gtest)
725 ADD_TEST(zenfone-2e-test zenfone-2e-test)
726 ENDIF()
727ENDIF()
728
729# ---[ cpuinfo unit tests
Marat Dukhan249d3142018-03-15 23:20:11 -0700730IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_UNIT_TESTS)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700731 ADD_EXECUTABLE(init-test test/init.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100732 CPUINFO_TARGET_ENABLE_CXX11(init-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700733 CPUINFO_TARGET_RUNTIME_LIBRARY(init-test)
Hao Lu4e8f0432018-07-23 23:32:16 -0700734 TARGET_LINK_LIBRARIES(init-test PRIVATE cpuinfo gtest gtest_main)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700735 ADD_TEST(init-test init-test)
736
737 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android")
738 ADD_EXECUTABLE(get-current-test test/get-current.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100739 CPUINFO_TARGET_ENABLE_CXX11(get-current-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700740 CPUINFO_TARGET_RUNTIME_LIBRARY(get-current-test)
Hao Lu4e8f0432018-07-23 23:32:16 -0700741 TARGET_LINK_LIBRARIES(get-current-test PRIVATE cpuinfo gtest gtest_main)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700742 ADD_TEST(get-current-test get-current-test)
743 ENDIF()
744
Marat Dukhana9103882018-10-30 22:02:37 -1000745 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86_64)$")
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700746 ADD_EXECUTABLE(brand-string-test test/name/brand-string.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100747 CPUINFO_TARGET_ENABLE_CXX11(brand-string-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700748 CPUINFO_TARGET_RUNTIME_LIBRARY(brand-string-test)
Marat Dukhanccbddb52018-12-16 01:51:31 -0800749 TARGET_LINK_LIBRARIES(brand-string-test PRIVATE cpuinfo_internals gtest gtest_main)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700750 ADD_TEST(brand-string-test brand-string-test)
751 ENDIF()
752
Marat Dukhana9103882018-10-30 22:02:37 -1000753 IF(CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv[5-8].*|aarch64)$")
Marat Dukhancddf01b2018-02-25 01:37:55 +0100754 ADD_LIBRARY(android_properties_interface STATIC test/name/android-properties-interface.c)
755 CPUINFO_TARGET_ENABLE_C99(android_properties_interface)
Marat Dukhand0222b42018-03-26 11:19:48 -0700756 CPUINFO_TARGET_RUNTIME_LIBRARY(android_properties_interface)
Marat Dukhanccbddb52018-12-16 01:51:31 -0800757 TARGET_LINK_LIBRARIES(android_properties_interface PRIVATE cpuinfo_internals)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700758
759 ADD_EXECUTABLE(chipset-test
760 test/name/proc-cpuinfo-hardware.cc
761 test/name/ro-product-board.cc
762 test/name/ro-board-platform.cc
763 test/name/ro-mediatek-platform.cc
Marat Dukhane5d60492018-03-08 12:47:27 -0800764 test/name/ro-arch.cc
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700765 test/name/ro-chipname.cc
766 test/name/android-properties.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100767 CPUINFO_TARGET_ENABLE_CXX11(chipset-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700768 CPUINFO_TARGET_RUNTIME_LIBRARY(chipset-test)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700769 TARGET_LINK_LIBRARIES(chipset-test PRIVATE android_properties_interface gtest gtest_main)
770 ADD_TEST(chipset-test chipset-test)
771
772 ADD_EXECUTABLE(cache-test test/arm-cache.cc)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100773 CPUINFO_TARGET_ENABLE_CXX11(cache-test)
Marat Dukhand0222b42018-03-26 11:19:48 -0700774 CPUINFO_TARGET_RUNTIME_LIBRARY(cache-test)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100775 TARGET_COMPILE_DEFINITIONS(cache-test PRIVATE __STDC_LIMIT_MACROS=1 __STDC_CONSTANT_MACROS=1)
Marat Dukhanccbddb52018-12-16 01:51:31 -0800776 TARGET_LINK_LIBRARIES(cache-test PRIVATE cpuinfo_internals gtest gtest_main)
Marat Dukhanf1c4a5c2017-10-25 17:22:11 -0700777 ADD_TEST(cache-test, cache-test)
778 ENDIF()
Marat Dukhanb8a83372017-10-13 21:07:44 -0400779ENDIF()
780
Marat Dukhan3645b922017-10-13 17:03:35 -0400781# ---[ Helper and debug tools
Marat Dukhan249d3142018-03-15 23:20:11 -0700782IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_TOOLS)
Marat Dukhan3645b922017-10-13 17:03:35 -0400783 ADD_EXECUTABLE(isa-info tools/isa-info.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100784 CPUINFO_TARGET_ENABLE_C99(isa-info)
Marat Dukhand0222b42018-03-26 11:19:48 -0700785 CPUINFO_TARGET_RUNTIME_LIBRARY(isa-info)
Marat Dukhan3645b922017-10-13 17:03:35 -0400786 TARGET_LINK_LIBRARIES(isa-info PRIVATE cpuinfo)
Alexander GQ Gerasiov29b6cdd2019-01-30 11:50:15 +0300787 INSTALL(TARGETS isa-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
Marat Dukhan3645b922017-10-13 17:03:35 -0400788
789 ADD_EXECUTABLE(cpu-info tools/cpu-info.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100790 CPUINFO_TARGET_ENABLE_C99(cpu-info)
Marat Dukhand0222b42018-03-26 11:19:48 -0700791 CPUINFO_TARGET_RUNTIME_LIBRARY(cpu-info)
Marat Dukhan3645b922017-10-13 17:03:35 -0400792 TARGET_LINK_LIBRARIES(cpu-info PRIVATE cpuinfo)
Alexander GQ Gerasiov29b6cdd2019-01-30 11:50:15 +0300793 INSTALL(TARGETS cpu-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
Marat Dukhan3645b922017-10-13 17:03:35 -0400794
795 ADD_EXECUTABLE(cache-info tools/cache-info.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100796 CPUINFO_TARGET_ENABLE_C99(cache-info)
Marat Dukhand0222b42018-03-26 11:19:48 -0700797 CPUINFO_TARGET_RUNTIME_LIBRARY(cache-info)
Marat Dukhan3645b922017-10-13 17:03:35 -0400798 TARGET_LINK_LIBRARIES(cache-info PRIVATE cpuinfo)
Alexander GQ Gerasiov29b6cdd2019-01-30 11:50:15 +0300799 INSTALL(TARGETS cache-info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
Marat Dukhan3645b922017-10-13 17:03:35 -0400800
Marat Dukhana9103882018-10-30 22:02:37 -1000801 IF(CMAKE_SYSTEM_NAME MATCHES "^(Android|Linux)$" AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv[5-8].*|aarch64)$")
Marat Dukhanf3a71e62017-11-29 15:15:36 -0800802 ADD_EXECUTABLE(auxv-dump tools/auxv-dump.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100803 CPUINFO_TARGET_ENABLE_C99(auxv-dump)
Marat Dukhand0222b42018-03-26 11:19:48 -0700804 CPUINFO_TARGET_RUNTIME_LIBRARY(auxv-dump)
Marat Dukhan33011de2018-07-13 19:46:06 -0700805 TARGET_LINK_LIBRARIES(auxv-dump PRIVATE ${CMAKE_DL_LIBS} cpuinfo)
Marat Dukhancb9ae9c2018-04-19 12:29:15 -0700806
807 ADD_EXECUTABLE(cpuinfo-dump tools/cpuinfo-dump.c)
808 CPUINFO_TARGET_ENABLE_C99(cpuinfo-dump)
809 CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo-dump)
Marat Dukhanf3a71e62017-11-29 15:15:36 -0800810 ENDIF()
811
Marat Dukhana9103882018-10-30 22:02:37 -1000812 IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86_64)$")
Marat Dukhan3645b922017-10-13 17:03:35 -0400813 ADD_EXECUTABLE(cpuid-dump tools/cpuid-dump.c)
Marat Dukhancddf01b2018-02-25 01:37:55 +0100814 CPUINFO_TARGET_ENABLE_C99(cpuid-dump)
Marat Dukhand0222b42018-03-26 11:19:48 -0700815 CPUINFO_TARGET_RUNTIME_LIBRARY(cpuid-dump)
Marat Dukhan806dcca2018-03-22 12:22:48 -0700816 TARGET_INCLUDE_DIRECTORIES(cpuid-dump BEFORE PRIVATE src)
817 TARGET_INCLUDE_DIRECTORIES(cpuid-dump BEFORE PRIVATE include)
Alexander GQ Gerasiov29b6cdd2019-01-30 11:50:15 +0300818 INSTALL(TARGETS cpuid-dump RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
Marat Dukhan3645b922017-10-13 17:03:35 -0400819 ENDIF()
820ENDIF()