代码拉取完成,页面将自动刷新
cmake_minimum_required(VERSION 3.6)
# 设置编译标志位 增加了 -fPIC
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall")
set(CMAKE_CXX_STANDARD 17)
project(OrionV2)
option(ENABLE_TESTING "this option for enable testing" ON)
option(ENABLE_DEMO "this option for enable demo" OFF)
option(ENABLE_COROUTINE "userland thread " OFF)
option(ENABLE_LOG "this option for enable log" OFF)
find_package(OpenSSL 1.0.2 REQUIRED COMPONENTS ssl crypto)
if (ENABLE_COROUTINE)
find_package(Boost 1.64.0 REQUIRED COMPONENTS context system)
else ()
find_package(Boost 1.58.0 REQUIRED)
endif ()
if (ENABLE_TESTING STREQUAL "OFF")
if (ENABLE_DEMO)
add_subdirectory(Demo)
endif ()
endif ()
if (ENABLE_COROUTINE)
add_definitions(-DENABLE_COROUTINE)
endif ()
if (APPLE)
add_definitions(-DOSX)
elseif (LINUX)
add_definitions(-DLINUX)
endif ()
if (ENABLE_LOG)
add_definitions(-DENABLE_LOG)
endif ()
include_directories(
Concurrent/
AsyncIO/
Coroutine/
Traits/
Utility/
Test/
3rd/http-parser/
.
)
include_directories(${Boost_INCLUDE_DIRS})
if (ENABLE_COROUTINE STREQUAL "ON")
set(COROUTINE_HEADER
Coroutine/CoroutineCore.h
Coroutine/Coroutine.h
Coroutine/CoroutineFuture.hpp
)
set(COROUTINE_SRC
Coroutine/CoroutineCore.cpp
Coroutine/Coroutine.cpp
)
endif ()
set(HTTP_PARSER_HEADER
3rd/http-parser/http_parser.h
)
set(HTTP_PARSER_SRC
3rd/http-parser/http_parser.c
)
set(HEADER_FILES
${COROUTINE_HEADER}
${HTTP_PARSER_HEADER}
Orion.h
Concurrent/Future.hpp
AsyncIO/EventLoop.h
Utility/Utils.h
Utility/Optional.h
AsyncIO/EventLoopGroup.h
AsyncIO/HttpResponse.h
AsyncIO/HttpRequest.h
AsyncIO/FileStream.h
AsyncIO/AsyncStream.h
AsyncIO/IOBuffer.h
AsyncIO/StreamHandlers.h
AsyncIO/TcpConnection.h
AsyncIO/TcpConnAcceptor.h
AsyncIO/TcpServer.h
AsyncIO/HttpServer.h
Traits/Traits.hpp
AsyncIO/BasicEventLoop.h
Concurrent/ThreadPool.h
Concurrent/CountDownLath.h
Concurrent/Pool.h)
set(SOURCE_FILES
${COROUTINE_SRC}
${HTTP_PARSER_SRC}
Orion.cpp
AsyncIO/EventLoop.cpp
Utility/Utils.cpp
AsyncIO/EventLoopGroup.cpp
AsyncIO/HttpResponse.cpp
AsyncIO/HttpRequest.cpp
AsyncIO/FileStream.cpp
AsyncIO/AsyncStream.cpp
AsyncIO/IOBuffer.cpp
AsyncIO/StreamHandlers.cpp
AsyncIO/TcpConnAcceptor.cpp
AsyncIO/TcpConnection.cpp
AsyncIO/BasicEventLoop.cpp
AsyncIO/TcpServer.cpp
AsyncIO/HttpServer.cpp
Concurrent/ThreadPool.cpp
Concurrent/CountDownLath.cpp
)
set(TEST_FILES
Test/TestCase.cpp
)
if (ENABLE_TESTING)
set(TEST_FILES
${TEST_FILES}
Test/TestMain.cpp
)
endif ()
if (ENABLE_TESTING STREQUAL OFF)
add_library(OrionV2 SHARED ${HEADER_FILES} ${SOURCE_FILES} ${HTTP_PARSER} ${TEST_FILES})
else ()
add_executable(OrionV2 ${HEADER_FILES} ${SOURCE_FILES} ${HTTP_PARSER} ${TEST_FILES})
endif ()
target_link_libraries(OrionV2 LINK_PUBLIC pthread)
target_link_libraries(OrionV2 LINK_PUBLIC ${OPENSSL_LIBRARIES})
target_link_libraries(OrionV2 LINK_PUBLIC ${Boost_LIBRARIES})
target_link_libraries(OrionV2 LINK_PUBLIC uv)
#target_link_libraries(OrionV2 LINK_PUBLIC gtest)
target_link_libraries(OrionV2 LINK_PUBLIC glog)
if (ENABLE_TESTING STREQUAL OFF)
install(TARGETS OrionV2 LIBRARY DESTINATION /usr/local/lib
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE)
install(FILES ${HEADER_FILES} DESTINATION /usr/local/include/OrionV2)
endif ()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。