1if(NOT (TARGET libc.src.__support.threads.mutex))
2  # Not all platforms have a mutex implementation. If mutex is unvailable,
3  # we just skip everything about files.
4  return()
5endif()
6
7add_object_library(
8  file
9  SRCS
10    file.cpp
11  HDRS
12    file.h
13  DEPENDS
14    libc.src.__support.threads.mutex
15    libc.include.errno
16    libc.src.errno.errno
17)
18
19add_object_library(
20  dir
21  SRCS
22    dir.cpp
23  HDRS
24    dir.h
25  DEPENDS
26    libc.src.__support.CPP.array_ref
27    libc.src.__support.threads.mutex
28)
29
30if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS}_file.cpp)
31  add_object_library(
32    platform_file
33    SRCS
34      ${LIBC_TARGET_OS}_file.cpp
35    DEPENDS
36      .file
37      libc.include.errno
38      libc.include.fcntl
39      libc.include.stdio
40      libc.include.sys_syscall
41      libc.src.__support.OSUtil.osutil
42      libc.src.errno.errno
43  )
44endif()
45
46if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS}_dir.cpp)
47  add_object_library(
48    platform_dir
49    SRCS
50      ${LIBC_TARGET_OS}_dir.cpp
51    DEPENDS
52      .dir
53      libc.include.errno
54      libc.include.fcntl
55      libc.include.sys_syscall
56      libc.src.__support.OSUtil.osutil
57      libc.src.errno.errno
58  )
59endif()
60