-
Notifications
You must be signed in to change notification settings - Fork 141
/
Copy pathCMakeLists.txt
35 lines (27 loc) · 1.33 KB
/
CMakeLists.txt
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
add_library(libco STATIC libco.c)
string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
if(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)")
target_sources(libco PRIVATE x86.c)
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x64|x86_64|amd64|e2k)")
target_sources(libco PRIVATE amd64.c)
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64(le)?")
target_sources(libco PRIVATE ppc64v2.c)
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(riscv)")
target_sources(libco PRIVATE riscv.c)
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64)")
target_sources(libco PRIVATE aarch64.c)
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(arm)")
target_sources(libco PRIVATE arm.c)
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(ppc)")
target_sources(libco PRIVATE ppc.c)
elseif(OS_WINDOWS)
target_sources(libco PRIVATE fiber.c)
else()
target_sources(libco PRIVATE sjlj.c)
endif()
target_sources(libco PRIVATE libco.h settings.h)
get_target_property(libco_SOURCES libco SOURCES)
target_include_directories(libco INTERFACE ..)
target_compile_options(libco PRIVATE $<$<CXX_COMPILER_ID:Clang,AppleClang>:-Wno-strict-prototypes>)
set_source_files_properties(libco ${libco_SOURCES} PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties(libco libco.c PROPERTIES HEADER_FILE_ONLY FALSE)