diff options
-rw-r--r-- | CMakeLists.txt | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f03b9a218..3281ad6bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,6 +186,13 @@ endif() set(DEFAULT_ON_UNLESS_APPLE ON) +set(DEFAULT_USE_STATIC_LIBATOMIC ON) +if(UNIX AND NOT APPLE) + execute_process(COMMAND cat /etc/os-release COMMAND head -n1 OUTPUT_VARIABLE LINUX_DISTRO) + if(${LINUX_DISTRO} STREQUAL "NAME=\"Arch Linux\"\n") + set(DEFAULT_USE_STATIC_LIBATOMIC OFF) + endif() +endif() if(APPLE) set(DEFAULT_ON_UNLESS_APPLE OFF) endif() @@ -214,7 +221,7 @@ option(USE_DEBUG_JSC "Enable assertions and use a debug build of JavaScriptCore" option(USE_UNIFIED_SOURCES "Use unified sources to speed up the build" OFF) option(CANARY "Make `bun --revision` report a canary release" OFF) - +option(USE_STATIC_LIBATOMIC "statically link libatomic, requires the presence of libatomic.a" ${DEFAULT_USE_STATIC_LIBATOMIC}) set(ERROR_LIMIT 100 CACHE STRING "Maximum number of errors to show when compiling C++ code") set(ARCH x86_64) @@ -936,7 +943,11 @@ if(UNIX AND NOT APPLE) target_link_libraries(${bun} PRIVATE "pthread") target_link_libraries(${bun} PRIVATE "dl") - target_link_libraries(${bun} PRIVATE "libatomic.a") + if(NOT USE_STATIC_LIBATOMIC) + target_link_libraries(${bun} PUBLIC "libatomic.so") + else() + target_link_libraries(${bun} PRIVATE "libatomic.a") + endif() target_link_libraries(${bun} PRIVATE "${WEBKIT_LIB_DIR}/libicudata.a") target_link_libraries(${bun} PRIVATE "${WEBKIT_LIB_DIR}/libicui18n.a") |