1-
21set (LOG_COMPRESSED_MODULE "" )
32set (LOG_COMPRESSED_MODULE_CODE_PATH "" )
3+ set (BT_ROOT_PATH $ENV{IDF_PATH} /components/bt)
44set (LOG_COMPRESSED_SRCS_DIR "${CMAKE_BINARY_DIR} /ble_log/.compressed_srcs" )
55
66# default config value for ble mesh module
@@ -17,32 +17,62 @@ set(BLE_HOST_TAGS_PRESERVE "")
1717
1818if (CONFIG_BLE_MESH_COMPRESSED_LOG_ENABLE)
1919 list (APPEND LOG_COMPRESSED_MODULE "BLE_MESH" )
20- if (NOT EXISTS "${CMAKE_BINARY_DIR} /ble_log/include/mesh_log_index.h" )
21- file (WRITE "${CMAKE_BINARY_DIR} /ble_log/include/mesh_log_index.h" "" )
22- endif ()
23- list (APPEND LOG_COMPRESSED_MODULE_CODE_PATH "esp_ble_mesh" )
2420
2521 # update config file
2622 set (BLE_MESH_CODE_PATH "esp_ble_mesh" )
2723 set (BLE_MESH_LOG_INDEX_HEADER "mesh_log_index.h" )
24+ set (BLE_MESH_LOG_SCRIPT_PATH
25+ "${CMAKE_CURRENT_LIST_DIR} /scripts/module_scripts/ble_mesh/make_mesh_log_macro.py" )
2826 # update BLE_MESH_TAGS and BLE_MESH_TAGS_PRESERVE
2927 include (${CMAKE_CURRENT_LIST_DIR} /cmake/ble_mesh_log_tags.cmake)
30-
28+ if (NOT EXISTS "${CMAKE_BINARY_DIR} /ble_log/include/${BLE_MESH_LOG_INDEX_HEADER} " )
29+ file (WRITE "${CMAKE_BINARY_DIR} /ble_log/include/${BLE_MESH_LOG_INDEX_HEADER} " "" )
30+ endif ()
31+ list (APPEND LOG_COMPRESSED_MODULE_CODE_PATH ${BLE_MESH_CODE_PATH} )
3132endif ()
33+
3234if (CONFIG_BLE_HOST_COMPRESSED_LOG_ENABLE AND CONFIG_BT_BLUEDROID_ENABLED)
3335 list (APPEND LOG_COMPRESSED_MODULE "BLE_HOST" )
34- list (APPEND LOG_COMPRESSED_MODULE_CODE_PATH "host/bluedroid/stack" )
35- if (NOT EXISTS "${CMAKE_BINARY_DIR} /ble_log/include/host_log_index.h" )
36- file (WRITE "${CMAKE_BINARY_DIR} /ble_log/include/host_log_index.h" "" )
37- endif ()
3836
37+ # update config file
3938 set (HOST_CODE_PATH "host/bluedroid/stack" )
4039 set (HOST_LOG_INDEX_HEADER "host_log_index.h" )
40+ set (BLE_HOST_LOG_SCRIPT_PATH
41+ "${CMAKE_CURRENT_LIST_DIR} /scripts/module_scripts/bluedroid/make_bluedroid_log_macro.py" )
42+
4143 include (${CMAKE_CURRENT_LIST_DIR} /cmake/ble_host_bluedroid_tags.cmake)
44+ if (NOT EXISTS "${CMAKE_BINARY_DIR} /ble_log/include/${HOST_LOG_INDEX_HEADER} " )
45+ file (WRITE "${CMAKE_BINARY_DIR} /ble_log/include/${HOST_LOG_INDEX_HEADER} " "" )
46+ endif ()
47+ list (APPEND LOG_COMPRESSED_MODULE_CODE_PATH ${HOST_CODE_PATH} )
48+ endif ()
49+
50+ if (BLE_COMPRESSED_LIB_LOG_BUILD)
51+ if (NOT (BLE_COMPRESSED_LIB_NAME AND BLE_COMPRESSED_LIB_CODE_DIR AND BLE_COMPRESSED_LIB_LOG_TAGS))
52+ message (FATAL_ERROR "Invalid settings" )
53+ else ()
54+ message ("Building compressed log for ${BLE_COMPRESSED_LIB_NAME} " )
55+ endif ()
56+ list (APPEND LOG_COMPRESSED_MODULE ${BLE_COMPRESSED_LIB_NAME} )
57+ if (NOT EXISTS "${CMAKE_BINARY_DIR} /ble_log/include/${BLE_COMPRESSED_LIB_LOG_INDEX_HEADER} " )
58+ file (WRITE "${CMAKE_BINARY_DIR} /ble_log/include/${BLE_COMPRESSED_LIB_LOG_INDEX_HEADER} " "" )
59+ endif ()
60+ list (APPEND LOG_COMPRESSED_MODULE_CODE_PATH ${BLE_COMPRESSED_LIB_CODE_DIR} )
61+
62+ string (REPLACE ";" "," BLE_COMPRESSED_LIB_CODE_DIR "${BLE_COMPRESSED_LIB_CODE_DIR} " )
63+ string (REPLACE ";" "," BLE_COMPRESSED_LIB_LOG_TAGS "${BLE_COMPRESSED_LIB_LOG_TAGS} " )
64+ string (REPLACE ";" "," BLE_COMPRESSED_LIB_LOG_TAGS_PRESERVE "${BLE_COMPRESSED_LIB_LOG_TAGS_PRESERVE} " )
65+ else ()
66+ set (BLE_COMPRESSED_LIB_NAME "placeholder" )
4267endif ()
68+
69+
4370if (LOG_COMPRESSED_MODULE)
44- list (APPEND srcs "common/ble_log/extension/log_compression/ble_log_compression.c" )
45- list (APPEND include_dirs "${CMAKE_BINARY_DIR} /ble_log/include" )
71+ # When building the library, ble_log_compression.c and its dependencies are not needed
72+ if (NOT BLE_COMPRESSED_LIB_LOG_BUILD)
73+ list (APPEND srcs "common/ble_log/extension/log_compression/ble_log_compression.c" )
74+ list (APPEND include_dirs "${CMAKE_BINARY_DIR} /ble_log/include" )
75+ endif ()
4676 if (NOT CMAKE_VERSION VERSION_LESS 3.15.0)
4777 set (Python3_FIND_STRATEGY LOCATION )
4878 find_package (Python3 COMPONENTS Interpreter)
@@ -111,19 +141,39 @@ if(LOG_COMPRESSED_MODULE)
111141 "host/nimble/nimble/nimble/host/store/config/src" )
112142 endif ()
113143
114- add_custom_target (ble_log_compression ALL
115- COMMAND ${BLE_PYTHON_EXECUTABLE} ${PYTHON_SCRIPT}
116- compress
117- --compressed_srcs_path "${LOG_COMPRESSED_SRCS_DIR} "
118- --build_path "${CMAKE_BINARY_DIR} "
119- --module "'${LOG_COMPRESSED_MODULE} '"
120- --bt_path "${BT_ROOT_PATH} "
121- --srcs "'${compressed_srcs} '"
122- DEPENDS ${compressed_srcs_with_abs_path} ${PYTHON_SCRIPT}
123- COMMENT "Log compression is being performed, please wait..."
124- WORKING_DIRECTORY ${BT_ROOT_PATH}
125- USES_TERMINAL
126- )
144+ if (BLE_COMPRESSED_LIB_LOG_BUILD)
145+ execute_process (COMMAND ${BLE_PYTHON_EXECUTABLE} ${PYTHON_SCRIPT}
146+ compress
147+ --compressed_srcs_path "${LOG_COMPRESSED_SRCS_DIR} "
148+ --build_path "${CMAKE_BINARY_DIR} "
149+ --module "${LOG_COMPRESSED_MODULE} "
150+ --code_base_path "${CODE_BASE_PATH} "
151+ --srcs "${compressed_srcs} "
152+ RESULT_VARIABLE result
153+ OUTPUT_VARIABLE out
154+ ERROR_VARIABLE err)
155+ if (NOT ${result} EQUAL 0)
156+ message (WARNING "${err} " )
157+ message (WARNING "Exit this log compression due to failure of compression" )
158+ set (LOG_COMPRESS_INCLUDE_DIRS ${include_dirs} PARENT_SCOPE)
159+ set (LOG_COMPRESSION_TARGET "" PARENT_SCOPE)
160+ return ()
161+ endif ()
162+ else ()
163+ add_custom_target (ble_log_compression ALL
164+ COMMAND ${BLE_PYTHON_EXECUTABLE} ${PYTHON_SCRIPT}
165+ compress
166+ --compressed_srcs_path "${LOG_COMPRESSED_SRCS_DIR} "
167+ --build_path "${CMAKE_BINARY_DIR} "
168+ --module "'${LOG_COMPRESSED_MODULE} '"
169+ --code_base_path "${CODE_BASE_PATH} "
170+ --srcs "'${compressed_srcs} '"
171+ DEPENDS ${compressed_srcs_with_abs_path} ${PYTHON_SCRIPT}
172+ COMMENT "Log compression is being performed, please wait..."
173+ WORKING_DIRECTORY ${BT_ROOT_PATH}
174+ USES_TERMINAL
175+ )
176+ endif ()
127177
128178 function (add_flags_if_in_list file file_list compile_flags )
129179 set (PROCESSED OFF PARENT_SCOPE)
@@ -190,7 +240,10 @@ if(LOG_COMPRESSED_MODULE)
190240 set (LOG_COMPRESSION_TARGET ble_log_compression PARENT_SCOPE)
191241 # set(LOG_COMPRESSION_TARGET "" PARENT_SCOPE)
192242 set (LOG_COMPRESS_SRCS "${compressed_srcs_with_abs_path} ;${uncompressed_srcs} " PARENT_SCOPE)
193- list (APPEND include_dirs "common/ble_log/extension/log_compression/include" )
243+ if (NOT BLE_COMPRESSED_LIB_LOG_BUILD)
244+ list (APPEND include_dirs "common/ble_log/extension/log_compression/include" )
245+ endif ()
246+ list (APPEND include_dirs "${CMAKE_BINARY_DIR} /ble_log/include" )
194247 set (LOG_COMPRESS_INCLUDE_DIRS ${include_dirs} PARENT_SCOPE)
195248 else ()
196249 set (LOG_COMPRESSION_TARGET "" PARENT_SCOPE)
0 commit comments