feat: added compilable cmake for core, added method to get physical core count.
This commit is contained in:
parent
1c6b515826
commit
734aee7d18
6 changed files with 113 additions and 0 deletions
|
|
@ -0,0 +1 @@
|
|||
add_subdirectory(src)
|
||||
13
core/src/CMakeLists.txt
Normal file
13
core/src/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
set(CORE_SRC
|
||||
core.c
|
||||
)
|
||||
|
||||
list(TRANSFORM CORE_SRC PREPEND ${CMAKE_CURRENT_LIST_DIR}/)
|
||||
|
||||
include(FetchContent)
|
||||
|
||||
find_package(OpenSSL REQUIRED)
|
||||
|
||||
add_library(pigeon-core ${CORE_SRC})
|
||||
target_include_directories(pigeon-core PUBLIC ${CMAKE_CURRENT_LIST_DIR}/src)
|
||||
target_link_libraries(pigeon-core OpenSSL::SSL)
|
||||
1
core/src/core.c
Normal file
1
core/src/core.c
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
0
core/src/core.h
Normal file
0
core/src/core.h
Normal file
26
core/src/thread_util.h
Normal file
26
core/src/thread_util.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef THREAD_UTIL_H
|
||||
#define THREAD_UTIL_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// Method return count of physical cores in system
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
#include <windows.h>
|
||||
|
||||
size_t get_core_count(void) {
|
||||
SYSTEM_INFO sys_info;
|
||||
GetSystemInfo(&sys_info);
|
||||
|
||||
return (size_t)sys_info.dwNumberOfProcessors;
|
||||
}
|
||||
#elif defined(__unix__) || defined(__unix) || \
|
||||
(defined(__APPLE__) && defined(__MACH__))
|
||||
#include <unistd.h>
|
||||
|
||||
size_t get_core_count(void) { return (size_t)sysconf(_SC_NPROCESSORS_ONLN); }
|
||||
#else
|
||||
#error "Get core count feature not realised for current platform."
|
||||
#endif
|
||||
|
||||
#endif // !THREAD_UTIL_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue