build: Allow using new C++ standards when building (#426)

* Require C++11 as minimal standard

Signed-off-by: Uilian Ries <uilianries@gmail.com>

* Link to thread when needed

Signed-off-by: Uilian Ries <uilianries@gmail.com>

* public thread target

Signed-off-by: Uilian Ries <uilianries@gmail.com>

* Fix typo with target_compile_features

---------

Signed-off-by: Uilian Ries <uilianries@gmail.com>
Co-authored-by: Joan Marcè i Igual <jmigual@users.noreply.github.com>
This commit is contained in:
Uilian Ries 2024-05-29 17:59:10 +02:00 committed by GitHub
parent c6be96b226
commit 373a01c989
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 15 deletions

View File

@ -44,7 +44,7 @@ if (DISABLE_LOGGING)
add_definitions(-DSIO_DISABLE_LOGGING)
endif()
set(ALL_SRC
set(ALL_SRC
"src/sio_client.cpp"
"src/sio_socket.cpp"
"src/internal/sio_client_impl.cpp"
@ -67,7 +67,7 @@ endif()
include(GNUInstallDirs)
target_include_directories(sioclient
target_include_directories(sioclient
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
@ -75,8 +75,10 @@ target_include_directories(sioclient
${MODULE_INCLUDE_DIRS}
)
set_property(TARGET sioclient PROPERTY CXX_STANDARD 11)
set_property(TARGET sioclient PROPERTY CXX_STANDARD_REQUIRED ON)
target_compile_features(sioclient PUBLIC cxx_std_11)
find_package(Threads REQUIRED)
target_link_libraries(sioclient PUBLIC Threads::Threads)
if(BUILD_SHARED_LIBS)
set_target_properties(sioclient
@ -100,15 +102,14 @@ if(OPENSSL_FOUND)
${OPENSSL_INCLUDE_DIR}
)
set_property(TARGET sioclient_tls PROPERTY CXX_STANDARD 11)
set_property(TARGET sioclient_tls PROPERTY CXX_STANDARD_REQUIRED ON)
target_compile_features(sioclient_tls PUBLIC cxx_std_11)
target_link_libraries(sioclient_tls PRIVATE OpenSSL::SSL OpenSSL::Crypto)
if (NOT USE_SUBMODULES)
if (NOT USE_SUBMODULES)
target_link_libraries(sioclient_tls PRIVATE websocketpp::websocketpp asio asio::asio rapidjson)
endif()
target_compile_definitions(sioclient_tls PRIVATE -DSIO_TLS)
target_link_libraries(sioclient_tls PUBLIC Threads::Threads)
if(BUILD_SHARED_LIBS)
set_target_properties(sioclient_tls

View File

@ -1,10 +1,9 @@
cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
find_package(Threads REQUIRED)
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
add_executable(sio_console_demo main.cpp)
set_property(TARGET sio_console_demo PROPERTY CXX_STANDARD 11)
set_property(TARGET sio_console_demo PROPERTY CXX_STANDARD_REQUIRED ON)
target_link_libraries(sio_console_demo sioclient)
target_link_libraries(sio_console_demo pthread )
target_link_libraries(sio_console_demo Threads::Threads)
target_compile_features(sio_console_demo PRIVATE cxx_std_11)
message(STATUS ${Boost_INCLUDE_DIRS} )
#target_include_directories(sio_console_demo PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../src" ${Boost_INCLUDE_DIRS} )

View File

@ -7,8 +7,8 @@ FetchContent_Declare(
)
FetchContent_MakeAvailable(Catch2)
find_package(Threads REQUIRED)
add_executable(sio_test sio_test.cpp)
set_property(TARGET sio_test PROPERTY CXX_STANDARD 11)
set_property(TARGET sio_test PROPERTY CXX_STANDARD_REQUIRED ON)
target_link_libraries(sio_test PRIVATE Catch2::Catch2WithMain sioclient)
target_link_libraries(sio_test PRIVATE Catch2::Catch2WithMain sioclient Threads::Threads)
add_test(sioclient_test sio_test)