1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2024-12-16 16:35:45 +00:00
libcpuid/CMakeLists.txt

76 lines
2.2 KiB
Text
Raw Normal View History

cmake_minimum_required(VERSION 3.13)
2020-02-06 06:02:51 +00:00
2024-04-28 10:20:48 +00:00
set(VERSION "0.6.5")
set(LIBCPUID_CURRENT 16)
set(LIBCPUID_AGE 0)
2024-04-28 10:20:48 +00:00
set(LIBCPUID_REVISION 5)
2020-05-21 16:43:34 +00:00
project(
cpuid
LANGUAGES C ASM_MASM
2020-05-21 16:43:34 +00:00
VERSION ${VERSION})
2020-02-06 06:02:51 +00:00
# CMake modules
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
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)
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
# 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)
# 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")
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)
add_subdirectory(drivers)
2024-07-10 18:56:38 +00:00
endif(LIBCPUID_BUILD_DRIVERS)
if(LIBCPUID_ENABLE_TESTS)
add_subdirectory(tests)
2024-07-10 18:56:38 +00:00
endif(LIBCPUID_ENABLE_TESTS)