blob: a20aac7cd7793628bcd050824e3487b3ae550580 (
plain)
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
|
# Add the directory to the list of states.
# The directories contents will be compiled into a shared object file and linked
# to the main daw library
macro(daw_add_state STATEDIR)
set_property(TARGET daw
APPEND PROPERTY INCLUDE_DIRECTORIES
${CMAKE_SOURCE_DIR}/state_${STATEDIR}/include)
file(APPEND ${CMAKE_BINARY_DIR}/include/state_type_list.h
"State(${STATEDIR})\n")
file(APPEND ${CMAKE_BINARY_DIR}/include/include_states.h
"#include <states/${STATEDIR}.h>\n")
file(GLOB STATE_SOURCES
LIST_DIRECTORIES false
state_${STATEDIR}/src/*.c
)
# TODO: When state reloading is implemented properly, add MODULE library
# option In general, this should only be available when debugging.
if(BUILD_SHARED_LIBS)
if(DAW_BUILD_DEBUG AND DAW_BUILD_HOTRELOAD)
add_library(${STATEDIR} MODULE ${STATE_SOURCES})
else()
add_library(${STATEDIR} SHARED ${STATE_SOURCES})
endif()
else()
add_library(${STATEDIR} OBJECT ${STATE_SOURCES})
endif()
target_include_directories(${STATEDIR} PUBLIC
state_${STATEDIR}/include
${daw_SOURCE_DIR}/include
${CMAKE_BINARY_DIR}/include
include
)
set_property(TARGET daw
APPEND PROPERTY LINK_LIBRARIES
${STATEDIR})
list(APPEND STATE_LIST ${STATEDIR})
endmacro()
|