Skip to content

Commit

Permalink
build: Allow using new C++ standards when building (#426)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
uilianries and jmigual committed May 29, 2024
1 parent c6be96b commit 373a01c
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 15 deletions.
17 changes: 9 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -67,16 +67,18 @@ endif()

include(GNUInstallDirs)

target_include_directories(sioclient
target_include_directories(sioclient
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
PRIVATE
${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
Expand All @@ -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
Expand Down
7 changes: 3 additions & 4 deletions examples/Console/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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} )

6 changes: 3 additions & 3 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

0 comments on commit 373a01c

Please sign in to comment.