2021-07-17 06:20:35 +00:00
|
|
|
cmake_minimum_required(VERSION 3.13)
|
2020-02-06 06:02:51 +00:00
|
|
|
|
2024-08-26 09:05:12 +00:00
|
|
|
set(VERSION "0.7.0")
|
|
|
|
set(LIBCPUID_CURRENT 17)
|
2022-10-22 19:16:44 +00:00
|
|
|
set(LIBCPUID_AGE 0)
|
2024-08-26 09:05:12 +00:00
|
|
|
set(LIBCPUID_REVISION 0)
|
2020-05-21 16:43:34 +00:00
|
|
|
project(
|
|
|
|
cpuid
|
2024-07-10 14:53:19 +00:00
|
|
|
LANGUAGES C ASM_MASM
|
2020-05-21 16:43:34 +00:00
|
|
|
VERSION ${VERSION})
|
2020-02-06 06:02:51 +00:00
|
|
|
|
2024-07-10 18:16:19 +00:00
|
|
|
# CMake modules
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
|
|
|
|
|
2021-07-15 22:49:00 +00:00
|
|
|
if(MSVC)
|
|
|
|
set(LIBCPUID_SHARED OFF)
|
|
|
|
else()
|
|
|
|
set(LIBCPUID_SHARED ON)
|
|
|
|
endif()
|
2024-07-10 18:56:38 +00:00
|
|
|
|
|
|
|
# Options
|
|
|
|
option(BUILD_SHARED_LIBS "Build building shared libraries" ${LIBCPUID_SHARED})
|
|
|
|
option(LIBCPUID_BUILD_DRIVERS "Enable building kernel drivers" ON)
|
|
|
|
option(LIBCPUID_ENABLE_TESTS "Enable tests targets" OFF)
|
2021-07-15 22:46:09 +00:00
|
|
|
|
2020-02-06 09:12:29 +00:00
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
set(CMAKE_C_STANDARD 99)
|
2020-02-06 06:02:51 +00:00
|
|
|
|
2023-05-19 04:57:27 +00:00
|
|
|
# pthreads library
|
|
|
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "DragonFly" OR ${CMAKE_SYSTEM_NAME} STREQUAL "NetBSD")
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
# check if popcount64 is available
|
|
|
|
include(CheckSymbolExists)
|
|
|
|
check_symbol_exists(popcount64 "string.h" HAVE_POPCOUNT64)
|
|
|
|
if(HAVE_POPCOUNT64)
|
|
|
|
add_definitions(-DHAVE_POPCOUNT64)
|
|
|
|
endif(HAVE_POPCOUNT64)
|
|
|
|
|
2024-06-28 18:41:00 +00:00
|
|
|
# check if auxiliary vector is available
|
|
|
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
|
|
check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL)
|
|
|
|
if(HAVE_GETAUXVAL)
|
|
|
|
add_definitions(-DHAVE_GETAUXVAL)
|
|
|
|
endif(HAVE_GETAUXVAL)
|
|
|
|
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
|
|
|
check_symbol_exists(elf_aux_info "sys/auxv.h" HAVE_ELF_AUX_INFO)
|
|
|
|
if(HAVE_ELF_AUX_INFO)
|
|
|
|
add_definitions(-DHAVE_ELF_AUX_INFO)
|
|
|
|
endif(HAVE_ELF_AUX_INFO)
|
|
|
|
endif()
|
|
|
|
|
2020-05-21 16:43:34 +00:00
|
|
|
# Global variables
|
|
|
|
if(UNIX)
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
|
|
|
set(exec_prefix "\${prefix}")
|
|
|
|
set(libdir "\${exec_prefix}/lib")
|
|
|
|
set(includedir "\${prefix}/include")
|
2024-06-30 11:51:50 +00:00
|
|
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wuninitialized -Wstrict-prototypes -Wformat -Wformat-security -Wunused-parameter -Wdeprecated-declarations")
|
2020-05-21 16:43:34 +00:00
|
|
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libcpuid.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libcpuid.pc" ESCAPE_QUOTES
|
|
|
|
@ONLY)
|
|
|
|
install(FILES "${PROJECT_BINARY_DIR}/libcpuid.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
|
|
|
endif(UNIX)
|
|
|
|
|
|
|
|
# Include subdirectories
|
2020-02-06 06:02:51 +00:00
|
|
|
add_subdirectory(libcpuid)
|
2020-05-21 16:43:34 +00:00
|
|
|
add_subdirectory(cpuid_tool)
|
2024-07-10 18:56:38 +00:00
|
|
|
if(LIBCPUID_BUILD_DRIVERS)
|
2024-07-10 18:16:19 +00:00
|
|
|
add_subdirectory(drivers)
|
2024-07-10 18:56:38 +00:00
|
|
|
endif(LIBCPUID_BUILD_DRIVERS)
|
|
|
|
if(LIBCPUID_ENABLE_TESTS)
|
2021-07-15 22:46:09 +00:00
|
|
|
add_subdirectory(tests)
|
2024-07-10 18:56:38 +00:00
|
|
|
endif(LIBCPUID_ENABLE_TESTS)
|