Files
CPP_Core/3rd/asio/main.cmake_old
2026-06-16 10:56:40 +08:00

126 lines
4.2 KiB
Plaintext

#find_package(OpenSSL REQUIRED)
#
#_create_base(interface asio ${CMAKE_CURRENT_LIST_DIR}/src "")
#
#target_include_directories(asio INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include)
#
#
#target_compile_definitions(asio INTERFACE ASIO_STANDALONE)
#target_compile_definitions(asio INTERFACE ASIO_SEPARATE_COMPILATION)
#target_link_libraries(asio INTERFACE OpenSSL::SSL OpenSSL::Crypto)
#add_library(exe SHARED)
#target_link_libraries(exe PUBLIC asio)
# grep IO_URING /boot/config-$(uname -r)
#set(OPENSSL_ROOT_DIR ${CMAKE_SYSROOT}/usr)
#set(OPENSSL_ROOT_DIR ${CMAKE_SYSROOT})
#set(OPENSSL_ROOT_DIR "C:/wyc/toolchain/ubuntu_20_04_pure/x86_64-wyc-linux-gnu/sysroot/usr")
#set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/x86_64-linux-gnu/libcrypto.so")
#set(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include")
#message("OPENSSL_ROOT_DIR ${OPENSSL_ROOT_DIR}")
find_package(OpenSSL REQUIRED)
add_library(asio_interface INTERFACE)
set(asio_root "${CMAKE_CURRENT_LIST_DIR}/asio-asio-1-38-0")
set(asio_include "${asio_root}/include")
target_include_directories(asio_interface INTERFACE "${asio_root}/include")
file(GLOB_RECURSE srcs
"${asio_root}/include/asio.hpp"
"${asio_root}/src/asio.cpp"
"${asio_root}/src/asio_ssl.cpp"
)
add_library(asio_object STATIC ${srcs})
target_compile_definitions(asio_interface INTERFACE ASIO_STANDALONE)
target_compile_definitions(asio_interface INTERFACE ASIO_SEPARATE_COMPILATION)
#target_compile_definitions(asio_interface INTERFACE ASIO_NO_DEPRECATED) #禁用 Asio 已弃用的接口和功能。
target_compile_definitions(asio_interface INTERFACE ASIO_NO_TS_EXECUTORS) #禁用 Sender Receiver Executor 模式
target_compile_definitions(asio_interface INTERFACE ASIO_NO_DYNAMIC_BUFFER_V1) #禁用1版本缓存 用v2
# debug 用
#target_compile_definitions(asio_interface INTERFACE ASIO_ENABLE_BUFFER_DEBUGGING) #启用 Asio 的缓冲区调试支持
#target_compile_definitions(asio_interface INTERFACE ASIO_ENABLE_HANDLER_TRACKING) #追踪回调函数
target_include_directories(asio_interface INTERFACE /usr/src/linux-headers-5.15.0-136-generic/include/generated/uapi)
target_link_libraries(asio_object PRIVATE OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries(asio_object PUBLIC asio_interface)
# https://blog.csdn.net/2301_79485441/article/details/135285926 多内核问题解决
#alientek@alientek-virtual-machine:/usr/src$ dpkg --get-selections | grep linux-image
#linux-image-5.15.0-136-generic install
#linux-image-5.15.0-76-generic install
#linux-image-5.8.0-41-generic install
#linux-image-generic-hwe-20.04 install
# sudo apt-get remove 内核名称
# sudo apt-get remove linux-image-5.15.0-76-generic
# sudo apt-get remove linux-image-5.8.0-41-generic
#target_compile_definitions(asio INTERFACE ASIO_HEADER_ONLY)
#if(UNIX AND NOT APPLE)
# execute_process(
# COMMAND uname -r
# OUTPUT_VARIABLE KERNEL_VERSION
# OUTPUT_STRIP_TRAILING_WHITESPACE
# )
# string(REGEX MATCH "^[0-9]+" KERNEL_MAJOR_VERSION ${KERNEL_VERSION})
# if(KERNEL_MAJOR_VERSION GREATER_EQUAL "5")
# string(REGEX MATCH "^[0-9]+\\.[0-9]+" KERNEL_MINOR_VERSION ${KERNEL_VERSION})
# string(REPLACE "." "" KERNEL_MINOR_VERSION_NUMBER ${KERNEL_MINOR_VERSION})
# if(KERNEL_MINOR_VERSION_NUMBER GREATER_EQUAL "1")
# target_compile_definitions(asio INTERFACE ASIO_HAS_IO_URING)
# target_include_directories(asio INTERFACE ${EXTERNAL_INSTALL_DIR}/liburing/include)
# target_link_libraries(asio INTERFACE ${EXTERNAL_INSTALL_DIR}/liburing/lib/liburing.so ${EXTERNAL_INSTALL_DIR}/liburing/lib/liburing-ffi.so)
## target_compile_definitions(asio INTERFACE ASIO_HAS_IO_URING_AS_DEFAULT)
## target_compile_definitions(asio INTERFACE ASIO_HAS_IO_URING)
# else()
# endif()
# endif()
#endif()
#CMake Error in CMakeLists.txt:
#Target "asio" INTERFACE_INCLUDE_DIRECTORIES property contains path:
#
#"C:/wyc/CLionProjects/plantSunCat/core_library/include"
#
#which is prefixed in the source directory.
# $<INSTALL_INTERFACE:include>;$<BUILD_INTERFACE:C:/wyc/CLionProjects/plantSunCat/core_library/asio/include>
#file(APPEND ${CMAKE_BINARY_DIR}/all_srcs.txt "src: ${src}\n")