Better fix for Boost Asio and string_view issue in macOS

This commit is contained in:
Carles Fernandez 2019-05-26 02:09:53 +02:00
parent d13e00ba50
commit 59494034d8
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
6 changed files with 76 additions and 25 deletions

View File

@ -690,6 +690,17 @@ if(CMAKE_VERSION VERSION_LESS 3.5)
endif()
endif()
# Fix for Boost Asio < 1.70 when using Clang in macOS
if(${Boost_VERSION} VERSION_LESS 107000)
# Check if we have std::string_view
include(CheckCXXSourceCompiles)
check_cxx_source_compiles("
#include <string_view>
int main()
{ std::string_view sv; }"
has_string_view
)
endif()
################################################################################

View File

@ -94,12 +94,20 @@ if(Boost_VERSION VERSION_GREATER "106599")
)
endif()
# Fix for Boost Asio < 1.70
if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_definitions(pvt_libs
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW
)
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
if(${has_string_view})
target_compile_definitions(pvt_libs
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1
)
else()
target_compile_definitions(pvt_libs
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=0
)
endif()
endif()
endif()

View File

@ -76,12 +76,20 @@ if(ENABLE_RAW_UDP AND PCAP_FOUND)
)
endif()
# Fix for Boost Asio < 1.70
if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_definitions(signal_source_gr_blocks
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW
)
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
if(${has_string_view})
target_compile_definitions(signal_source_gr_blocks
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1
)
else()
target_compile_definitions(signal_source_gr_blocks
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=0
)
endif()
endif()
endif()

View File

@ -100,12 +100,20 @@ if(Boost_VERSION VERSION_GREATER "106599")
)
endif()
# Fix for Boost Asio < 1.70
if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_definitions(tracking_libs
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW
)
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
if(${has_string_view})
target_compile_definitions(tracking_libs
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1
)
else()
target_compile_definitions(tracking_libs
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=0
)
endif()
endif()
endif()

View File

@ -69,14 +69,22 @@ endif()
if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_definitions(core_monitor
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW
)
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
if(${has_string_view})
target_compile_definitions(core_monitor
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1
)
else()
target_compile_definitions(core_monitor
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=0
)
endif()
endif()
endif()
if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE)
set_target_properties(core_monitor

View File

@ -162,12 +162,20 @@ target_link_libraries(core_receiver
pvt_adapters
)
# Fix for Boost Asio < 1.70
if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_definitions(core_receiver
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW
)
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
if(${has_string_view})
target_compile_definitions(core_receiver
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1
)
else()
target_compile_definitions(core_receiver
PUBLIC
-DBOOST_ASIO_HAS_STD_STRING_VIEW=0
)
endif()
endif()
endif()