2019-08-28 20:49:37 +00:00
|
|
|
# Set standard, system and compiler libraries explicitly.
|
|
|
|
# This is intended for more control of what we are linking.
|
|
|
|
|
|
|
|
set (DEFAULT_LIBS "-nodefaultlibs")
|
|
|
|
|
2019-08-30 16:50:43 +00:00
|
|
|
# We need builtins from Clang's RT even without libcxx - for ubsan+int128.
|
|
|
|
# See https://bugs.llvm.org/show_bug.cgi?id=16404
|
|
|
|
if (COMPILER_CLANG)
|
|
|
|
execute_process (COMMAND ${CMAKE_CXX_COMPILER} --print-file-name=libclang_rt.builtins-${CMAKE_SYSTEM_PROCESSOR}.a OUTPUT_VARIABLE BUILTINS_LIBRARY OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
else ()
|
|
|
|
set (BUILTINS_LIBRARY "-lgcc")
|
2019-08-28 20:49:37 +00:00
|
|
|
endif ()
|
|
|
|
|
2019-08-30 16:50:43 +00:00
|
|
|
set (DEFAULT_LIBS "${DEFAULT_LIBS} ${BUILTINS_LIBRARY} ${COVERAGE_OPTION} -lc -lm -lrt -lpthread -ldl")
|
|
|
|
|
|
|
|
message(STATUS "Default libraries: ${DEFAULT_LIBS}")
|
|
|
|
|
2019-08-28 20:49:37 +00:00
|
|
|
set(CMAKE_CXX_STANDARD_LIBRARIES ${DEFAULT_LIBS})
|
|
|
|
set(CMAKE_C_STANDARD_LIBRARIES ${DEFAULT_LIBS})
|
|
|
|
|
|
|
|
# Global libraries
|
|
|
|
|
|
|
|
add_library(global-libs INTERFACE)
|
|
|
|
|
|
|
|
# Unfortunately '-pthread' doesn't work with '-nodefaultlibs'.
|
|
|
|
# Just make sure we have pthreads at all.
|
|
|
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
|
|
|
|
add_subdirectory(libs/libglibc-compatibility)
|
2019-08-30 13:28:02 +00:00
|
|
|
include (cmake/find/unwind.cmake)
|
|
|
|
include (cmake/find/cxx.cmake)
|
2019-08-28 20:49:37 +00:00
|
|
|
|
|
|
|
add_library(global-group INTERFACE)
|
|
|
|
target_link_libraries(global-group INTERFACE
|
|
|
|
-Wl,--start-group
|
|
|
|
$<TARGET_PROPERTY:global-libs,INTERFACE_LINK_LIBRARIES>
|
|
|
|
-Wl,--end-group
|
|
|
|
)
|
|
|
|
|
|
|
|
link_libraries(global-group)
|
|
|
|
|
2019-08-30 16:50:43 +00:00
|
|
|
# FIXME: remove when all contribs will get custom cmake lists
|
2019-08-28 20:49:37 +00:00
|
|
|
install(
|
|
|
|
TARGETS global-group global-libs
|
|
|
|
EXPORT global
|
|
|
|
)
|