blob: 461c02fbf0e1786b67aa14a875ca6aa9ab5af026 (
plain)
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
65
66
67
68
|
# SPDX-License-Identifier: GPL-3.0-or-later
include(CheckSymbolExists)
include(GNUInstallDirs)
if(NOT DEFINED RCC_ENABLE_THREADS)
set(RCC_ENABLE_THREADS ON)
endif()
if(NOT DEFINED LIBBASE_ENABLE_THREADS)
set(LIBBASE_ENABLE_THREADS "${RCC_ENABLE_THREADS}")
endif()
if(NOT DEFINED LIBBASE_BUILD_SHARED_LIBS)
set(LIBBASE_BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS}")
endif()
if(NOT DEFINED LIBBASE_BUILD_STATIC)
if(BUILD_SHARED_LIBS)
set(LIBBASE_BUILD_STATIC OFF)
else()
set(LIBBASE_BUILD_STATIC ON)
endif()
endif()
if(NOT DEFINED LIBBASE_BUILD_LIBBASE_DYLIB)
set(LIBBASE_BUILD_LIBBASE_DYLIB OFF)
endif()
set(LIBBASE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
set(LIBBASE_BINARY_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/include")
file(MAKE_DIRECTORY "${LIBBASE_BINARY_INCLUDE_DIR}/core/config")
check_symbol_exists(strerror_r "string.h" HAVE_STRERROR_R)
check_symbol_exists(strerror_s "string.h" HAVE_DECL_STRERROR_S)
configure_file(
"${LIBBASE_INCLUDE_DIR}/core/config/config.h.cmake"
"${LIBBASE_BINARY_INCLUDE_DIR}/core/config/config.h")
configure_file(
"${LIBBASE_INCLUDE_DIR}/core/config/libbase-config.h.cmake"
"${LIBBASE_BINARY_INCLUDE_DIR}/core/config/libbase-config.h")
add_library(RCCCore
src/core/adt/SmallVector.cpp
src/core/math/MathExtras.cc
src/core/memory/MemAlloc.cpp
src/core/error/Errno.cc
)
target_compile_features(RCCCore PUBLIC cxx_std_23)
target_compile_definitions(RCCCore PRIVATE LIBBASE_EXPORTS)
target_include_directories(RCCCore
PUBLIC
"$<BUILD_INTERFACE:${LIBBASE_BINARY_INCLUDE_DIR}>"
"$<BUILD_INTERFACE:${LIBBASE_INCLUDE_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
install(TARGETS RCCCore
EXPORT RCCTargets
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(DIRECTORY include/core DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
FILES_MATCHING PATTERN "*.h" PATTERN "*.inc" PATTERN "*.def")
install(DIRECTORY "${LIBBASE_BINARY_INCLUDE_DIR}/core"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
FILES_MATCHING PATTERN "*.h" PATTERN "*.inc" PATTERN "*.def"
PATTERN "config.h" EXCLUDE)
|