splitted crow features into two options

This commit is contained in:
Gulliver 2024-02-21 00:25:30 +01:00
parent 1b6a4f4301
commit fb370ab7b6
4 changed files with 22 additions and 16 deletions

View File

@ -24,8 +24,8 @@ jobs:
matrix: matrix:
os: [ ubuntu-latest, os: [ ubuntu-latest,
windows-latest, windows-latest,
ubuntu-20.04,
macos-latest, macos-latest,
ubuntu-20.04,
macos-11 macos-11
] ]
# ubuntu-18.04 does not work due to compile error on asio # ubuntu-18.04 does not work due to compile error on asio
@ -55,7 +55,8 @@ jobs:
if [ "$RUNNER_OS" == "Windows" ]; then if [ "$RUNNER_OS" == "Windows" ]; then
cmake \ cmake \
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \ -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \
-DCROW_FEATURES="ssl;compression" \ -DCROW_ENABLE_SSL=ON \
-DCROW_ENABLE_COMPRESSION=ON \
-DCROW_AMALGAMATE=ON \ -DCROW_AMALGAMATE=ON \
-DCROW_BUILD_TESTS=ON \ -DCROW_BUILD_TESTS=ON \
-B build -B build
@ -63,13 +64,15 @@ jobs:
LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" \ LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" \
CPPFLAGS="-I/usr/local/opt/openssl@1.1/include" \ CPPFLAGS="-I/usr/local/opt/openssl@1.1/include" \
cmake \ cmake \
-DCROW_FEATURES="ssl;compression" \ -DCROW_ENABLE_SSL=ON \
-DCROW_ENABLE_COMPRESSION=ON \
-DCROW_AMALGAMATE=ON \ -DCROW_AMALGAMATE=ON \
-DCROW_BUILD_TESTS=ON \ -DCROW_BUILD_TESTS=ON \
-B build -B build
else else
cmake \ cmake \
-DCROW_FEATURES="ssl;compression" \ -DCROW_ENABLE_SSL=ON \
-DCROW_ENABLE_COMPRESSION=ON \
-DCROW_AMALGAMATE=ON \ -DCROW_AMALGAMATE=ON \
-DCROW_BUILD_TESTS=ON \ -DCROW_BUILD_TESTS=ON \
-B build -B build

View File

@ -49,7 +49,10 @@ option(CROW_INSTALL "Add install step for Crow" ON )
option(CROW_USE_BOOST "Use Boost.Asio for Crow" OFF) option(CROW_USE_BOOST "Use Boost.Asio for Crow" OFF)
# Possible values: ssl, compression # Possible values: ssl, compression
option(CROW_FEATURES "Enable features extending Crow's abilities" "") #option(CROW_FEATURES "Enable features extending Crow's abilities" "")
option(CROW_ENABLE_SSL "Enable Crow's SSL feature" OFF)
option(CROW_ENABLE_COMPRESSION "Enable Crow's Compression feature" OFF)
##################################### #####################################
# Define Targets # Define Targets
@ -80,13 +83,13 @@ endif()
target_compile_definitions(Crow INTERFACE "") target_compile_definitions(Crow INTERFACE "")
if("compression" IN_LIST CROW_FEATURES) if(CROW_ENABLE_COMPRESSION)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
target_link_libraries(Crow INTERFACE ZLIB::ZLIB) target_link_libraries(Crow INTERFACE ZLIB::ZLIB)
target_compile_definitions(Crow INTERFACE CROW_ENABLE_COMPRESSION) target_compile_definitions(Crow INTERFACE CROW_ENABLE_COMPRESSION)
endif() endif()
if("ssl" IN_LIST CROW_FEATURES) if(CROW_ENABLE_SSL)
find_package(OpenSSL REQUIRED) find_package(OpenSSL REQUIRED)
target_link_libraries(Crow INTERFACE OpenSSL::SSL) target_link_libraries(Crow INTERFACE OpenSSL::SSL)
target_compile_definitions(Crow INTERFACE CROW_ENABLE_SSL) target_compile_definitions(Crow INTERFACE CROW_ENABLE_SSL)
@ -119,11 +122,11 @@ if(CROW_BUILD_TESTS)
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests/unittest COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests/unittest
) )
if(NOT "compression" IN_LIST CROW_FEATURES) if(NOT CROW_ENABLE_COMPRESSION)
message(STATUS "Compression tests are omitted. (Configure with CROW_FEATURES containing 'compression' to enable them)") message(STATUS "Compression tests are omitted. (Configure with CROW_ENABLE_COMPRESSION to enable them)")
endif() endif()
if(NOT "ssl" IN_LIST CROW_FEATURES) if(NOT CROW_ENABLE_SSL)
message(STATUS "SSL tests are omitted. (Configure with CROW_FEATURES containing 'ssl' to enable them)") message(STATUS "SSL tests are omitted. (Configure with CROW_ENABLE_SSL to enable them)")
else() else()
if(NOT MSVC) if(NOT MSVC)
add_test( add_test(

View File

@ -14,11 +14,11 @@ if(NOT DEFINED CROW_FEATURES)
set(CROW_FEATURES ${CROW_INSTALLED_FEATURES}) set(CROW_FEATURES ${CROW_INSTALLED_FEATURES})
endif() endif()
if("compression" IN_LIST CROW_FEATURES) if(CROW_ENABLE_COMPRESSION)
find_dependency(ZLIB) find_dependency(ZLIB)
endif() endif()
if("ssl" IN_LIST CROW_FEATURES) if(CROW_ENABLE_SSL)
find_dependency(OpenSSL) find_dependency(OpenSSL)
endif() endif()
@ -38,12 +38,12 @@ endif()
list(REMOVE_ITEM _CROW_ILL "ZLIB::ZLIB" "OpenSSL::SSL") list(REMOVE_ITEM _CROW_ILL "ZLIB::ZLIB" "OpenSSL::SSL")
list(REMOVE_ITEM _CROW_ICD "CROW_ENABLE_SSL" "CROW_ENABLE_COMPRESSION") list(REMOVE_ITEM _CROW_ICD "CROW_ENABLE_SSL" "CROW_ENABLE_COMPRESSION")
if("compression" IN_LIST CROW_FEATURES) if(CROW_ENABLE_COMPRESSION)
list(APPEND _CROW_ILL "ZLIB::ZLIB") list(APPEND _CROW_ILL "ZLIB::ZLIB")
list(APPEND _CROW_ICD "CROW_ENABLE_COMPRESSION") list(APPEND _CROW_ICD "CROW_ENABLE_COMPRESSION")
endif() endif()
if("ssl" IN_LIST CROW_FEATURES) if(CROW_ENABLE_SSL)
list(APPEND _CROW_ILL "OpenSSL::SSL") list(APPEND _CROW_ILL "OpenSSL::SSL")
list(APPEND _CROW_ICD "CROW_ENABLE_SSL") list(APPEND _CROW_ICD "CROW_ENABLE_SSL")
endif() endif()

View File

@ -27,7 +27,7 @@ add_subdirectory(template)
add_subdirectory(multi_file) add_subdirectory(multi_file)
add_subdirectory(external_definition) add_subdirectory(external_definition)
if(NOT MSVC) if(NOT MSVC)
if ("ssl" IN_LIST CROW_FEATURES) if (CROW_ENABLE_SSL)
add_subdirectory(ssl) add_subdirectory(ssl)
endif() endif()
endif() endif()