mirror of
https://github.com/badaix/snapcast.git
synced 2025-08-06 10:09:33 +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
|
decoder/pcm_decoder.cpp
|
||||||
player/player.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
|
set(CLIENT_INCLUDE
|
||||||
${Boost_INCLUDE_DIR}
|
${Boost_INCLUDE_DIR}
|
||||||
|
|
|
@ -108,6 +108,8 @@ endfunction(check_working_cxx_atomics64_2args)
|
||||||
# First check if atomics work without the library.
|
# First check if atomics work without the library.
|
||||||
check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
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, check if the library exists, and atomics work with it.
|
||||||
if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
||||||
check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
|
check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
|
||||||
|
@ -116,7 +118,7 @@ if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
||||||
endif()
|
endif()
|
||||||
if( HAVE_LIBATOMIC OR HAVE_LIBATOMIC_2ARGS )
|
if( HAVE_LIBATOMIC OR HAVE_LIBATOMIC_2ARGS )
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
|
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)
|
check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB)
|
||||||
if (NOT HAVE_CXX_ATOMICS_WITH_LIB)
|
if (NOT HAVE_CXX_ATOMICS_WITH_LIB)
|
||||||
message(FATAL_ERROR "Host compiler must support std::atomic!")
|
message(FATAL_ERROR "Host compiler must support std::atomic!")
|
||||||
|
@ -137,7 +139,7 @@ if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
||||||
endif()
|
endif()
|
||||||
if( HAVE_CXX_LIBATOMICS64 OR HAVE_CXX_LIBATOMICS64_2ARGS )
|
if( HAVE_CXX_LIBATOMICS64 OR HAVE_CXX_LIBATOMICS64_2ARGS )
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
|
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)
|
check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITH_LIB)
|
||||||
if (NOT HAVE_CXX_ATOMICS64_WITH_LIB)
|
if (NOT HAVE_CXX_ATOMICS64_WITH_LIB)
|
||||||
message(FATAL_ERROR "Host compiler must support std::atomic!")
|
message(FATAL_ERROR "Host compiler must support std::atomic!")
|
||||||
|
|
|
@ -23,6 +23,7 @@ set(SERVER_SOURCES
|
||||||
|
|
||||||
set(SERVER_LIBRARIES
|
set(SERVER_LIBRARIES
|
||||||
${CMAKE_THREAD_LIBS_INIT}
|
${CMAKE_THREAD_LIBS_INIT}
|
||||||
|
${ATOMIC_LIBRARY}
|
||||||
common)
|
common)
|
||||||
|
|
||||||
set(SERVER_INCLUDE
|
set(SERVER_INCLUDE
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue