1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
add_library(sys_a OBJECT)
target_include_directories(sys_a PUBLIC include/)
target_include_directories(sys_a PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include/)
target_sources(sys_a
PRIVATE
source/Os.cc
source/Guard.cc
source/Errors.cc
source/Path.cc
source/Process.cc
source/Signal.cc
INTERFACE
$<TARGET_OBJECTS:sys_a>
)
target_link_libraries(sys_a PUBLIC
${CMAKE_DL_LIBS}
result_a
fmt::fmt
spdlog::spdlog)
if (ENABLE_UNIT_TESTS)
add_executable(sys_unit_test
test/EnvironmentTest.cc
test/ErrorsTest.cc
test/PathTest.cc
)
target_include_directories(sys_unit_test PRIVATE source/)
target_link_libraries(sys_unit_test sys_a)
target_link_libraries(sys_unit_test PkgConfig::GTest ${CMAKE_THREAD_LIBS_INIT})
add_test(NAME bear::sys_unit_test COMMAND $<TARGET_FILE:sys_unit_test>)
endif ()
if (SUPPORT_PRELOAD AND NOT HAVE_GNU_LIB_NAMES_H)
if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
execute_process(
COMMAND sh -c "ls /lib/libc.so.*"
OUTPUT_VARIABLE LIBC_SO_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# cmake_path(GET LIBC_SO_PATH FILENAME LIBC_SO)
get_filename_component(LIBC_SO ${LIBC_SO_PATH} NAME)
elseif (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
execute_process(
COMMAND sh -c "ls /usr/lib/libc.so.*"
OUTPUT_VARIABLE LIBC_SO_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# cmake_path(GET LIBC_SO_PATH FILENAME LIBC_SO)
get_filename_component(LIBC_SO ${LIBC_SO_PATH} NAME)
elseif (HAIKU)
set(LIBC_SO "libroot.so")
else()
set(LIBC_SO "libc.so")
endif()
message(STATUS "libc.so filename ${LIBC_SO}")
endif()
configure_file(
include/libsys/lib-names.h.in
include/libsys/lib-names.h
@ONLY
)
|