1set(SOURCES
2    fwk_platform.c
3    fwk_platform_ble.c
4    fwk_platform_lowpower.c
5    fwk_platform_sensors.c
6    fwk_platform_hdlc.c
7    fwk_platform_ot.c
8    fwk_platform_coex.c
9    fwk_platform_extflash.c
10    fwk_platform_ota.c
11    configs/fwk_lfs_config.c
12)
13
14if(CONNFWK_IGNORE_PLATFORM)
15    list(REMOVE_ITEM SOURCES fwk_platform.c)
16endif()
17
18if(CONNFWK_IGNORE_PLATFORM_BLE)
19    list(REMOVE_ITEM SOURCES fwk_platform_ble.c)
20endif()
21
22if(CONNFWK_IGNORE_PLATFORM_LOWPOWER)
23    list(REMOVE_ITEM SOURCES fwk_platform_lowpower.c)
24endif()
25
26if(CONNFWK_IGNORE_PLATFORM_SENSORS)
27    list(REMOVE_ITEM SOURCES fwk_platform_sensors.c)
28endif()
29
30if(CONNFWK_IGNORE_PLATFORM_HDLC)
31    list(REMOVE_ITEM SOURCES fwk_platform_hdlc.c)
32endif()
33
34if(CONNFWK_IGNORE_PLATFORM_OT)
35    list(REMOVE_ITEM SOURCES fwk_platform_ot.c)
36endif()
37
38if(CONNFWK_IGNORE_PLATFORM_COEX)
39    list(REMOVE_ITEM SOURCES fwk_platform_coex.c)
40endif()
41
42if(CONNFWK_IGNORE_PLATFORM_EXTFLASH)
43    list(REMOVE_ITEM SOURCES fwk_platform_extflash.c)
44endif()
45
46if(CONNFWK_IGNORE_PLATFORM_OTA)
47    list(REMOVE_ITEM SOURCES fwk_platform_ota.c)
48endif()
49
50add_library(${CONNFWK_PLATFORM_LIB} ${SOURCES})
51
52# Making those includes PUBLIC will share them to the other targets linking this lib
53target_include_directories(${CONNFWK_PLATFORM_LIB}
54    PUBLIC
55        ${CMAKE_CURRENT_SOURCE_DIR}/../include
56        ${CMAKE_CURRENT_SOURCE_DIR}
57        configs
58)
59
60# Get common configs from the connfwk-config interface
61target_link_libraries(${CONNFWK_PLATFORM_LIB}
62    PRIVATE
63        connfwk-config
64        connfwk-FunctionLib
65    PUBLIC
66        ${CONNFWK_MCUX_SDK_LIB}
67)
68
69if(MCUBOOT_MONOLITHIC_OTA)
70    target_compile_definitions(${CONNFWK_PLATFORM_LIB}
71        PUBLIC
72            gPlatformMonolithicApp_d=1
73    )
74endif()
75
76if(PROJECT_IS_TOP_LEVEL)
77    connfwk_target_set_linker_script(${CONNFWK_PLATFORM_LIB} PUBLIC ${CONNFWK_PLATFORM_LINKER_FILE})
78    # Rebuild executables if the linker script is changed
79    set_target_properties(connfwk-config PROPERTIES INTERFACE_LINK_DEPENDS ${CONNFWK_PLATFORM_LINKER_FILE})
80    connfwk_target_generate_map_file(${CONNFWK_PLATFORM_LIB} PUBLIC ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<TARGET_PROPERTY:NAME>.map)
81endif()
82