-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
136 lines (116 loc) · 3.8 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
133
134
cmake_minimum_required(VERSION 3.17)
project(NNToolkitCore C CXX)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
set(SOURCE_DIR "" CACHE PATH
"Directory that contains the nntoolkitcore project"
)
option(USE_SIGNAL_API "Use signal API" ON)
if(NOT SOURCE_DIR)
get_filename_component(SOURCE_DIR
"${CMAKE_CURRENT_LIST_DIR}"
ABSOLUTE
)
endif()
include_directories(
BEFORE
${SOURCE_DIR}
)
set (PUBLIC_HEADERS
nntoolkitcore/layers/time_distributed_dense.h
nntoolkitcore/layers/bidirectional.h
nntoolkitcore/layers/gru.h
nntoolkitcore/train/optimizers.h
nntoolkitcore/layers/dense.h
nntoolkitcore/layers/rnn.h
nntoolkitcore/train/loss.h
nntoolkitcore/layers/lstm.h
nntoolkitcore/layers/activation.h
nntoolkitcore/layers/activation_default.h
nntoolkitcore/layers/batch_norm.h
nntoolkitcore/layers/conv_1d.h
nntoolkitcore/core/debug.h
)
set(PRIVATE_HEADERS
nntoolkitcore/core/types.h
nntoolkitcore/core/ops.h
nntoolkitcore/core/loop.h
nntoolkitcore/core/memory.h
nntoolkitcore/layers/shared.h)
set(SOURCES
nntoolkitcore/layers/activation.c
nntoolkitcore/layers/activation_default.c
nntoolkitcore/layers/batch_norm.c
nntoolkitcore/layers/conv_1d.c
nntoolkitcore/core/debug.c
nntoolkitcore/layers/dense.c
nntoolkitcore/train/loss.c
nntoolkitcore/layers/lstm.c
nntoolkitcore/layers/rnn.c
nntoolkitcore/layers/time_distributed_dense.c
nntoolkitcore/train/optimizers.c
nntoolkitcore/layers/gru.c
nntoolkitcore/layers/recurrent.h
nntoolkitcore/layers/private/recurrent_private.c
nntoolkitcore/layers/private/recurrent_private.h
nntoolkitcore/core/memory.c
nntoolkitcore/layers/bidirectional.c
nntoolkitcore/layers/private/weights_private.c
nntoolkitcore/layers/private/weights_private.h
nntoolkitcore/layers/recurrent.c
)
if(APPLE)
list(APPEND SOURCES nntoolkitcore/core/apple_ops.c)
else()
list(APPEND SOURCES nntoolkitcore/core/default_ops.cc)
endif()
if (USE_SIGNAL_API)
list(APPEND SOURCES
nntoolkitcore/signal/mel_filterbank.c
nntoolkitcore/signal/dft.c
nntoolkitcore/signal/dft.h
nntoolkitcore/signal/spectrogram.c
nntoolkitcore/signal/log_mel_spectrogram.c
nntoolkitcore/signal/window.c
)
list(APPEND PUBLIC_HEADERS
nntoolkitcore/signal/mel_filterbank.h
nntoolkitcore/signal/window.h
nntoolkitcore/signal/spectrogram.h
nntoolkitcore/signal/log_mel_spectrogram.h
)
if(NOT APPLE)
list(APPEND SOURCES
third_party/kissfft/kiss_fft.h
third_party/kissfft/kiss_fft.c
third_party/kissfft/_kiss_fft_guts.h
)
endif()
endif ()
add_library(${PROJECT_NAME} ${SOURCES} ${PUBLIC_HEADERS} ${PRIVATE_HEADERS})
if(APPLE)
target_compile_options(${PROJECT_NAME}
PUBLIC
"-fembed-bitcode"
)
target_link_libraries(${PROJECT_NAME} PRIVATE "-framework Accelerate")
set_target_properties (${PROJECT_NAME} PROPERTIES
FRAMEWORK TRUE
INSTALL_NAME_DIR "@rpath"
PRIVATE_HEADER "${PRIVATE_HEADERS}" # Needed for set_target_properties to work for framework
PUBLIC_HEADER "${PUBLIC_HEADERS}" # Needed for set_target_properties to work for framework
MACOSX_FRAMEWORK_IDENTIFIER "studio.techpro.${PROJECT_NAME}" #CFBundleIdentifier
MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${PROJECT_VERSION}" #CFBundleShortVersionString
)
# Install
install (TARGETS ${PROJECT_NAME}
FRAMEWORK DESTINATION .# relative to CMAKE_INSTALL_PREFIX
PRIVATE_HEADER
PUBLIC_HEADER
)
else()
set_target_properties (${PROJECT_NAME} PROPERTIES
PUBLIC_HEADER "${PUBLIC_HEADERS}"
)
target_include_directories(${PROJECT_NAME} PUBLIC ${PUBLIC_HEADERS})
endif()