126 lines
4.2 KiB
Plaintext
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") |