feat: added compilable cmake for core, added method to get physical core count.

This commit is contained in:
KamilM1205 2026-03-27 19:30:27 +04:00
parent 1c6b515826
commit 734aee7d18
6 changed files with 113 additions and 0 deletions

View file

@ -0,0 +1,72 @@
include(FetchContent)
set(PJ_VERSION_TAG 2.16)
set(PJ_REPO https://github.com/pjsip/pjproject.git)
set(PJ_INSTALL_PATH ${PROJECT_SOURCE_DIR}/bin/pjproject/)
set(PJ_CONFIG_CMD "configure --prefix=${PJ_INSTALL_PATH}")
set(PJ_BUILD_CMD "make dep; make -j")
message(STATUS "PJProject build information:")
message(STATUS "Repo: ${PJ_REPO}")
message(STATUS "Version: ${PJ_VERSION_TAG}")
set(FETCHCONTENT_QUIET OFF)
FetchContent_Declare(
PJProject
GIT_REPOSITORY ${PJ_REPO}
GIT_TAG ${PJ_VERSION_TAG}
GIT_PROGRESS ON
)
FetchContent_GetProperties(PJProject)
if (NOT pjproject_POPULATED)
FetchContent_Populate(PJProject)
endif()
message(STATUS "PJProject sources at: ${pjproject_SOURCE_DIR}")
message(STATUS "Start building PJProject...")
execute_process(COMMAND "./configure --disable-pjsua2" WORKING_DIRECTORY ${pjproject_SOURCE_DIR} OUTPUT_VARIABLE exec_output_msgs)
message("${exec_output_msgs}")
execute_process(COMMAND make dep WORKING_DIRECTORY ${pjproject_SOURCE_DIR} OUTPUT_VARIABLE exec_output_msgs)
message("${exec_output_msgs}")
execute_process(COMMAND make WORKING_DIRECTORY ${pjproject_SOURCE_DIR} OUTPUT_VARIABLE exec_output_msgs)
message("${exec_output_msgs}")
file(GLOB PJ_LIB "${pjproject_SOURCE_DIR}/pjlib/lib/*pj-*")
if (NOT PJ_LIB)
message(FATAL_ERROR "Couldn't find pj-lib compiled library.")
endif()
message(STATUS "pj-lib lib at: ${PJSUA_LIB}")
file(GLOB PJSUA_LIB "${pjproject_SOURCE_DIR}/pjsip/lib/*pjsua-*")
if (NOT PJSUA_LIB)
message(FATAL_ERROR "Couldn't find pjsua compiled library.")
endif()
message(STATUS "pjsua lib at: ${PJSUA_LIB}")
add_library(pjproject::pj STATIC IMPORTED)
set_target_properties(pjproject::pj PROPERTIES
IMPORTED_LOCATION ${PJ_LIB}
)
add_library(pjproject::pjsua STATIC IMPORTED)
set_target_properties(pjproject::pjsua PROPERTIES
IMPORTED_LOCATION ${PJSUA_LIB}
)
target_include_directories(pjproject::pjsua
INTERFACE
$<BUILD_INTERFACE:${pjproject_SOURCE_DIR}/pjsip/include>
$<INSTALL_INTERFACE:include>
)