-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCMakeLists.txt
132 lines (117 loc) · 2.3 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
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
# SPDX-FileCopyrightText: Michał Kępień <[email protected]>
#
# SPDX-License-Identifier: GPL-2.0-only
cmake_minimum_required(VERSION 3.16)
include(CheckTypeSize)
project(
yafut
LANGUAGES C
)
check_type_size(loff_t LOFF_T)
if(NOT HAVE_LOFF_T)
add_definitions(-DY_LOFF_T=off_t)
endif()
execute_process(
COMMAND sh handle_common.sh clean
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/yaffs2/direct/
)
execute_process(
COMMAND sh handle_common.sh copy
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/yaffs2/direct/
)
add_library(
yaffs2
OBJECT
lib/yaffs2/direct/yaffs_allocator.c
lib/yaffs2/direct/yaffs_attribs.c
lib/yaffs2/direct/yaffs_bitmap.c
lib/yaffs2/direct/yaffs_cache.c
lib/yaffs2/direct/yaffs_checkptrw.c
lib/yaffs2/direct/yaffs_ecc.c
lib/yaffs2/direct/yaffs_endian.c
lib/yaffs2/direct/yaffs_error.c
lib/yaffs2/direct/yaffsfs.c
lib/yaffs2/direct/yaffs_guts.c
lib/yaffs2/direct/yaffs_hweight.c
lib/yaffs2/direct/yaffs_nameval.c
lib/yaffs2/direct/yaffs_nand.c
lib/yaffs2/direct/yaffs_packedtags1.c
lib/yaffs2/direct/yaffs_packedtags2.c
lib/yaffs2/direct/yaffs_summary.c
lib/yaffs2/direct/yaffs_tagscompat.c
lib/yaffs2/direct/yaffs_tagsmarshall.c
lib/yaffs2/direct/yaffs_verify.c
lib/yaffs2/direct/yaffs_yaffs1.c
lib/yaffs2/direct/yaffs_yaffs2.c
)
target_compile_definitions(
yaffs2
PUBLIC
CONFIG_YAFFS_DEFINES_TYPES
CONFIG_YAFFS_DIRECT
CONFIG_YAFFS_PROVIDE_DEFS
_GNU_SOURCE
)
target_include_directories(
yaffs2
INTERFACE
${PROJECT_SOURCE_DIR}/lib/yaffs2/direct
)
add_executable(
yafut
src/copy.c
src/file.c
src/file_driver_posix.c
src/file_driver_yaffs.c
src/layout.c
src/log.c
src/main.c
src/object.c
src/options.c
src/printer.c
src/printer_driver_text.c
src/storage.c
src/storage_driver_image.c
src/tree.c
src/util.c
src/yaffs_glue.c
src/ydriver.c
src/ydriver_posix.c
)
if(LINUX)
target_sources(
yafut
PRIVATE
src/ioctl.c
src/storage_driver_nand.c
src/storage_driver_nor.c
src/storage_platform_linux.c
src/ydriver_ioctl.c
)
else()
target_sources(
yafut
PRIVATE
src/storage_platform_generic.c
)
endif()
set_target_properties(
yafut
PROPERTIES
C_STANDARD 99
C_STANDARD_REQUIRED ON
)
if (${ENABLE_ALL_WARNINGS})
target_compile_options(
yafut
PRIVATE
-Wall
-Werror
-Wextra
)
endif()
target_link_libraries(
yafut
yaffs2
)
install(TARGETS yafut)