Fix libatomic detection on clang 10 compiler
This commit is contained in:
parent
be766ae80f
commit
151d9d3f7d
2 changed files with 14 additions and 12 deletions
|
|
@ -78,8 +78,18 @@ add_library(sfizz-spline STATIC "src/external/spline/spline/spline.cpp")
|
||||||
target_include_directories(sfizz-spline PUBLIC "src/external/spline")
|
target_include_directories(sfizz-spline PUBLIC "src/external/spline")
|
||||||
|
|
||||||
include (CheckLibraryExists)
|
include (CheckLibraryExists)
|
||||||
|
add_library (sfizz-atomic INTERFACE)
|
||||||
if (UNIX AND NOT APPLE)
|
if (UNIX AND NOT APPLE)
|
||||||
check_library_exists(atomic __atomic_load "" LIBATOMIC_FOUND)
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic")
|
||||||
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c" "int main() { return 0; }")
|
||||||
|
try_compile(SFIZZ_LINK_LIBATOMIC "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic"
|
||||||
|
SOURCES "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c"
|
||||||
|
LINK_LIBRARIES "atomic")
|
||||||
|
if (SFIZZ_LINK_LIBATOMIC)
|
||||||
|
target_link_libraries (sfizz-atomic INTERFACE "atomic")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
set(SFIZZ_LINK_LIBATOMIC FALSE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Don't show build information when building a different project
|
# Don't show build information when building a different project
|
||||||
|
|
@ -98,6 +108,7 @@ Build benchmarks: ${SFIZZ_BENCHMARKS}
|
||||||
Build tests: ${SFIZZ_TESTS}
|
Build tests: ${SFIZZ_TESTS}
|
||||||
Use vcpkg: ${SFIZZ_USE_VCPKG}
|
Use vcpkg: ${SFIZZ_USE_VCPKG}
|
||||||
Statically link libsndfile: ${SFIZZ_STATIC_LIBSNDFILE}
|
Statically link libsndfile: ${SFIZZ_STATIC_LIBSNDFILE}
|
||||||
|
Link libatomic: ${SFIZZ_LINK_LIBATOMIC}
|
||||||
|
|
||||||
Install prefix: ${CMAKE_INSTALL_PREFIX}
|
Install prefix: ${CMAKE_INSTALL_PREFIX}
|
||||||
LV2 destination directory: ${LV2PLUGIN_INSTALL_DIR}
|
LV2 destination directory: ${LV2PLUGIN_INSTALL_DIR}
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ target_sources(sfizz_static PRIVATE ${SFIZZ_SOURCES} sfizz/sfizz_wrapper.cpp sfi
|
||||||
target_include_directories (sfizz_static PUBLIC .)
|
target_include_directories (sfizz_static PUBLIC .)
|
||||||
target_include_directories (sfizz_static PUBLIC external)
|
target_include_directories (sfizz_static PUBLIC external)
|
||||||
target_link_libraries (sfizz_static PUBLIC absl::strings absl::span)
|
target_link_libraries (sfizz_static PUBLIC absl::strings absl::span)
|
||||||
target_link_libraries (sfizz_static PRIVATE sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile sfizz-pugixml sfizz-spline sfizz-kissfft sfizz-cpuid)
|
target_link_libraries (sfizz_static PRIVATE sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile sfizz-pugixml sfizz-spline sfizz-kissfft sfizz-cpuid sfizz-atomic)
|
||||||
set_target_properties (sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp")
|
set_target_properties (sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp")
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
target_compile_definitions (sfizz_static PRIVATE _USE_MATH_DEFINES)
|
target_compile_definitions (sfizz_static PRIVATE _USE_MATH_DEFINES)
|
||||||
|
|
@ -80,9 +80,6 @@ configure_file (${PROJECT_SOURCE_DIR}/doxygen/scripts/Doxyfile.in ${PROJECT_SOUR
|
||||||
|
|
||||||
add_library (sfizz::parser ALIAS sfizz_parser)
|
add_library (sfizz::parser ALIAS sfizz_parser)
|
||||||
add_library (sfizz::sfizz ALIAS sfizz_static)
|
add_library (sfizz::sfizz ALIAS sfizz_static)
|
||||||
if (LIBATOMIC_FOUND)
|
|
||||||
target_link_libraries (sfizz_static PRIVATE atomic)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Shared library and installation target
|
# Shared library and installation target
|
||||||
if (SFIZZ_SHARED)
|
if (SFIZZ_SHARED)
|
||||||
|
|
@ -90,7 +87,7 @@ if (SFIZZ_SHARED)
|
||||||
target_sources(sfizz_shared PRIVATE ${SFIZZ_SOURCES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
|
target_sources(sfizz_shared PRIVATE ${SFIZZ_SOURCES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
|
||||||
target_include_directories (sfizz_shared PRIVATE .)
|
target_include_directories (sfizz_shared PRIVATE .)
|
||||||
target_include_directories (sfizz_shared PRIVATE external)
|
target_include_directories (sfizz_shared PRIVATE external)
|
||||||
target_link_libraries (sfizz_shared PRIVATE absl::strings absl::span sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile sfizz-pugixml sfizz-spline sfizz-kissfft sfizz-cpuid)
|
target_link_libraries (sfizz_shared PRIVATE absl::strings absl::span sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile sfizz-pugixml sfizz-spline sfizz-kissfft sfizz-cpuid sfizz-atomic)
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
target_compile_definitions (sfizz_shared PRIVATE _USE_MATH_DEFINES)
|
target_compile_definitions (sfizz_shared PRIVATE _USE_MATH_DEFINES)
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -104,10 +101,4 @@ if (SFIZZ_SHARED)
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (UNIX AND NOT APPLE)
|
|
||||||
if (LIBATOMIC_FOUND)
|
|
||||||
target_link_libraries (sfizz_shared PRIVATE atomic)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue