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()
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() endif()
# Fix for Boost Asio < 1.70
if(OS_IS_MACOSX) if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
target_compile_definitions(pvt_libs if(${has_string_view})
PUBLIC target_compile_definitions(pvt_libs
-DBOOST_ASIO_HAS_STD_STRING_VIEW 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()
endif() endif()

View File

@ -76,12 +76,20 @@ if(ENABLE_RAW_UDP AND PCAP_FOUND)
) )
endif() endif()
# Fix for Boost Asio < 1.70
if(OS_IS_MACOSX) if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
target_compile_definitions(signal_source_gr_blocks if(${has_string_view})
PUBLIC target_compile_definitions(signal_source_gr_blocks
-DBOOST_ASIO_HAS_STD_STRING_VIEW 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()
endif() endif()

View File

@ -100,12 +100,20 @@ if(Boost_VERSION VERSION_GREATER "106599")
) )
endif() endif()
# Fix for Boost Asio < 1.70
if(OS_IS_MACOSX) if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
target_compile_definitions(tracking_libs if(${has_string_view})
PUBLIC target_compile_definitions(tracking_libs
-DBOOST_ASIO_HAS_STD_STRING_VIEW 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()
endif() endif()

View File

@ -69,14 +69,22 @@ endif()
if(OS_IS_MACOSX) if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
target_compile_definitions(core_monitor if(${has_string_view})
PUBLIC target_compile_definitions(core_monitor
-DBOOST_ASIO_HAS_STD_STRING_VIEW 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()
endif() endif()
if(ENABLE_CLANG_TIDY) if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE) if(CLANG_TIDY_EXE)
set_target_properties(core_monitor set_target_properties(core_monitor

View File

@ -162,12 +162,20 @@ target_link_libraries(core_receiver
pvt_adapters pvt_adapters
) )
# Fix for Boost Asio < 1.70
if(OS_IS_MACOSX) if(OS_IS_MACOSX)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (${Boost_VERSION} VERSION_LESS 107000))
target_compile_definitions(core_receiver if(${has_string_view})
PUBLIC target_compile_definitions(core_receiver
-DBOOST_ASIO_HAS_STD_STRING_VIEW 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()
endif() endif()