mirror of
https://github.com/badaix/snapcast.git
synced 2025-08-02 16:19:09 +02:00
cmake: properly link against libatomic when needed
Similar to CMAKE_REQUIRED_FLAGS, CMAKE_CXX_LINK_FLAGS is not an appropriate variable for linking against libraries.
This commit is contained in:
parent
c4a4c77417
commit
f6f107af28
3 changed files with 6 additions and 3 deletions
|
@ -7,7 +7,7 @@ set(CLIENT_SOURCES
|
|||
decoder/pcm_decoder.cpp
|
||||
player/player.cpp)
|
||||
|
||||
set(CLIENT_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} common)
|
||||
set(CLIENT_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${ATOMIC_LIBRARY} common)
|
||||
|
||||
set(CLIENT_INCLUDE
|
||||
${Boost_INCLUDE_DIR}
|
||||
|
|
|
@ -108,6 +108,8 @@ endfunction(check_working_cxx_atomics64_2args)
|
|||
# First check if atomics work without the library.
|
||||
check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
||||
|
||||
set(ATOMIC_LIBRARY "")
|
||||
|
||||
# If not, check if the library exists, and atomics work with it.
|
||||
if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
||||
check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
|
||||
|
@ -116,7 +118,7 @@ if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
|||
endif()
|
||||
if( HAVE_LIBATOMIC OR HAVE_LIBATOMIC_2ARGS )
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
|
||||
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")
|
||||
set(ATOMIC_LIBRARY "atomic")
|
||||
check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB)
|
||||
if (NOT HAVE_CXX_ATOMICS_WITH_LIB)
|
||||
message(FATAL_ERROR "Host compiler must support std::atomic!")
|
||||
|
@ -137,7 +139,7 @@ if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
|||
endif()
|
||||
if( HAVE_CXX_LIBATOMICS64 OR HAVE_CXX_LIBATOMICS64_2ARGS )
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
|
||||
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")
|
||||
set(ATOMIC_LIBRARY "atomic")
|
||||
check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITH_LIB)
|
||||
if (NOT HAVE_CXX_ATOMICS64_WITH_LIB)
|
||||
message(FATAL_ERROR "Host compiler must support std::atomic!")
|
||||
|
|
|
@ -23,6 +23,7 @@ set(SERVER_SOURCES
|
|||
|
||||
set(SERVER_LIBRARIES
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${ATOMIC_LIBRARY}
|
||||
common)
|
||||
|
||||
set(SERVER_INCLUDE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue