@@ -92,7 +92,7 @@ IF(NOT CMAKE_SYSTEM_PROCESSOR)
92
92
"cpuinfo will compile, but cpuinfo_initialize() will always fail." )
93
93
SET (CPUINFO_SUPPORTED_PLATFORM FALSE )
94
94
ENDIF ()
95
- ELSEIF (NOT CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?|armv[5-8].*|aarch64|arm64.*|ARM64.*)$" )
95
+ ELSEIF (NOT CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|amd64| x86(_64)?|armv[5-8].*|aarch64|arm64.*|ARM64.*)$" )
96
96
MESSAGE (WARNING
97
97
"Target processor architecture \" ${CPUINFO_TARGET_PROCESSOR} \" is not supported in cpuinfo. "
98
98
"cpuinfo will compile, but cpuinfo_initialize() will always fail." )
@@ -105,7 +105,7 @@ IF(NOT CMAKE_SYSTEM_NAME)
105
105
"Target operating system is not specified. "
106
106
"cpuinfo will compile, but cpuinfo_initialize() will always fail." )
107
107
SET (CPUINFO_SUPPORTED_PLATFORM FALSE )
108
- ELSEIF (NOT CMAKE_SYSTEM_NAME MATCHES "^(Windows|WindowsStore|CYGWIN|MSYS|Darwin|Linux|Android)$" )
108
+ ELSEIF (NOT CMAKE_SYSTEM_NAME MATCHES "^(Windows|WindowsStore|CYGWIN|MSYS|Darwin|Linux|Android|FreeBSD )$" )
109
109
IF (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14" AND NOT IS_APPLE_OS)
110
110
MESSAGE (WARNING
111
111
"Target operating system \" ${CMAKE_SYSTEM_NAME} \" is not supported in cpuinfo. "
@@ -152,7 +152,7 @@ ENDIF()
152
152
SET (CPUINFO_SRCS src/api.c src/cache .c src/init.c src/log .c)
153
153
154
154
IF (CPUINFO_SUPPORTED_PLATFORM)
155
- IF (NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten" AND (CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?)$" OR IOS_ARCH MATCHES "^(i386|x86_64)$" ))
155
+ IF (NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten" AND (CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|amd64| x86(_64)?)$" OR IOS_ARCH MATCHES "^(i386|x86_64)$" ))
156
156
LIST (APPEND CPUINFO_SRCS
157
157
src/x86/init.c
158
158
src/x86/info.c
@@ -172,6 +172,8 @@ IF(CPUINFO_SUPPORTED_PLATFORM)
172
172
LIST (APPEND CPUINFO_SRCS src/x86/mach/init.c)
173
173
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "^(Windows|WindowsStore|CYGWIN|MSYS)$" )
174
174
LIST (APPEND CPUINFO_SRCS src/x86/windows/init.c)
175
+ ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" )
176
+ LIST (APPEND CPUINFO_SRCS src/x86/freebsd/init.c)
175
177
ENDIF ()
176
178
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "^Windows" AND CPUINFO_TARGET_PROCESSOR MATCHES "^(ARM64|arm64)$" )
177
179
LIST (APPEND CPUINFO_SRCS
@@ -219,9 +221,11 @@ IF(CPUINFO_SUPPORTED_PLATFORM)
219
221
src/linux/processors .c)
220
222
ELSEIF (IS_APPLE_OS)
221
223
LIST (APPEND CPUINFO_SRCS src/mach/topology.c)
224
+ ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" )
225
+ LIST (APPEND CPUINFO_SRCS src/freebsd/topology.c)
222
226
ENDIF ()
223
227
224
- IF (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android" )
228
+ IF (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" )
225
229
SET (CMAKE_THREAD_PREFER_PTHREAD TRUE )
226
230
SET (THREADS_PREFER_PTHREAD_FLAG TRUE )
227
231
FIND_PACKAGE (Threads REQUIRED)
@@ -286,6 +290,9 @@ IF(CPUINFO_SUPPORTED_PLATFORM)
286
290
TARGET_LINK_LIBRARIES (cpuinfo_internals PUBLIC ${CMAKE_THREAD_LIBS_INIT} )
287
291
TARGET_COMPILE_DEFINITIONS (cpuinfo PRIVATE _GNU_SOURCE=1)
288
292
TARGET_COMPILE_DEFINITIONS (cpuinfo_internals PRIVATE _GNU_SOURCE=1)
293
+ ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" )
294
+ TARGET_LINK_LIBRARIES (cpuinfo PUBLIC ${CMAKE_THREAD_LIBS_INIT} )
295
+ TARGET_LINK_LIBRARIES (cpuinfo_internals PUBLIC ${CMAKE_THREAD_LIBS_INIT} )
289
296
ENDIF ()
290
297
ELSE ()
291
298
TARGET_COMPILE_DEFINITIONS (cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=0)
@@ -348,7 +355,7 @@ ENDIF()
348
355
# ---[ cpuinfo mock library and mock tests
349
356
IF (CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_MOCK_TESTS)
350
357
SET (CPUINFO_MOCK_SRCS "${CPUINFO_SRCS} " )
351
- IF (CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)? )$" )
358
+ IF (CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|amd64|x86_64 )$" )
352
359
LIST (APPEND CPUINFO_MOCK_SRCS src/x86/mockcpuid.c)
353
360
ENDIF ()
354
361
IF (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android" )
@@ -792,7 +799,7 @@ IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_UNIT_TESTS)
792
799
ADD_TEST (NAME get -current-test COMMAND get -current-test )
793
800
ENDIF ()
794
801
795
- IF (CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)? )$" )
802
+ IF (CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|amd64|x86_64 )$" )
796
803
ADD_EXECUTABLE (brand-string -test test /name /brand-string .cc)
797
804
CPUINFO_TARGET_ENABLE_CXX11(brand-string -test )
798
805
CPUINFO_TARGET_RUNTIME_LIBRARY(brand-string -test )
@@ -859,7 +866,7 @@ IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_TOOLS)
859
866
CPUINFO_TARGET_RUNTIME_LIBRARY(cpuinfo-dump)
860
867
ENDIF ()
861
868
862
- IF (CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)? )$" )
869
+ IF (CPUINFO_TARGET_PROCESSOR MATCHES "^(i[3-6]86|AMD64|amd64|x86_64 )$" )
863
870
ADD_EXECUTABLE (cpuid-dump tools/cpuid-dump.c)
864
871
CPUINFO_TARGET_ENABLE_C99(cpuid-dump)
865
872
CPUINFO_TARGET_RUNTIME_LIBRARY(cpuid-dump)
0 commit comments