-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
156 lines (143 loc) · 3.97 KB
/
CMakeLists.txt
File metadata and controls
156 lines (143 loc) · 3.97 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
cmake_minimum_required(VERSION 3.20)
project(
caprese-libc
VERSION 0.0.1
HOMEPAGE_URL https://github.com/caprese-project/libc
LANGUAGES CXX C ASM
)
set(
LIBC_INCLUDE_DIR
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/cxx>
$<INSTALL_INTERFACE:include>
)
add_subdirectory(src/assert)
add_subdirectory(src/complex)
add_subdirectory(src/ctype)
add_subdirectory(src/errno)
add_subdirectory(src/fenv)
add_subdirectory(src/float)
add_subdirectory(src/inttypes)
add_subdirectory(src/iso646)
add_subdirectory(src/limits)
add_subdirectory(src/locale)
add_subdirectory(src/math)
add_subdirectory(src/setjmp)
add_subdirectory(src/signal)
add_subdirectory(src/stdarg)
add_subdirectory(src/stdatomic)
add_subdirectory(src/stdbool)
add_subdirectory(src/stddef)
add_subdirectory(src/stdint)
add_subdirectory(src/stdio)
add_subdirectory(src/stdlib)
add_subdirectory(src/stdnoreturn)
add_subdirectory(src/string)
add_subdirectory(src/tgmath)
add_subdirectory(src/threads)
add_subdirectory(src/time)
add_subdirectory(src/uchar)
add_subdirectory(src/wchar)
add_subdirectory(src/wctype)
add_subdirectory(src/cxx/__cxxabi)
add_subdirectory(src/cxx/bit)
add_subdirectory(src/cxx/exception)
add_subdirectory(src/cxx/ios)
add_subdirectory(src/cxx/iostream)
add_subdirectory(src/cxx/locale)
add_subdirectory(src/cxx/new)
add_subdirectory(src/cxx/optional)
add_subdirectory(src/cxx/stdexcept)
add_subdirectory(src/cxx/string)
add_subdirectory(src/cxx/typeinfo)
add_library(caprese_libc_freestanding INTERFACE)
target_link_libraries(
caprese_libc_freestanding INTERFACE
caprese_libc_float
caprese_libc_iso646
caprese_libc_limits
caprese_libc_stdarg
caprese_libc_stdbool
caprese_libc_stddef
caprese_libc_stdint
)
add_library(caprese_libc_hosted INTERFACE)
target_sources(
caprese_libc_hosted INTERFACE
$<TARGET_OBJECTS:caprese_libc_assert>
$<TARGET_OBJECTS:caprese_libc_complex>
$<TARGET_OBJECTS:caprese_libc_ctype>
$<TARGET_OBJECTS:caprese_libc_errno>
$<TARGET_OBJECTS:caprese_libc_fenv>
$<TARGET_OBJECTS:caprese_libc_inttypes>
$<TARGET_OBJECTS:caprese_libc_locale>
$<TARGET_OBJECTS:caprese_libc_math>
$<TARGET_OBJECTS:caprese_libc_setjmp>
$<TARGET_OBJECTS:caprese_libc_signal>
$<TARGET_OBJECTS:caprese_libc_stdio>
$<TARGET_OBJECTS:caprese_libc_stdlib>
$<TARGET_OBJECTS:caprese_libc_string>
$<TARGET_OBJECTS:caprese_libc_threads>
$<TARGET_OBJECTS:caprese_libc_time>
)
target_link_libraries(
caprese_libc_hosted INTERFACE
caprese_libc_float
caprese_libc_iso646
caprese_libc_limits
caprese_libc_stdarg
caprese_libc_stdatomic
caprese_libc_stdbool
caprese_libc_stddef
caprese_libc_stdint
caprese_libc_stdnoreturn
caprese_libc_tgmath
caprese_libc_uchar
caprese_libc_wchar
caprese_libc_wctype
)
add_library(caprese_libc INTERFACE)
target_link_libraries(
caprese_libc INTERFACE
caprese_libc_freestanding
caprese_libc_hosted
)
add_library(caprese_libcxx_freestanding INTERFACE)
target_link_libraries(
caprese_libcxx_freestanding INTERFACE
$<TARGET_OBJECTS:caprese_libcxx_cxxabi>
$<TARGET_OBJECTS:caprese_libcxx_bit>
$<TARGET_OBJECTS:caprese_libcxx_exception>
$<TARGET_OBJECTS:caprese_libcxx_new>
$<TARGET_OBJECTS:caprese_libcxx_typeinfo>
)
add_library(caprese_libcxx_hosted INTERFACE)
target_sources(
caprese_libcxx_hosted INTERFACE
$<TARGET_OBJECTS:caprese_libcxx_ios>
$<TARGET_OBJECTS:caprese_libcxx_iostream>
$<TARGET_OBJECTS:caprese_libcxx_locale>
$<TARGET_OBJECTS:caprese_libcxx_optional>
$<TARGET_OBJECTS:caprese_libcxx_stdexcept>
$<TARGET_OBJECTS:caprese_libcxx_string>
)
target_link_libraries(
caprese_libcxx_hosted INTERFACE
)
add_library(caprese_libcxx INTERFACE)
target_link_libraries(
caprese_libcxx INTERFACE
caprese_libcxx_freestanding
caprese_libcxx_hosted
)
enable_testing()
install(
TARGETS caprese_libc caprese_libcxx
EXPORT libc-config
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
)
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
DESTINATION include
)