Refactor CMakeLists

Closes #2471
Closes #1816
This commit is contained in:
Mohammad Nejati
2024-11-20 19:54:25 +00:00
committed by Mohammad Nejati
parent a21250d12d
commit 75e45287fb
82 changed files with 916 additions and 1359 deletions

View File

@ -63,7 +63,8 @@ jobs:
cmake \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_C_COMPILER=clang \
-DBeast_BUILD_TESTS=ON \
-DBeast_BUILD_FUZZERS=ON \
-DBOOST_BEAST_BUILD_EXAMPLES=OFF \
-DBOOST_BEAST_BUILD_TESTS=ON \
-DBOOST_BEAST_BUILD_FUZZERS=ON \
-DBOOST_BEAST_FUZZER_CORPUS_PATH=${{ github.workspace }}/corpus.tar ..
make boost_beast_fuzz_all

View File

@ -1,48 +1,8 @@
if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
# Generated by `boostdep --cmake beast`
# Copyright 2020, 2021 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
cmake_minimum_required(VERSION 3.8...3.20)
project(boost_beast VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
add_library(boost_beast INTERFACE)
add_library(Boost::beast ALIAS boost_beast)
target_include_directories(boost_beast INTERFACE include)
target_link_libraries(boost_beast
INTERFACE
Boost::asio
Boost::assert
Boost::bind
Boost::config
Boost::container
Boost::core
Boost::endian
Boost::intrusive
Boost::logic
Boost::mp11
Boost::optional
Boost::smart_ptr
Boost::static_assert
Boost::static_string
Boost::system
Boost::throw_exception
Boost::type_traits
Boost::utility
Boost::winapi
)
target_compile_features(boost_beast INTERFACE cxx_std_11)
else()
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
# Copyright (c) 2021 DMitry Arkhipov (grisumbras@gmail.com)
# Copyright (c) 2022 Alan de Freitas (alandefreitas@gmail.com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -50,254 +10,164 @@ else()
# Official repository: https://github.com/boostorg/beast
#
cmake_minimum_required (VERSION 3.5.1)
if (POLICY CMP0074)
cmake_policy (SET CMP0074 NEW)
endif()
#-------------------------------------------------------------------------------
function (DoGroupSources curdir rootdir folder)
file (GLOB children RELATIVE ${PROJECT_SOURCE_DIR}/${curdir} ${PROJECT_SOURCE_DIR}/${curdir}/*)
foreach (child ${children})
if (IS_DIRECTORY ${PROJECT_SOURCE_DIR}/${curdir}/${child})
DoGroupSources (${curdir}/${child} ${rootdir} ${folder})
elseif (${child} STREQUAL "CMakeLists.txt")
source_group("" FILES ${PROJECT_SOURCE_DIR}/${curdir}/${child})
else()
string (REGEX REPLACE ^${rootdir} ${folder} groupname ${curdir})
string (REPLACE "/" "\\" groupname ${groupname})
source_group (${groupname} FILES ${PROJECT_SOURCE_DIR}/${curdir}/${child})
endif()
endforeach()
endfunction()
function (GroupSources curdir folder)
DoGroupSources (${curdir} ${curdir} ${folder})
endfunction()
#-------------------------------------------------------------------------------
#-------------------------------------------------
#
# Beast
# Project
#
#-------------------------------------------------------------------------------
#-------------------------------------------------
cmake_minimum_required(VERSION 3.8...3.20)
set(BOOST_BEAST_VERSION 356)
if (BOOST_SUPERPROJECT_VERSION)
set(BOOST_BEAST_VERSION ${BOOST_SUPERPROJECT_VERSION})
endif ()
project(boost_beast VERSION "${BOOST_BEAST_VERSION}" LANGUAGES CXX)
set(BOOST_BEAST_IS_ROOT OFF)
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
set(BOOST_BEAST_IS_ROOT ON)
endif ()
set(__ignore__ ${CMAKE_C_COMPILER})
project (Beast VERSION 356)
#-------------------------------------------------
#
# Options
#
#-------------------------------------------------
if (BOOST_BEAST_IS_ROOT)
include(CTest)
endif ()
option(BOOST_BEAST_BUILD_TESTS "Build boost::beast tests" ${BUILD_TESTING})
option(BOOST_BEAST_BUILD_FUZZERS "Build boost::beast fuzzers" OFF)
option(BOOST_BEAST_BUILD_EXAMPLES "Build boost::beast examples" ${BOOST_BEAST_IS_ROOT})
option(BOOST_BEAST_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF)
set_property (GLOBAL PROPERTY USE_FOLDERS ON)
option (Beast_BUILD_EXAMPLES "Build examples" ON)
option (Beast_BUILD_TESTS "Build tests" ${BUILD_TESTING})
option (Beast_BUILD_FUZZERS "Build fuzzers" OFF)
option (Beast_ENABLE_HANDLER_TRACKING "Define BOOST_ASIO_ENABLE_HANDLER_TRACKING when building libraries" OFF)
option (Boost_USE_STATIC_LIBS "Use Static Boost libraries" ON)
# Check if environment variable BOOST_SRC_DIR is set
if (NOT DEFINED BOOST_SRC_DIR AND DEFINED ENV{BOOST_SRC_DIR})
set(DEFAULT_BOOST_SRC_DIR "$ENV{BOOST_SRC_DIR}")
else ()
set(DEFAULT_BOOST_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
endif ()
set(BOOST_SRC_DIR ${DEFAULT_BOOST_SRC_DIR} CACHE STRING "Boost source dir to use when running CMake from this directory")
if (MSVC)
set (CMAKE_VERBOSE_MAKEFILE FALSE)
add_definitions (
-D_WIN32_WINNT=0x0601
-D_SCL_SECURE_NO_WARNINGS=1
-D_CRT_SECURE_NO_WARNINGS=1
-D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING
-D_SILENCE_CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING
)
add_compile_options(
/bigobj # large object file format
/permissive- # strict C++
#/wd4503 # decorated name length exceeded, name was truncated
/W4 # enable all warnings
/MP # Multi-processor compilation
#-------------------------------------------------
#
# Boost modules
#
#-------------------------------------------------
# The boost super-project requires one explicit dependency per-line.
set(BOOST_BEAST_DEPENDENCIES
Boost::asio
Boost::assert
Boost::bind
Boost::config
Boost::container
Boost::container_hash
Boost::core
Boost::endian
Boost::intrusive
Boost::logic
Boost::mp11
Boost::optional
Boost::preprocessor
Boost::smart_ptr
Boost::static_assert
Boost::static_string
Boost::system
Boost::throw_exception
Boost::type_index
Boost::type_traits
Boost::winapi
)
set (Boost_USE_STATIC_RUNTIME ON)
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ob2 /Oi /Ot /GL /MT")
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Oi /Ot /MT")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
# for RelWithDebInfo builds, disable incremental linking
# since CMake sets it ON by default for that build type and it
# causes warnings
#
string (REPLACE "/INCREMENTAL" "/INCREMENTAL:NO" replacement_flags
${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO})
set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO ${replacement_flags})
else()
set (THREADS_PREFER_PTHREAD_FLAG ON)
find_package (Threads)
link_libraries(Threads::Threads)
set( CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wpedantic -Wno-unused-parameter")
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wrange-loop-analysis")
foreach (BOOST_BEAST_DEPENDENCY ${BOOST_BEAST_DEPENDENCIES})
if (BOOST_BEAST_DEPENDENCY MATCHES "^[ ]*Boost::([A-Za-z0-9_]+)[ ]*$")
list(APPEND BOOST_BEAST_INCLUDE_LIBRARIES ${CMAKE_MATCH_1})
endif ()
endif()
endforeach ()
# Conditional dependencies
if (BOOST_BEAST_BUILD_TESTS)
set(BOOST_BEAST_UNIT_TEST_LIBRARIES filesystem)
endif ()
if (BOOST_BEAST_BUILD_EXAMPLES)
set(BOOST_BEAST_EXAMPLE_LIBRARIES scope json)
endif ()
# Complete dependency list
set(BOOST_INCLUDE_LIBRARIES ${BOOST_BEAST_INCLUDE_LIBRARIES} ${BOOST_BEAST_UNIT_TEST_LIBRARIES} ${BOOST_BEAST_EXAMPLE_LIBRARIES})
set(BOOST_EXCLUDE_LIBRARIES beast)
# Must come before Boost includes, otherwise the
# IDE sees the wrong file due to boost/ symlinks.
include_directories (include)
#-------------------------------------------------------------------------------
#-------------------------------------------------
#
# OpenSSL
# Add Boost Subdirectory
#
#-------------------------------------------------------------------------------
#-------------------------------------------------
if (BOOST_BEAST_IS_ROOT)
set(CMAKE_FOLDER Dependencies)
# Find absolute BOOST_SRC_DIR
if (NOT IS_ABSOLUTE ${BOOST_SRC_DIR})
set(BOOST_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${BOOST_SRC_DIR}")
endif ()
if (APPLE AND NOT DEFINED ENV{OPENSSL_ROOT_DIR})
find_program(HOMEBREW brew)
if (NOT HOMEBREW STREQUAL "HOMEBREW-NOTFOUND")
execute_process(COMMAND brew --prefix openssl
OUTPUT_VARIABLE OPENSSL_ROOT_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
endif()
# Validate BOOST_SRC_DIR
set(BOOST_SRC_DIR_IS_VALID ON)
foreach (F "CMakeLists.txt" "Jamroot" "boost-build.jam" "bootstrap.sh" "libs")
if (NOT EXISTS "${BOOST_SRC_DIR}/${F}")
message(STATUS "${BOOST_SRC_DIR}/${F} does not exist. Fallback to find_package.")
set(BOOST_SRC_DIR_IS_VALID OFF)
break()
endif ()
endforeach ()
find_package(OpenSSL)
if (NOT MSVC)
link_libraries(${OPENSSL_LIBRARIES})
endif()
# Create Boost interface targets
if (BOOST_SRC_DIR_IS_VALID)
# From BOOST_SRC_DIR
if (BUILD_SHARED_LIBS)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
endif ()
set(BOOST_EXCLUDE_LIBRARIES ${PROJECT_NAME})
set(PREV_BUILD_TESTING ${BUILD_TESTING})
set(BUILD_TESTING OFF CACHE BOOL "Build the tests." FORCE)
add_subdirectory(${BOOST_SRC_DIR} Dependencies/boost EXCLUDE_FROM_ALL)
set(BUILD_TESTING ${PREV_BUILD_TESTING} CACHE BOOL "Build the tests." FORCE)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${BOOST_SRC_DIR}/tools/cmake/include")
else ()
# From Boost Package
find_package(Boost REQUIRED COMPONENTS filesystem scope json)
foreach (BOOST_INCLUDE_LIBRARY ${BOOST_INCLUDE_LIBRARIES})
if (NOT TARGET Boost::${BOOST_INCLUDE_LIBRARY})
add_library(Boost::${BOOST_INCLUDE_LIBRARY} ALIAS Boost::headers)
endif ()
endforeach ()
endif ()
unset(CMAKE_FOLDER)
endif ()
#-------------------------------------------------------------------------------
#-------------------------------------------------
#
# Boost
# Library
#
#-------------------------------------------------------------------------------
#-------------------------------------------------
add_library(boost_beast INTERFACE)
add_library(Boost::beast ALIAS boost_beast)
target_include_directories(boost_beast INTERFACE include)
target_link_libraries(boost_beast INTERFACE ${BOOST_BEAST_DEPENDENCIES})
target_compile_features(boost_beast INTERFACE cxx_std_11)
file(GLOB_RECURSE BOOST_BEAST_HEADERS CONFIGURE_DEPENDS include/boost/*.hpp)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/include/boost PREFIX "" FILES ${BOOST_BEAST_HEADERS})
target_sources(boost_beast PRIVATE ${BOOST_BEAST_HEADERS} build.jam)
get_filename_component (BOOST_ROOT ../../ ABSOLUTE)
# VFALCO I want static but "b2 stage" builds a minimal set which excludes static
add_definitions (-DBOOST_ALL_STATIC_LINK=1)
add_definitions (-DBOOST_ASIO_NO_DEPRECATED=1)
add_definitions (-DBOOST_ASIO_DISABLE_BOOST_ARRAY=1)
add_definitions (-DBOOST_ASIO_DISABLE_BOOST_BIND=1)
add_definitions (-DBOOST_ASIO_DISABLE_BOOST_DATE_TIME=1)
add_definitions (-DBOOST_ASIO_DISABLE_BOOST_REGEX=1)
add_definitions (-DBOOST_COROUTINES_NO_DEPRECATION_WARNING=1)
if (MSVC)
include_directories (${BOOST_ROOT})
link_libraries( bcrypt.lib )
else()
set(BOOST_INCLUDEDIR ${BOOST_ROOT})
set(BOOST_LIBRARYDIR ${BOOST_ROOT}/stage/lib)
find_package(Boost COMPONENTS context filesystem system thread REQUIRED)
link_libraries(Boost::context Boost::filesystem Boost::system Boost::thread)
endif()
link_directories(${BOOST_ROOT}/stage/lib)
if (MINGW)
link_libraries(ws2_32 mswsock)
endif()
#-------------------------------------------------------------------------------
if ("${VARIANT}" STREQUAL "coverage")
if (MSVC)
else()
set (CMAKE_BUILD_TYPE DEBUG)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 --coverage")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
endif()
elseif ("${VARIANT}" STREQUAL "ubasan")
if (MSVC)
else()
set (CMAKE_BUILD_TYPE RELWITHDEBINFO)
set (CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -DBOOST_BEAST_NO_SLOW_TESTS=1 -msse4.2 -funsigned-char -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize-recover=address,undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/tools/blacklist.supp")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address,undefined -fno-sanitize-recover=address,undefined")
endif()
elseif ("${VARIANT}" STREQUAL "debug")
set (CMAKE_BUILD_TYPE DEBUG)
elseif ("${VARIANT}" STREQUAL "release")
set (CMAKE_BUILD_TYPE RELEASE)
endif()
#-------------------------------------------------------------------------------
#-------------------------------------------------
#
# Static Libraries
# Tests
#
#-------------------------------------------------------------------------------
#-------------------------------------------------
if (BOOST_BEAST_BUILD_TESTS)
add_subdirectory(test)
endif ()
add_definitions (-DBOOST_ASIO_SEPARATE_COMPILATION=1)
add_definitions (-DBOOST_BEAST_SEPARATE_COMPILATION=1)
GroupSources (test "/")
add_library (
lib-asio STATIC
test/lib_asio.cpp
)
if(Beast_ENABLE_HANDLER_TRACKING)
target_compile_definitions(lib-asio
PUBLIC BOOST_ASIO_ENABLE_HANDLER_TRACKING=1)
endif()
set_property(TARGET lib-asio PROPERTY FOLDER "static-libs")
add_library (
lib-asio-ssl STATIC
test/lib_asio_ssl.cpp
)
set_property(TARGET lib-asio-ssl PROPERTY FOLDER "static-libs")
add_library (
lib-beast STATIC
test/lib_beast.cpp
)
set_property(TARGET lib-beast PROPERTY FOLDER "static-libs")
target_link_libraries(lib-beast lib-asio)
#-------------------------------------------------------------------------------
#-------------------------------------------------
#
# Tests and examples
# Examples
#
include_directories (.)
if (OPENSSL_FOUND)
include_directories (${OPENSSL_INCLUDE_DIR})
endif()
file (GLOB_RECURSE BOOST_BEAST_FILES
${PROJECT_SOURCE_DIR}/include/boost/beast/*.hpp
${PROJECT_SOURCE_DIR}/include/boost/beast/*.ipp
)
file (GLOB_RECURSE BOOST_BEAST_EXPERIMENTAL_FILES
${PROJECT_SOURCE_DIR}/include/boost/beast/_experimental/*.hpp
${PROJECT_SOURCE_DIR}/include/boost/beast/_experimental/*.ipp
)
file (GLOB_RECURSE COMMON_FILES
${PROJECT_SOURCE_DIR}/example/common/*.hpp
)
if (Beast_BUILD_EXAMPLES AND
(NOT "${VARIANT}" STREQUAL "coverage") AND
(NOT "${VARIANT}" STREQUAL "ubasan"))
add_subdirectory (example)
endif()
if (Beast_BUILD_TESTS)
add_subdirectory (test)
endif()
endif()
#-------------------------------------------------
if (BOOST_BEAST_BUILD_EXAMPLES)
add_subdirectory(example)
endif ()

View File

@ -198,11 +198,9 @@ CMake may be used to generate a very nice Visual Studio solution and
a set of Visual Studio project files using these commands:
```
cd libs/beast
mkdir bin
cd bin
cmake -G "Visual Studio 17 2022" -A Win32 .. # for 32-bit Windows builds, or
cmake -G "Visual Studio 17 2022" -A x64 .. # for 64-bit Windows builds
cmake -G "Visual Studio 17 2022" -A win32 -B bin -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE="C:/boost/libs/beast/cmake/toolchains/msvc.cmake"
cmake -G "Visual Studio 17 2022" -A x64 -B bin64 -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE="C:/boost/libs/beast/cmake/toolchains/msvc.cmake"
```
The files in the repository are laid out thusly:

View File

@ -0,0 +1,5 @@
# Include gcc options.
include(${CMAKE_CURRENT_LIST_DIR}/gcc.cmake)
# Compiler options.
add_compile_options(-Wrange-loop-analysis)

View File

@ -0,0 +1,18 @@
# C++ standard.
set(CMAKE_CXX_EXTENSIONS OFF CACHE STRING "")
# Static library linkage.
set(BUILD_SHARED_LIBS OFF CACHE STRING "")
add_definitions(-DBOOST_ALL_STATIC_LINK=1)
# Interprocedural optimization.
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON CACHE STRING "")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL ON CACHE STRING "")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO ON CACHE STRING "")
# Compiler definitions.
if(WIN32)
add_definitions(-D_WIN32_WINNT=0x0601 -D_CRT_SECURE_NO_WARNINGS)
endif()
# Project options.

View File

@ -0,0 +1,5 @@
# Include common options.
include(${CMAKE_CURRENT_LIST_DIR}/common.cmake)
# Compiler options.
add_compile_options(-Wall -Wextra -Wpedantic -Wno-unused-parameter)

View File

@ -0,0 +1,35 @@
# Include common options.
include(${CMAKE_CURRENT_LIST_DIR}/common.cmake)
# Static runtime linkage.
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>" CACHE STRING "")
# Compiler options.
# Specific to C and CXX, to prevent passing them to MASM
add_compile_options(
$<$<COMPILE_LANGUAGE:CXX>:/bigobj>
$<$<COMPILE_LANGUAGE:CXX>:/permissive->
$<$<COMPILE_LANGUAGE:C,CXX>:/W4>
$<$<COMPILE_LANGUAGE:C,CXX>:/MP>
)
if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "Win32") # 32-bit
add_compile_options(
/arch:SSE2
)
endif()
# Linker options.
add_link_options(
)
# Disable logos.
foreach(lang C CXX ASM_MASM RC)
set(CMAKE_${lang}_FLAGS_INIT "/nologo")
endforeach()
foreach(type EXE SHARED MODULE)
set(CMAKE_${type}_LINKER_FLAGS_INIT "/nologo")
endforeach()
# Silence Visual Studio CMake integration warnings.
set(SILENCE_VS_DEFINITIONS ${CMAKE_TOOLCHAIN_FILE} ${CMAKE_C_COMPILER})
set(SILENCE_VS_DEFINITIONS)

View File

@ -7,8 +7,10 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (advanced)
add_subdirectory (http)
add_subdirectory (websocket)
find_package(OpenSSL)
add_subdirectory (echo-op)
add_subdirectory(advanced)
add_subdirectory(http)
add_subdirectory(websocket)
add_subdirectory(echo-op)

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,6 +8,9 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (server)
add_subdirectory (server-flex)
add_subdirectory (server-flex-awaitable)
add_subdirectory(server)
if (OPENSSL_FOUND)
add_subdirectory(server-flex)
add_subdirectory(server-flex-awaitable)
endif ()

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/advanced/server-flex-awaitable "/")
add_executable(advanced-server-flex-awaitable
Jamfile
advanced_server_flex_awaitable.cpp)
add_executable (advanced-server-flex-awaitable
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
advanced_server_flex_awaitable.cpp
)
target_include_directories(advanced-server-flex-awaitable
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET advanced-server-flex-awaitable PROPERTY FOLDER "example-advanced-server")
target_link_libraries (advanced-server-flex-awaitable
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
target_link_libraries(advanced-server-flex-awaitable
PRIVATE Boost::beast Boost::scope OpenSSL::SSL OpenSSL::Crypto)
endif()
set_target_properties(advanced-server-flex-awaitable
PROPERTIES FOLDER "example-advanced-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/advanced/server-flex "/")
add_executable(advanced-server-flex
Jamfile
advanced_server_flex.cpp)
add_executable (advanced-server-flex
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
advanced_server_flex.cpp
)
target_include_directories(advanced-server-flex
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET advanced-server-flex PROPERTY FOLDER "example-advanced-server")
target_link_libraries (advanced-server-flex
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
target_link_libraries(advanced-server-flex
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
endif()
set_target_properties(advanced-server-flex
PROPERTIES FOLDER "example-advanced-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,10 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/advanced/server "/")
add_executable (advanced-server
${BOOST_BEAST_FILES}
add_executable(advanced-server
Jamfile
advanced_server.cpp
)
advanced_server.cpp)
target_link_libraries(advanced-server
lib-asio
lib-beast)
target_link_libraries(advanced-server PRIVATE Boost::beast)
set_property(TARGET advanced-server PROPERTY FOLDER "example-advanced-server")
set_target_properties(advanced-server PROPERTIES FOLDER "example-advanced-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/echo-op "/")
add_executable (echo-op
${BOOST_BEAST_FILES}
add_executable(echo-op
Jamfile
echo_op.cpp
)
echo_op.cpp)
target_link_libraries(echo-op
lib-asio
lib-beast)
target_link_libraries(echo-op PRIVATE Boost::beast)
set_property(TARGET echo-op PROPERTY FOLDER "example")
set_target_properties(echo-op
PROPERTIES FOLDER "example-echo-op")

View File

@ -7,5 +7,5 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (client)
add_subdirectory (server)
add_subdirectory(client)
add_subdirectory(server)

View File

@ -7,19 +7,18 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (async)
add_subdirectory (awaitable)
add_subdirectory (coro)
add_subdirectory (crawl)
add_subdirectory (sync)
add_subdirectory (body)
add_subdirectory (methods)
add_subdirectory(async)
add_subdirectory(awaitable)
add_subdirectory(body)
add_subdirectory(coro)
add_subdirectory(crawl)
add_subdirectory(methods)
add_subdirectory(sync)
if (OPENSSL_FOUND)
add_subdirectory (async-ssl)
add_subdirectory (async-ssl-system-executor)
add_subdirectory (awaitable-ssl)
add_subdirectory (coro-ssl)
add_subdirectory (sync-ssl)
endif()
add_subdirectory(async-ssl)
add_subdirectory(async-ssl-system-executor)
add_subdirectory(awaitable-ssl)
add_subdirectory(coro-ssl)
add_subdirectory(sync-ssl)
endif ()

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/client/async-ssl-system-executor "/")
add_executable(http-client-async-ssl-system-executor
Jamfile
http_client_async_ssl_system_executor.cpp)
add_executable (http-client-async-ssl-system-executor
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/root_certificates.hpp
Jamfile
http_client_async_ssl_system_executor.cpp
)
target_include_directories(http-client-async-ssl-system-executor
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-client-async-ssl-system-executor PROPERTY FOLDER "example-http-client")
target_link_libraries(http-client-async-ssl-system-executor
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (http-client-async-ssl-system-executor
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(http-client-async-ssl-system-executor
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/client/async-ssl "/")
add_executable(http-client-async-ssl
Jamfile
http_client_async_ssl.cpp)
add_executable (http-client-async-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/root_certificates.hpp
Jamfile
http_client_async_ssl.cpp
)
target_include_directories(http-client-async-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-client-async-ssl PROPERTY FOLDER "example-http-client")
target_link_libraries(http-client-async-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (http-client-async-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(http-client-async-ssl
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/client/async "/")
add_executable (http-client-async
${BOOST_BEAST_FILES}
add_executable(http-client-async
Jamfile
http_client_async.cpp
)
http_client_async.cpp)
target_link_libraries(http-client-async
lib-asio
lib-beast)
target_link_libraries(http-client-async PRIVATE Boost::beast)
set_property(TARGET http-client-async PROPERTY FOLDER "example-http-client")
set_target_properties(http-client-async
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,19 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/client/awaitable "/")
add_executable (http-client-awaitable-ssl
${BOOST_BEAST_FILES}
add_executable(http-client-awaitable-ssl
Jamfile
http_client_awaitable_ssl.cpp
)
http_client_awaitable_ssl.cpp)
target_include_directories(http-client-awaitable-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
target_link_libraries(http-client-awaitable-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast)
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
set_property(TARGET http-client-awaitable-ssl PROPERTY FOLDER "example-http-client")
set_target_properties(http-client-awaitable-ssl
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/client/awaitable "/")
add_executable (http-client-awaitable
${BOOST_BEAST_FILES}
add_executable(http-client-awaitable
Jamfile
http_client_awaitable.cpp
)
http_client_awaitable.cpp)
target_link_libraries(http-client-awaitable
lib-asio
lib-beast)
target_link_libraries(http-client-awaitable PRIVATE Boost::beast)
set_property(TARGET http-client-awaitable PROPERTY FOLDER "example-http-client")
set_target_properties(http-client-awaitable
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/client/coro "/")
add_executable (http-client-json
${BOOST_BEAST_FILES}
add_executable(http-client-json
Jamfile
json_client.cpp
)
json_client.cpp)
target_link_libraries(http-client-json
lib-asio
lib-beast)
target_link_libraries(http-client-json PRIVATE Boost::beast Boost::json)
set_property(TARGET http-client-json PROPERTY FOLDER "example-json-client")
set_target_properties(http-client-json
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/client/coro-ssl "/")
add_executable(http-client-coro-ssl
Jamfile
http_client_coro_ssl.cpp)
add_executable (http-client-coro-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/root_certificates.hpp
Jamfile
http_client_coro_ssl.cpp
)
target_include_directories(http-client-coro-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-client-coro-ssl PROPERTY FOLDER "example-http-client")
target_link_libraries(http-client-coro-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (http-client-coro-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(http-client-coro-ssl
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/client/coro "/")
add_executable (http-client-coro
${BOOST_BEAST_FILES}
add_executable(http-client-coro
Jamfile
http_client_coro.cpp
)
http_client_coro.cpp)
target_link_libraries(http-client-coro
lib-asio
lib-beast)
target_link_libraries(http-client-coro PRIVATE Boost::beast)
set_property(TARGET http-client-coro PROPERTY FOLDER "example-http-client")
set_target_properties(http-client-coro
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,20 +8,12 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/client/crawl "/")
add_executable (http-crawl
${BOOST_BEAST_FILES}
add_executable(http-crawl
Jamfile
urls_large_data.hpp
urls_large_data.cpp
http_crawl.cpp
)
urls_large_data.cpp)
target_link_libraries(http-crawl
lib-asio
lib-beast)
set_property(TARGET http-crawl PROPERTY FOLDER "example-http-client")
target_link_libraries(http-crawl PRIVATE Boost::beast)
set_target_properties(http-crawl
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/client/methods "/")
add_executable (http-client-methods
${BOOST_BEAST_FILES}
add_executable(http-client-methods
Jamfile
http_client_methods.cpp
)
http_client_methods.cpp)
target_link_libraries(http-client-methods
lib-asio
lib-beast)
target_link_libraries(http-client-methods PRIVATE Boost::beast)
set_property(TARGET http-client-methods PROPERTY FOLDER "example-http-client-methods")
set_target_properties(http-client-methods
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/client/sync-ssl "/")
add_executable(http-client-sync-ssl
Jamfile
http_client_sync_ssl.cpp)
add_executable (http-client-sync-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/root_certificates.hpp
Jamfile
http_client_sync_ssl.cpp
)
target_include_directories(http-client-sync-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-client-sync-ssl PROPERTY FOLDER "example-http-client")
target_link_libraries(http-client-sync-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (http-client-sync-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(http-client-sync-ssl
PROPERTIES FOLDER "example-http-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/client/sync "/")
add_executable (http-client-sync
${BOOST_BEAST_FILES}
add_executable(http-client-sync
Jamfile
http_client_sync.cpp
)
http_client_sync.cpp)
target_link_libraries(http-client-sync
lib-asio
lib-beast)
target_link_libraries(http-client-sync PRIVATE Boost::beast)
set_property(TARGET http-client-sync PROPERTY FOLDER "example-http-client")
set_target_properties(http-client-sync
PROPERTIES FOLDER "example-http-client")

View File

@ -7,18 +7,18 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (async)
add_subdirectory (awaitable)
add_subdirectory (coro)
add_subdirectory (fast)
add_subdirectory (small)
add_subdirectory (stackless)
add_subdirectory (sync)
add_subdirectory(async)
add_subdirectory(awaitable)
add_subdirectory(coro)
add_subdirectory(fast)
add_subdirectory(small)
add_subdirectory(stackless)
add_subdirectory(sync)
if (OPENSSL_FOUND)
add_subdirectory (async-ssl)
add_subdirectory (coro-ssl)
add_subdirectory (flex)
add_subdirectory (stackless-ssl)
add_subdirectory (sync-ssl)
endif()
add_subdirectory(async-ssl)
add_subdirectory(coro-ssl)
add_subdirectory(flex)
add_subdirectory(stackless-ssl)
add_subdirectory(sync-ssl)
endif ()

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/server/async-ssl "/")
add_executable(http-server-async-ssl
Jamfile
http_server_async_ssl.cpp)
add_executable (http-server-async-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
http_server_async_ssl.cpp
)
target_include_directories(http-server-async-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-server-async-ssl PROPERTY FOLDER "example-http-server")
target_link_libraries(http-server-async-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (http-server-async-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(http-server-async-ssl
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,18 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/server/async "/")
add_executable (http-server-async
${BOOST_BEAST_FILES}
add_executable(http-server-async
Jamfile
http_server_async.cpp
)
http_server_async.cpp)
target_link_libraries(http-server-async
lib-asio
lib-asio-ssl
lib-beast)
target_link_libraries(http-server-async PRIVATE Boost::beast)
set_property(TARGET http-server-async PROPERTY FOLDER "example-http-server")
set_target_properties(http-server-async
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/server/awaitable "/")
add_executable (http-server-awaitable
${BOOST_BEAST_FILES}
add_executable(http-server-awaitable
Jamfile
http_server_awaitable.cpp
)
http_server_awaitable.cpp)
target_link_libraries(http-server-awaitable
lib-asio
lib-beast)
target_link_libraries(http-server-awaitable PRIVATE Boost::beast)
set_property(TARGET http-server-awaitable PROPERTY FOLDER "example-http-server")
set_target_properties(http-server-awaitable
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/server/coro-ssl "/")
add_executable(http-server-coro-ssl
Jamfile
http_server_coro_ssl.cpp)
add_executable (http-server-coro-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
http_server_coro_ssl.cpp
)
target_include_directories(http-server-coro-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-server-coro-ssl PROPERTY FOLDER "example-http-server")
target_link_libraries(http-server-coro-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (http-server-coro-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(http-server-coro-ssl
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/server/coro "/")
add_executable (http-server-coro
${BOOST_BEAST_FILES}
add_executable(http-server-coro
Jamfile
http_server_coro.cpp
)
http_server_coro.cpp)
target_link_libraries(http-server-coro
lib-asio
lib-beast)
target_link_libraries(http-server-coro PRIVATE Boost::beast)
set_property(TARGET http-server-coro PROPERTY FOLDER "example-http-server")
set_target_properties(http-server-coro
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,20 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/server/fast "/")
add_executable (http-server-fast
${BOOST_BEAST_FILES}
${COMMON_FILES}
add_executable(http-server-fast
Jamfile
fields_alloc.hpp
http_server_fast.cpp
)
http_server_fast.cpp)
target_link_libraries(http-server-fast
lib-asio
lib-beast)
target_link_libraries(http-server-fast PRIVATE Boost::beast)
set_property(TARGET http-server-fast PROPERTY FOLDER "example-http-server")
set_target_properties(http-server-fast
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/server/flex "/")
add_executable(http-server-flex
Jamfile
http_server_flex.cpp)
add_executable (http-server-flex
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
http_server_flex.cpp
)
target_include_directories(http-server-flex
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-server-flex PROPERTY FOLDER "example-http-server")
target_link_libraries(http-server-flex
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (http-server-flex
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(http-server-flex
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/server/small "/")
add_executable (http-server-small
${BOOST_BEAST_FILES}
add_executable(http-server-small
Jamfile
http_server_small.cpp
)
http_server_small.cpp)
target_link_libraries(http-server-small
lib-asio
lib-beast)
target_link_libraries(http-server-small PRIVATE Boost::beast)
set_property(TARGET http-server-small PROPERTY FOLDER "example-http-server")
set_target_properties(http-server-small
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/server/stackless-ssl "/")
add_executable(http-server-stackless-ssl
Jamfile
http_server_stackless_ssl.cpp)
add_executable (http-server-stackless-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
http_server_stackless_ssl.cpp
)
target_include_directories(http-server-stackless-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-server-stackless-ssl PROPERTY FOLDER "example-http-server")
target_link_libraries(http-server-stackless-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (http-server-stackless-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(http-server-stackless-ssl
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/server/stackless "/")
add_executable (http-server-stackless
${BOOST_BEAST_FILES}
add_executable(http-server-stackless
Jamfile
http_server_stackless.cpp
)
http_server_stackless.cpp)
target_link_libraries(http-server-stackless
lib-asio
lib-beast)
target_link_libraries(http-server-stackless PRIVATE Boost::beast)
set_property(TARGET http-server-stackless PROPERTY FOLDER "example-http-server")
set_target_properties(http-server-stackless
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/http/server/sync-ssl "/")
add_executable(http-server-sync-ssl
Jamfile
http_server_sync_ssl.cpp)
add_executable (http-server-sync-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
http_server_sync_ssl.cpp
)
target_include_directories(http-server-sync-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET http-server-sync-ssl PROPERTY FOLDER "example-http-server")
target_link_libraries (http-server-sync-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
target_link_libraries(http-server-sync-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
endif()
set_target_properties(http-server-sync-ssl
PROPERTIES FOLDER "example-http-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,18 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/http/server/sync "/")
add_executable (http-server-sync
${BOOST_BEAST_FILES}
add_executable(http-server-sync
Jamfile
http_server_sync.cpp
)
http_server_sync.cpp)
target_link_libraries(http-server-sync
lib-asio
lib-asio-ssl
lib-beast)
target_link_libraries(http-server-sync PRIVATE Boost::beast)
set_property(TARGET http-server-sync PROPERTY FOLDER "example-http-server")
set_target_properties(http-server-sync
PROPERTIES FOLDER "example-http-server")

View File

@ -7,5 +7,5 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (client)
add_subdirectory (server)
add_subdirectory(client)
add_subdirectory(server)

View File

@ -7,14 +7,14 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (async)
add_subdirectory (awaitable)
add_subdirectory (coro)
add_subdirectory (sync)
add_subdirectory(async)
add_subdirectory(awaitable)
add_subdirectory(coro)
add_subdirectory(sync)
if (OPENSSL_FOUND)
add_subdirectory (async-ssl)
add_subdirectory (async-ssl-system-executor)
add_subdirectory (coro-ssl)
add_subdirectory (sync-ssl)
endif()
add_subdirectory(async-ssl)
add_subdirectory(async-ssl-system-executor)
add_subdirectory(coro-ssl)
add_subdirectory(sync-ssl)
endif ()

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/websocket/client/async-ssl-system-executor "/")
add_executable(websocket-client-async-ssl-system-executor
Jamfile
websocket_client_async_ssl_system_executor.cpp)
add_executable (websocket-client-async-ssl-system-executor
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/root_certificates.hpp
Jamfile
websocket_client_async_ssl_system_executor.cpp
)
target_include_directories(websocket-client-async-ssl-system-executor
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET websocket-client-async-ssl-system-executor PROPERTY FOLDER "example-websocket-client")
target_link_libraries(websocket-client-async-ssl-system-executor
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (websocket-client-async-ssl-system-executor
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(websocket-client-async-ssl-system-executor
PROPERTIES FOLDER "example-websocket-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/websocket/client/async-ssl "/")
add_executable(websocket-client-async-ssl
Jamfile
websocket_client_async_ssl.cpp)
add_executable (websocket-client-async-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/root_certificates.hpp
Jamfile
websocket_client_async_ssl.cpp
)
target_include_directories(websocket-client-async-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET websocket-client-async-ssl PROPERTY FOLDER "example-websocket-client")
target_link_libraries(websocket-client-async-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (websocket-client-async-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(websocket-client-async-ssl
PROPERTIES FOLDER "example-websocket-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/client/async "/")
add_executable (websocket-client-async
${BOOST_BEAST_FILES}
add_executable(websocket-client-async
Jamfile
websocket_client_async.cpp
)
websocket_client_async.cpp)
target_link_libraries(websocket-client-async
lib-asio
lib-beast)
target_link_libraries(websocket-client-async PRIVATE Boost::beast)
set_property(TARGET websocket-client-async PROPERTY FOLDER "example-websocket-client")
set_target_properties(websocket-client-async
PROPERTIES FOLDER "example-websocket-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/client/awaitable "/")
add_executable (websocket-client-awaitable
${BOOST_BEAST_FILES}
add_executable(websocket-client-awaitable
Jamfile
websocket_client_awaitable.cpp
)
websocket_client_awaitable.cpp)
target_link_libraries(websocket-client-awaitable
lib-asio
lib-beast)
target_link_libraries(websocket-client-awaitable PRIVATE Boost::beast)
set_property(TARGET websocket-client-awaitable PROPERTY FOLDER "example-websocket-client")
set_target_properties(websocket-client-awaitable
PROPERTIES FOLDER "example-websocket-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/websocket/client/coro-ssl "/")
add_executable(websocket-client-coro-ssl
Jamfile
websocket_client_coro_ssl.cpp)
add_executable (websocket-client-coro-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/root_certificates.hpp
Jamfile
websocket_client_coro_ssl.cpp
)
target_include_directories(websocket-client-coro-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET websocket-client-coro-ssl PROPERTY FOLDER "example-websocket-client")
target_link_libraries(websocket-client-coro-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (websocket-client-coro-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(websocket-client-coro-ssl
PROPERTIES FOLDER "example-websocket-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/client/coro "/")
add_executable (websocket-client-coro
${BOOST_BEAST_FILES}
add_executable(websocket-client-coro
Jamfile
websocket_client_coro.cpp
)
websocket_client_coro.cpp)
target_link_libraries(websocket-client-coro
lib-asio
lib-beast)
target_link_libraries(websocket-client-coro PRIVATE Boost::beast)
set_property(TARGET websocket-client-coro PROPERTY FOLDER "example-websocket-client")
set_target_properties(websocket-client-coro
PROPERTIES FOLDER "example-websocket-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/websocket/client/sync-ssl "/")
add_executable(websocket-client-sync-ssl
Jamfile
websocket_client_sync_ssl.cpp)
add_executable (websocket-client-sync-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/root_certificates.hpp
Jamfile
websocket_client_sync_ssl.cpp
)
target_include_directories(websocket-client-sync-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET websocket-client-sync-ssl PROPERTY FOLDER "example-websocket-client")
target_link_libraries(websocket-client-sync-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (websocket-client-sync-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(websocket-client-sync-ssl
PROPERTIES FOLDER "example-websocket-client")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/client/sync "/")
add_executable (websocket-client-sync
${BOOST_BEAST_FILES}
add_executable(websocket-client-sync
Jamfile
websocket_client_sync.cpp
)
websocket_client_sync.cpp)
target_link_libraries(websocket-client-sync
lib-asio
lib-beast)
target_link_libraries(websocket-client-sync PRIVATE Boost::beast)
set_property(TARGET websocket-client-sync PROPERTY FOLDER "example-websocket-client")
set_target_properties(websocket-client-sync
PROPERTIES FOLDER "example-websocket-client")

View File

@ -7,17 +7,17 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (async)
add_subdirectory (awaitable)
add_subdirectory (chat-multi)
add_subdirectory (coro)
add_subdirectory (fast)
add_subdirectory (stackless)
add_subdirectory (sync)
add_subdirectory(async)
add_subdirectory(awaitable)
add_subdirectory(chat-multi)
add_subdirectory(coro)
add_subdirectory(fast)
add_subdirectory(stackless)
add_subdirectory(sync)
if (OPENSSL_FOUND)
add_subdirectory (async-ssl)
add_subdirectory (coro-ssl)
add_subdirectory (stackless-ssl)
add_subdirectory (sync-ssl)
endif()
add_subdirectory(async-ssl)
add_subdirectory(coro-ssl)
add_subdirectory(stackless-ssl)
add_subdirectory(sync-ssl)
endif ()

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/websocket/server/async-ssl "/")
add_executable(websocket-server-async-ssl
Jamfile
websocket_server_async_ssl.cpp)
add_executable (websocket-server-async-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
websocket_server_async_ssl.cpp
)
target_include_directories(websocket-server-async-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET websocket-server-async-ssl PROPERTY FOLDER "example-websocket-server")
target_link_libraries(websocket-server-async-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (websocket-server-async-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(websocket-server-async-ssl
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/server/async "/")
add_executable (websocket-server-async
${BOOST_BEAST_FILES}
add_executable(websocket-server-async
Jamfile
websocket_server_async.cpp
)
websocket_server_async.cpp)
target_link_libraries(websocket-server-async
lib-asio
lib-beast)
target_link_libraries(websocket-server-async PRIVATE Boost::beast)
set_property(TARGET websocket-server-async PROPERTY FOLDER "example-websocket-server")
set_target_properties(websocket-server-async
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/server/awaitable "/")
add_executable (websocket-server-awaitable
${BOOST_BEAST_FILES}
add_executable(websocket-server-awaitable
Jamfile
websocket_server_awaitable.cpp
)
websocket_server_awaitable.cpp)
target_link_libraries(websocket-server-awaitable
lib-asio
lib-beast)
target_link_libraries(websocket-server-awaitable PRIVATE Boost::beast)
set_property(TARGET websocket-server-awaitable PROPERTY FOLDER "example-websocket-server")
set_target_properties(websocket-server-awaitable
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,35 +8,22 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/server/chat-multi "/")
add_executable(websocket-chat-multi
beast.hpp
chat_client.html
http_session.cpp
http_session.hpp
Jamfile
listener.cpp
listener.hpp
main.cpp
net.hpp
shared_state.cpp
shared_state.hpp
websocket_session.cpp
websocket_session.hpp)
file (GLOB APP_FILES
beast.hpp
http_session.cpp
http_session.hpp
Jamfile
listener.cpp
listener.hpp
main.cpp
net.hpp
shared_state.cpp
shared_state.hpp
websocket_session.cpp
websocket_session.hpp
chat_client.html
README.md
)
target_link_libraries(websocket-chat-multi PRIVATE Boost::beast)
source_group ("" FILES ${APP_FILES})
add_executable (websocket-chat-multi
${APP_FILES}
${BOOST_BEAST_FILES}
)
target_link_libraries(websocket-chat-multi
lib-asio
lib-beast)
set_property(TARGET websocket-chat-multi PROPERTY FOLDER "example-websocket-server")
set_target_properties(websocket-chat-multi
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/websocket/server/coro-ssl "/")
add_executable(websocket-server-coro-ssl
Jamfile
websocket_server_coro_ssl.cpp)
add_executable (websocket-server-coro-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
websocket_server_coro_ssl.cpp
)
target_include_directories(websocket-server-coro-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET websocket-server-coro-ssl PROPERTY FOLDER "example-websocket-server")
target_link_libraries(websocket-server-coro-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (websocket-server-coro-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(websocket-server-coro-ssl
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/server/coro "/")
add_executable (websocket-server-coro
${BOOST_BEAST_FILES}
add_executable(websocket-server-coro
Jamfile
websocket_server_coro.cpp
)
websocket_server_coro.cpp)
target_link_libraries(websocket-server-coro
lib-asio
lib-beast)
target_link_libraries(websocket-server-coro PRIVATE Boost::beast)
set_property(TARGET websocket-server-coro PROPERTY FOLDER "example-websocket-server")
set_target_properties(websocket-server-coro
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/server/fast "/")
add_executable (websocket-server-fast
${BOOST_BEAST_FILES}
add_executable(websocket-server-fast
Jamfile
websocket_server_fast.cpp
)
websocket_server_fast.cpp)
target_link_libraries(websocket-server-fast
lib-asio
lib-beast)
target_link_libraries(websocket-server-fast PRIVATE Boost::beast)
set_property(TARGET websocket-server-fast PROPERTY FOLDER "example-websocket-server")
set_target_properties(websocket-server-fast
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/websocket/server/stackless-ssl "/")
add_executable(websocket-server-stackless-ssl
Jamfile
websocket_server_stackless_ssl.cpp)
add_executable (websocket-server-stackless-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
websocket_server_stackless_ssl.cpp
)
target_include_directories(websocket-server-stackless-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET websocket-server-stackless-ssl PROPERTY FOLDER "example-websocket-server")
target_link_libraries(websocket-server-stackless-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (websocket-server-stackless-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(websocket-server-stackless-ssl
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/server/stackless "/")
add_executable (websocket-server-stackless
${BOOST_BEAST_FILES}
add_executable(websocket-server-stackless
Jamfile
websocket_server_stackless.cpp
)
websocket_server_stackless.cpp)
target_link_libraries(websocket-server-stackless
lib-asio
lib-beast)
target_link_libraries(websocket-server-stackless PRIVATE Boost::beast)
set_property(TARGET websocket-server-stackless PROPERTY FOLDER "example-websocket-server")
set_target_properties(websocket-server-stackless
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
if (OPENSSL_FOUND)
GroupSources(include/boost/beast beast)
GroupSources(example/common common)
GroupSources(example/websocket/server/sync-ssl "/")
add_executable(websocket-server-sync-ssl
Jamfile
websocket_server_sync_ssl.cpp)
add_executable (websocket-server-sync-ssl
${BOOST_BEAST_FILES}
${PROJECT_SOURCE_DIR}/example/common/server_certificate.hpp
Jamfile
websocket_server_sync_ssl.cpp
)
target_include_directories(websocket-server-sync-ssl
PRIVATE ${PROJECT_SOURCE_DIR})
set_property(TARGET websocket-server-sync-ssl PROPERTY FOLDER "example-websocket-server")
target_link_libraries(websocket-server-sync-ssl
PRIVATE Boost::beast OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries (websocket-server-sync-ssl
OpenSSL::SSL OpenSSL::Crypto
lib-asio
lib-asio-ssl
lib-beast
)
endif()
set_target_properties(websocket-server-sync-ssl
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,17 +8,11 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources(include/boost/beast beast)
GroupSources(example/websocket/server/sync "/")
add_executable (websocket-server-sync
${BOOST_BEAST_FILES}
add_executable(websocket-server-sync
Jamfile
websocket_server_sync.cpp
)
websocket_server_sync.cpp)
target_link_libraries(websocket-server-sync
lib-asio
lib-beast)
target_link_libraries(websocket-server-sync PRIVATE Boost::beast)
set_property(TARGET websocket-server-sync PROPERTY FOLDER "example-websocket-server")
set_target_properties(websocket-server-sync
PROPERTIES FOLDER "example-websocket-server")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,70 +8,65 @@
# Official repository: https://github.com/boostorg/beast
#
include_directories (./extern)
include_directories (./extras/include)
find_package(OpenSSL)
file (GLOB_RECURSE EXTRAS_FILES
${PROJECT_SOURCE_DIR}/test/extras/include/*.hpp
${PROJECT_SOURCE_DIR}/test/extras/include/*.ipp
${PROJECT_SOURCE_DIR}/test/lib_ssl.cpp
)
# lib-asio
add_library(lib-asio STATIC lib_asio.cpp)
target_compile_definitions(lib-asio PUBLIC
BOOST_ASIO_SEPARATE_COMPILATION
BOOST_ASIO_NO_DEPRECATED
BOOST_ASIO_DISABLE_BOOST_ARRAY
BOOST_ASIO_DISABLE_BOOST_BIND
BOOST_ASIO_DISABLE_BOOST_DATE_TIME
BOOST_ASIO_DISABLE_BOOST_REGEX)
target_link_libraries(lib-asio PUBLIC Boost::asio)
set_target_properties(lib-asio PROPERTIES FOLDER "static-libs")
if (OPENSSL_FOUND)
link_libraries (${OPENSSL_LIBRARIES})
endif()
# lib-asio-ssl
add_library(lib-asio-ssl STATIC lib_asio_ssl.cpp)
target_link_libraries(lib-asio-ssl PUBLIC lib-asio)
target_link_libraries(lib-asio-ssl PUBLIC OpenSSL::SSL OpenSSL::Crypto)
set_target_properties(lib-asio-ssl PROPERTIES FOLDER "static-libs")
set (ZLIB_SOURCES
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/crc32.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/deflate.h
#${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/gzguts.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/inffast.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/inffixed.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/inflate.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/inftrees.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/trees.h
#${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/zconf.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/zlib.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/zutil.h
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/adler32.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/compress.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/crc32.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/deflate.c
#${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/gzclose.c
#${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/gzlib.c
#${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/gzread.c
#${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/gzwrite.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/infback.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/inffast.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/inflate.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/inftrees.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/trees.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/uncompr.c
${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12/zutil.c
)
# lib-beast
add_library(lib-beast STATIC lib_beast.cpp)
target_compile_definitions(lib-beast PUBLIC BOOST_BEAST_SEPARATE_COMPILATION)
target_link_libraries(lib-beast PUBLIC Boost::beast lib-asio)
set_target_properties(lib-beast PROPERTIES FOLDER "static-libs")
add_library (
lib-zlib
${ZLIB_SOURCES}
)
target_include_directories(lib-zlib PUBLIC "${CMAKE_CURRENT_LIST_DIR}/extern/zlib-1.2.12")
set_property(TARGET lib-zlib PROPERTY FOLDER "static-libs")
# lib-zlib
enable_language(C)
add_library(lib-zlib STATIC
extern/zlib-1.2.12/adler32.c
extern/zlib-1.2.12/compress.c
extern/zlib-1.2.12/crc32.c
extern/zlib-1.2.12/deflate.c
extern/zlib-1.2.12/infback.c
extern/zlib-1.2.12/inffast.c
extern/zlib-1.2.12/inflate.c
extern/zlib-1.2.12/inftrees.c
extern/zlib-1.2.12/trees.c
extern/zlib-1.2.12/uncompr.c
extern/zlib-1.2.12/zutil.c)
target_compile_options(lib-zlib PRIVATE
$<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-w>
$<$<CXX_COMPILER_ID:MSVC>:/wd4127>
$<$<CXX_COMPILER_ID:MSVC>:/wd4244>
$<$<CXX_COMPILER_ID:MSVC>:/wd4131>)
target_include_directories(lib-zlib PUBLIC extern/zlib-1.2.12)
set_target_properties(lib-zlib PROPERTIES FOLDER "static-libs")
set (TEST_MAIN ${PROJECT_SOURCE_DIR}/test/lib_beast.cpp)
# lib-test
add_library(lib-test STATIC lib_test.cpp)
target_include_directories(lib-test PUBLIC extras/include)
target_link_libraries(lib-test PUBLIC lib-beast)
set_target_properties(lib-test PROPERTIES FOLDER "static-libs")
GroupSources (. "/")
add_subdirectory(beast)
add_subdirectory(bench)
add_subdirectory(doc)
add_subdirectory(example)
add_library (
lib-test STATIC
${CMAKE_CURRENT_LIST_DIR}/lib_test.cpp
)
set_property(TARGET lib-test PROPERTY FOLDER "static-libs")
add_subdirectory (beast)
add_subdirectory (bench)
add_subdirectory (doc)
add_subdirectory (example)
if (Beast_BUILD_FUZZERS AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
if (BOOST_BEAST_BUILD_FUZZERS AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
add_subdirectory(fuzz)
endif()
endif ()

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,73 +8,28 @@
# Official repository: https://github.com/boostorg/beast
#
function(build_individual_tests prefix)
set(options )
set(oneValueArgs )
set(multiValueArgs EXCLUDE LIBS EXTRA)
cmake_parse_arguments(bit "${options}"
"${oneValueArgs}" "${multiValueArgs}" ${ARGN})
add_definitions(-DBOOST_BEAST_ALLOW_DEPRECATED)
add_definitions(-DBOOST_BEAST_TESTS) # For buffers_cat
file(GLOB test_srcs "*.cpp")
set(individual_tests)
foreach(test_src IN LISTS test_srcs)
get_filename_component(test_suffix "${test_src}" NAME_WE)
if(NOT test_suffix IN_LIST bit_EXCLUDE)
set(test_name "${prefix}-${test_suffix}")
add_executable("${test_name}" EXCLUDE_FROM_ALL "${test_src}")
foreach(lib IN LISTS bit_LIBS)
target_link_libraries("${test_name}" "${lib}")
endforeach()
list(APPEND individual_tests COMMAND "${test_name}")
endif()
endforeach()
add_subdirectory(_experimental)
add_subdirectory(core)
add_subdirectory(http)
add_subdirectory(ssl)
add_subdirectory(websocket)
add_subdirectory(zlib)
add_custom_target("${prefix}-all" ${individual_tests})
endfunction()
add_definitions (-DBOOST_BEAST_ALLOW_DEPRECATED)
# For buffers_cat
add_definitions (-DBOOST_BEAST_TESTS)
add_subdirectory (_experimental)
add_subdirectory (core)
add_subdirectory (http)
add_subdirectory (ssl)
add_subdirectory (websocket)
add_subdirectory (zlib)
#-------------------------------------------------------------------------------
GroupSources (include/boost/beast beast)
GroupSources (test/extras/include/boost /)
GroupSources (test/beast /)
add_executable (tests-beast
${BOOST_BEAST_FILES}
${EXTRAS_FILES}
add_executable(tests-beast
Jamfile
core.cpp
http.cpp
ssl.cpp
version.cpp
websocket.cpp
zlib.cpp
)
zlib.cpp)
target_link_libraries(tests-beast
lib-asio
lib-asio-ssl
lib-beast
lib-test)
set_property(TARGET tests-beast PROPERTY FOLDER "tests")
#add_custom_target(tests-beast-all
# DEPENDS
# tests-beast-_experimental-all
# tests-beast-core-all
# tests-beast-http-all
# tests-beast-ssl-all
# tests-beast-websocket-all
# tests-beast-zlib-all )
set_target_properties(tests-beast
PROPERTIES FOLDER "tests")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,29 +8,15 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/beast/_experimental "/")
add_executable (tests-beast-_experimental
${BOOST_BEAST_FILES}
add_executable(tests-beast-_experimental
Jamfile
_test_detail_stream_state.cpp
error.cpp
icy_stream.cpp
stream.cpp
)
stream.cpp)
target_link_libraries(tests-beast-_experimental
lib-asio
lib-beast
lib-test
)
lib-test)
set_property(TARGET tests-beast-_experimental PROPERTY FOLDER "tests")
#
# Individual tests
#
#build_individual_tests(tests-beast-_experimental
# EXCLUDE
# LIBS lib-asio lib-asio-ssl lib-beast lib-test)
set_target_properties(tests-beast-_experimental
PROPERTIES FOLDER "tests")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,11 +8,7 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/beast/core "/")
add_executable (tests-beast-core
${BOOST_BEAST_FILES}
add_executable(tests-beast-core
Jamfile
test_buffer.hpp
file_test.hpp
@ -64,21 +61,11 @@ add_executable (tests-beast-core
static_string.cpp
stream_traits.cpp
string.cpp
tcp_stream.cpp
)
tcp_stream.cpp)
target_link_libraries(tests-beast-core
lib-asio
lib-asio-ssl
lib-beast
lib-test
)
Boost::filesystem)
set_property(TARGET tests-beast-core PROPERTY FOLDER "tests")
#
# Individual tests
#
#build_individual_tests(tests-beast-core
# EXCLUDE _detail_static_const close_socket zlib make_strand prepare_buffers
# LIBS lib-asio lib-asio-ssl lib-beast lib-test)
set_target_properties(tests-beast-core
PROPERTIES FOLDER "tests")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,13 +8,7 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/extras/include/boost/beast extras)
GroupSources (test/beast/http "/")
add_executable (tests-beast-http
${BOOST_BEAST_FILES}
${EXTRAS_FILES}
Jamfile
any_completion_handler.cpp
basic_dynamic_body_fwd.cpp
@ -55,19 +50,11 @@ add_executable (tests-beast-http
vector_body_fwd.cpp
vector_body.cpp
verb.cpp
write.cpp
)
write.cpp)
target_link_libraries(tests-beast-http
lib-asio
lib-asio-ssl
lib-beast
lib-test
)
Boost::filesystem)
set_property(TARGET tests-beast-http PROPERTY FOLDER "tests")
#
# Individual tests
#
#build_individual_tests(tests-beast-http LIBS lib-asio lib-asio-ssl lib-beast lib-test)
set_target_properties(tests-beast-http
PROPERTIES FOLDER "tests")

View File

@ -7,22 +7,13 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/beast/ssl "/")
add_executable (tests-beast-ssl
${BOOST_BEAST_FILES}
Jamfile
ssl_stream.cpp
)
ssl_stream.cpp)
target_link_libraries(tests-beast-ssl
lib-asio
lib-asio-ssl
lib-beast
lib-test
)
lib-test)
set_property(TARGET tests-beast-ssl PROPERTY FOLDER "tests")
#build_individual_tests(tests-beast-ssl LIBS lib-asio lib-asio-ssl lib-beast lib-test)
set_target_properties(tests-beast-ssl
PROPERTIES FOLDER "tests")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,13 +8,7 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/extras/include/boost/beast extras)
GroupSources (test/beast/websocket "/")
add_executable (tests-beast-websocket
${BOOST_BEAST_FILES}
${EXTRAS_FILES}
Jamfile
_detail_decorator.cpp
_detail_prng.cpp
@ -42,18 +37,11 @@ add_executable (tests-beast-websocket
teardown.cpp
timer.cpp
utf8_checker.cpp
write.cpp
)
write.cpp)
target_link_libraries(tests-beast-websocket
lib-asio
lib-asio-ssl
lib-beast
lib-test
)
lib-test)
set_property(TARGET tests-beast-websocket PROPERTY FOLDER "tests")
#build_individual_tests(tests-beast-websocket
# EXCLUDE doc_snippets
# LIBS lib-asio lib-asio-ssl lib-beast lib-test)
set_target_properties(tests-beast-websocket
PROPERTIES FOLDER "tests")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,30 +8,19 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/extern/zlib-1.2.12 zlib)
GroupSources (test/beast/zlib "/")
if (MSVC)
set_source_files_properties (${ZLIB_SOURCES} PROPERTIES COMPILE_FLAGS "/wd4127 /wd4131 /wd4244")
endif()
add_executable (tests-beast-zlib
${BOOST_BEAST_FILES}
${ZLIB_SOURCES}
Jamfile
error.cpp
deflate_stream.cpp
inflate_stream.cpp
zlib.cpp
)
zlib.cpp)
target_include_directories(tests-beast-zlib
PRIVATE ${PROJECT_SOURCE_DIR}/test/extern)
target_link_libraries(tests-beast-zlib
lib-asio
lib-beast
lib-test
)
lib-zlib)
set_property(TARGET tests-beast-zlib PROPERTY FOLDER "tests")
#build_individual_tests(tests-beast-zlib LIBS lib-asio lib-beast lib-test lib-zlib)
set_target_properties(tests-beast-zlib
PROPERTIES FOLDER "tests")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,8 +8,8 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (buffers)
add_subdirectory (parser)
add_subdirectory (utf8_checker)
add_subdirectory (wsload)
add_subdirectory (zlib)
add_subdirectory(buffers)
add_subdirectory(parser)
add_subdirectory(utf8_checker)
add_subdirectory(wsload)
add_subdirectory(zlib)

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,19 +8,12 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/bench/buffers "/")
add_executable (bench-buffers
${BOOST_BEAST_FILES}
add_executable(bench-buffers
Jamfile
bench_buffers.cpp
)
bench_buffers.cpp)
target_link_libraries(bench-buffers
lib-asio
lib-beast
lib-test
)
lib-test)
set_property(TARGET bench-buffers PROPERTY FOLDER "tests-bench")
set_target_properties(bench-buffers
PROPERTIES FOLDER "tests-bench")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,23 +8,17 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/beast/http "/")
GroupSources (test/bench/parser "/")
add_executable (bench-parser
${BOOST_BEAST_FILES}
add_executable(bench-parser
Jamfile
${PROJECT_SOURCE_DIR}/test/beast/http/message_fuzz.hpp
nodejs_parser.hpp
nodejs_parser.cpp
bench_parser.cpp
)
bench_parser.cpp)
target_include_directories(bench-parser
PRIVATE ${PROJECT_SOURCE_DIR})
target_link_libraries(bench-parser
lib-asio
lib-beast
lib-test
)
lib-test)
set_property(TARGET bench-parser PROPERTY FOLDER "tests-bench")
set_target_properties(bench-parser
PROPERTIES FOLDER "tests-bench")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,19 +8,12 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/bench/utf8_checker "/")
add_executable (bench-utf8-checker
${BOOST_BEAST_FILES}
add_executable(bench-utf8-checker
Jamfile
bench_utf8_checker.cpp
)
bench_utf8_checker.cpp)
target_link_libraries(bench-utf8-checker
lib-asio
lib-beast
lib-test
)
lib-test)
set_property(TARGET bench-utf8-checker PROPERTY FOLDER "tests-bench")
set_target_properties(bench-utf8-checker
PROPERTIES FOLDER "tests-bench")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,18 +8,12 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/bench/wsload "/")
add_executable (bench-wsload
${BOOST_BEAST_FILES}
add_executable(bench-wsload
Jamfile
wsload.cpp
)
wsload.cpp)
target_link_libraries(bench-wsload
lib-asio
lib-beast
)
lib-beast)
set_property(TARGET bench-wsload PROPERTY FOLDER "tests-bench")
set_target_properties(bench-wsload
PROPERTIES FOLDER "tests-bench")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,17 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (test/extern/zlib-1.2.12 zlib)
GroupSources (test/bench/zlib "/")
if (MSVC)
set_source_files_properties (${ZLIB_SOURCES} PROPERTIES COMPILE_FLAGS "/wd4127 /wd4131 /wd4244")
endif()
add_executable (bench-zlib
${BOOST_BEAST_FILES}
${ZLIB_SOURCES}
Jamfile
deflate_stream.cpp
inflate_stream.cpp
)
target_link_libraries(bench-zlib
lib-asio
lib-beast
lib-test
)
inflate_stream.cpp)
set_property(TARGET bench-zlib PROPERTY FOLDER "tests-bench")
target_include_directories(bench-zlib
PRIVATE ${PROJECT_SOURCE_DIR}/test/extern)
target_link_libraries(bench-zlib
lib-test
lib-zlib)
set_target_properties(bench-zlib
PROPERTIES FOLDER "tests-bench")

View File

@ -0,0 +1,93 @@
#
# Copyright (c) 2023 Christian Mazakas
# Copyright (c) 2022 alandefreitas (alandefreitas@gmail.com)
#
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
#
cmake_minimum_required(VERSION 3.5...3.16)
project(cmake_subdir_test LANGUAGES CXX)
set(__ignore__ ${CMAKE_C_COMPILER})
set(__ignore__ ${CMAKE_C_FLAGS})
if(BOOST_CI_INSTALL_TEST)
find_package(Boost CONFIG REQUIRED COMPONENTS beast)
else()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
add_subdirectory(../.. boostorg/beast)
set(BOOST_URL_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(deps
# Primary dependencies
asio
assert
bind
config
container
container_hash
core
endian
intrusive
logic
mp11
optional
preprocessor
smart_ptr
static_assert
static_string
system
throw_exception
type_index
type_traits
winapi
# Secondary dependencies
align
context
date_time
move
describe
utility
variant2
predef
pool
algorithm
io
lexical_cast
numeric/conversion
range
tokenizer
array
concept_check
exception
function
iterator
mpl
regex
tuple
unordered
conversion
integer
detail
function_types
fusion
functional
typeof
)
foreach(dep IN LISTS deps)
add_subdirectory(../../../${dep} boostorg/${dep} EXCLUDE_FROM_ALL)
endforeach()
endif()
add_executable(main main.cpp)
target_link_libraries(main Boost::beast)
enable_testing()
add_test(NAME main COMMAND main)
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)

5
test/cmake_test/main.cpp Normal file
View File

@ -0,0 +1,5 @@
#include <boost/beast.hpp>
int main() {
}

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,12 +8,7 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (example example)
GroupSources (test/doc "/")
add_executable (tests-doc
${BOOST_BEAST_FILES}
Jamfile
snippets.hpp
snippets.ipp
@ -33,14 +29,14 @@ add_executable (tests-doc
websocket_6_timeouts.cpp
websocket_7_teardown.cpp
websocket_8_notes.cpp
exemplars.cpp
)
exemplars.cpp)
target_include_directories(tests-doc
PRIVATE ${PROJECT_SOURCE_DIR})
target_link_libraries(tests-doc
lib-asio
lib-asio-ssl
lib-beast
lib-test
)
lib-test)
set_property(TARGET tests-doc PROPERTY FOLDER "tests")
set_target_properties(tests-doc
PROPERTIES FOLDER "tests")

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,4 +8,4 @@
# Official repository: https://github.com/boostorg/beast
#
add_subdirectory (common)
add_subdirectory(common)

View File

@ -1,5 +1,6 @@
#
# Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
# Copyright (c) 2024 Mohammad Nejati
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,25 +8,17 @@
# Official repository: https://github.com/boostorg/beast
#
GroupSources (include/boost/beast beast)
GroupSources (example/common common)
GroupSources (test/extras/include/boost/beast extras)
GroupSources (test/example/common "/")
add_executable (tests-example-common
${BOOST_BEAST_FILES}
${COMMON_FILES}
${EXTRAS_FILES}
Jamfile
root_certificates.cpp
server_certificate.cpp
)
server_certificate.cpp)
target_include_directories(tests-example-common
PRIVATE ${PROJECT_SOURCE_DIR})
target_link_libraries(tests-example-common
lib-asio
lib-asio-ssl
lib-beast
lib-test
)
lib-test)
set_property(TARGET tests-example-common PROPERTY FOLDER "tests")
set_target_properties(tests-example-common
PROPERTIES FOLDER "tests")

View File

@ -36,7 +36,6 @@ add_custom_target(
WORKING_DIRECTORY ${BOOST_BEAST_FUZZER_SEEDS_PARENT_DIR}
COMMENT "Unzipping fuzz seeds"
VERBATIM)
set(BOOST_BEAST_FUZZER_CORPUS_DIR ${CMAKE_CURRENT_BINARY_DIR}/corpus)
set(BOOST_BEAST_FUZZER_MERGED_CORPUS_DIR ${CMAKE_CURRENT_BINARY_DIR}/merged-corpus)
if(EXISTS ${BOOST_BEAST_FUZZER_CORPUS_PATH})
@ -54,6 +53,7 @@ else()
COMMENT "Creating fuzz corpus directory"
VERBATIM)
endif()
set_target_properties(untar_corpus untar_seeds PROPERTIES FOLDER "fuzzing")
add_dependencies(untar_corpus untar_seeds)
# Target that runs all fuzz targets
@ -64,6 +64,7 @@ add_custom_target(
COMMAND ${CMAKE_COMMAND} -E tar cf ${BOOST_BEAST_FUZZER_CORPUS_PATH} ${BOOST_BEAST_FUZZER_CORPUS_DIR}
WORKING_DIRECTORY ${BOOST_BEAST_FUZZER_CORPUS_PARENT_DIR}
VERBATIM)
set_target_properties(boost_beast_fuzz_all PROPERTIES FOLDER "fuzzing")
# Register a single fuzzer and add as dependency to fuzz target
function(add_boost_beast_fuzzer NAME)
@ -73,7 +74,7 @@ function(add_boost_beast_fuzzer NAME)
target_link_libraries(fuzzer_${NAME} PRIVATE lib-beast)
target_compile_options(fuzzer_${NAME} PRIVATE -g -O2 -fsanitize=fuzzer,address,undefined -fno-sanitize-recover=undefined)
target_link_libraries(fuzzer_${NAME} PRIVATE -fsanitize=fuzzer,address,undefined)
set_property(TARGET fuzzer_${NAME} PROPERTY FOLDER "fuzzing")
set_target_properties(fuzzer_${NAME} PROPERTIES FOLDER "fuzzing")
# Custom target to run fuzzer executable
add_custom_target(
@ -106,7 +107,8 @@ function(add_boost_beast_fuzzer NAME)
DEPENDS untar_corpus fuzzer_${NAME})
add_dependencies(fuzz_${NAME} fuzzer_${NAME})
add_dependencies(boost_beast_fuzz_all fuzz_${NAME})
set_property(TARGET fuzz_${NAME} PROPERTY ENVIRONMENT "UBSAN_OPTIONS=halt_on_error=false")
set_target_properties(fuzz_${NAME} PROPERTIES FOLDER "UBSAN_OPTIONS=halt_on_error=false")
set_target_properties(fuzz_${NAME} PROPERTIES FOLDER "fuzzing")
endfunction()
# Register all fuzzers