From d17bc0fc4bb057378fadf3f9feb0de1df60d611a Mon Sep 17 00:00:00 2001 From: Jakob Stendahl Date: Mon, 11 Jan 2021 13:41:18 +0100 Subject: :sparkles: Add working bluetooth receiver --- utils/cmake/buildtools/codal.cmake | 85 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 utils/cmake/buildtools/codal.cmake (limited to 'utils/cmake/buildtools/codal.cmake') diff --git a/utils/cmake/buildtools/codal.cmake b/utils/cmake/buildtools/codal.cmake new file mode 100644 index 0000000..ea8b23c --- /dev/null +++ b/utils/cmake/buildtools/codal.cmake @@ -0,0 +1,85 @@ +add_executable( + ${device.device} + ${SOURCE_FILES} +) + +if("${INCLUDE_DIRS}" STRGREATER "") + target_include_directories(${device.device} PUBLIC "${INCLUDE_DIRS}") +endif() + +set_target_properties(${device.device} PROPERTIES SUFFIX "" ENABLE_EXPORTS ON) + +# link the executable with supporting libraries. +target_link_libraries( + ${device.device} + ${CODAL_DEPS} +) + +# import toolchain bin generation command +if(${device.generate_bin}) + include(${TOOLCHAIN_FOLDER}/bin-generator.cmake) +endif() + +# import toolchain hex generation command +if(${device.generate_hex}) + include(${TOOLCHAIN_FOLDER}/hex-generator.cmake) +endif() + +# post process command hook, depends on the hex file generated by the build system. +if("${device.post_process.command}" STRGREATER "" OR "${device.post_process}" STRGREATER "") + + if("${device.post_process}" STRGREATER "") + set(POST_PROCESS_COMMAND ${device.post_process}) + else() + set(POST_PROCESS_COMMAND ${device.post_process.command}) + endif() + + set(POST_PROCESS_DEPENDS "${device.post_process.depends}") + + # replace specific strings in the command, this gives users flexibility, they don't have to manually specify the location of files + string(REPLACE "" ${PROJECT_SOURCE_DIR}/${CODAL_APP_OUTPUT_DIR}/${device.device}.hex CODAL_POSTPROCESS_COMMAND ${POST_PROCESS_COMMAND}) + string(REPLACE "" ${PROJECT_SOURCE_DIR}/${CODAL_APP_OUTPUT_DIR} CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + string(REPLACE "" ${device.device} CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + + string(REPLACE "" ${PROJECT_SOURCE_DIR}/${CODAL_APP_OUTPUT_DIR}/${device.device}.bin CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + string(REPLACE "" ${PROJECT_SOURCE_DIR}/${CODAL_APP_OUTPUT_DIR} CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + string(REPLACE "" ${device.device}.bin CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + + string(REPLACE "" ${PROJECT_SOURCE_DIR}/build/${device.device} CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + string(REPLACE "" ${PROJECT_SOURCE_DIR}/${CODAL_APP_OUTPUT_DIR} CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + string(REPLACE "" ${device.device} CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + + string(REPLACE "" ${PROJECT_SOURCE_DIR}/${CODAL_APP_OUTPUT_DIR} CODAL_POSTPROCESS_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + + #convert to a command + separate_arguments(FINAL_COMMAND UNIX_COMMAND ${CODAL_POSTPROCESS_COMMAND}) + + # execute + if(POST_PROCESS_DEPENDS STREQUAL "ELF") + add_custom_command( + TARGET ${device.device} + COMMAND ${FINAL_COMMAND} + DEPENDS ${device.device} + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + COMMENT "Executing post process command" + ) + elseif(POST_PROCESS_DEPENDS STREQUAL "HEX") + add_custom_command( + TARGET ${device.device}_hex + COMMAND ${FINAL_COMMAND} + DEPENDS ${device.device} + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + COMMENT "Executing post process command" + ) + else() + #by default post process should depend on hex + add_custom_command( + TARGET ${device.device}_bin + COMMAND ${FINAL_COMMAND} + DEPENDS ${device.device} + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + COMMENT "Executing post process command" + ) + endif() + +endif() \ No newline at end of file -- cgit v1.2.3