-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
88 lines (74 loc) · 2.18 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
#
# CMakeLists.txt
#
# Copyright (C) 2022 Sebastian Reimers
#
##############################################################################
#
# Project and Versioning
#
project(sl LANGUAGES C)
find_package(LMDB REQUIRED)
##############################################################################
#
# Source/Header section
#
set(SRCS
src/account.c
src/audio.c
src/conf.c
src/db.c
src/http/client.c
src/http/server.c
src/main.c
src/meters.c
src/mix.c
src/tracks.c
src/ws.c
)
set(HEADERS
include/studiolink.h
)
##############################################################################
#
# Assets
#
find_program(RESOURCE_COMPILER xxd)
set(COMPILED_RESOURCES
index.html
index.js
vendor.js
index.css
roboto-mono-latin-400.woff2
roboto-mono-latin-500.woff2
roboto-mono-latin-600.woff2
roboto-mono-latin-700.woff2
logo_standalone.svg
logo_solo.svg
)
FOREACH(INPUT_FILE ${COMPILED_RESOURCES})
SET(OUTPUT_FILE ${INPUT_FILE}.h)
ADD_CUSTOM_COMMAND(
OUTPUT ${OUTPUT_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../webui
COMMAND ${RESOURCE_COMPILER} -i dist/${INPUT_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_FILE}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../webui/dist/${INPUT_FILE}
COMMENT "Compiling ${INPUT_FILE} to binary")
LIST(APPEND COMPILED_RESOURCES ${OUTPUT_FILE})
ENDFOREACH()
SET(OUTPUT_FILE cacert.h)
ADD_CUSTOM_COMMAND(
OUTPUT ${OUTPUT_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../third_party
COMMAND ${RESOURCE_COMPILER} -i cacert.pem ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_FILE}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/cacert.pem
COMMENT "Compiling cacert.pem to binary")
LIST(APPEND COMPILED_RESOURCES ${OUTPUT_FILE})
##############################################################################
#
# Main target object
#
add_library(${PROJECT_NAME} STATIC ${SRCS} ${HEADERS} ${COMPILED_RESOURCES})
target_link_libraries(${PROJECT_NAME} PUBLIC baresip re ${LMDB_LIBRARIES} ${OPENH264_LIBRARIES} stdc++)
target_include_directories(${PROJECT_NAME} PUBLIC include PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_compile_definitions(${PROJECT_NAME} PRIVATE ${RE_DEFINITIONS})