cmake_minimum_required(VERSION 3.6) project(chip_main) set(chip_dir "${ameba_matter_root}") set(chip_dir_output "${matter_output_path}/chip") set(dir "${sdk_root}/component/common/api") set(chip_main chip_main) set(list_chip_main_sources chip_main_sources) set(pigweed_dir "${chip_dir}/third_party/pigweed/repo") include(${prj_root}/GCC-RELEASE/project_hp/asdk/includepath.cmake) include(${pigweed_dir}/pw_build/pigweed.cmake) include(${pigweed_dir}/pw_protobuf_compiler/proto.cmake) include(${pigweed_dir}/pw_assert/backend.cmake) include(${pigweed_dir}/pw_log/backend.cmake) include(${pigweed_dir}/pw_sys_io/backend.cmake) include(${pigweed_dir}/pw_trace/backend.cmake) set(dir_pw_third_party_nanopb "${chip_dir}/third_party/nanopb/repo" CACHE STRING "" FORCE) pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert.check pw_assert_log.check_backend) pw_set_backend(pw_assert.assert pw_assert.assert_compatibility_backend) pw_set_backend(pw_sys_io pw_sys_io.ameba) add_subdirectory(${chip_dir}/third_party/pigweed/repo ${chip_dir}/examples/pigweed-app/ameba/out/pigweed) add_subdirectory(${chip_dir}/third_party/nanopb/repo ${chip_dir}/examples/pigweed-app/ameba/out/nanopb) add_subdirectory(${chip_dir}/examples/platform/ameba/pw_sys_io ${chip_dir}/examples/pigweed-app/ameba/out/pw_sys_io) list( APPEND ${list_chip_main_sources} #chip app ${chip_dir}/examples/pigweed-app/ameba/main/main.cpp ${chip_dir}/examples/platform/ameba/PigweedLogger.cpp ${chip_dir}/examples/common/pigweed/RpcService.cpp ${chip_dir}/examples/common/pigweed/ameba/PigweedLoggerMutex.cpp ) add_library( ${chip_main} STATIC ${chip_main_sources} ) target_include_directories( ${chip_main} PUBLIC ${inc_path} ${chip_dir}/examples/platform/ameba ${chip_dir}/examples/platform/ameba/pw_sys_io/public ${chip_dir}/examples/common ${chip_dir}/examples/common/pigweed ${chip_dir}/examples/common/pigweed/ameba ${chip_dir}/src ${chip_dir}/src/lib/support ${pigweed_dir}/pw_rpc/nanopb/public ${chip_dir_output}/gen/include ${chip_dir}/third_party/nlassert/repo/include/ ) target_link_libraries(${chip_main} PUBLIC pw_checksum pw_hdlc pw_log pw_rpc.nanopb.echo_service pw_rpc.server pw_sys_io PwRpc ) link_directories( ${chip_dir_output}/lib ) list( APPEND chip_main_flags -DINET_CONFIG_ENABLE_IPV4=0 -DCHIP_PROJECT=1 -DCHIP_DEVICE_LAYER_TARGET=Ameba -DCHIP_HAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE= -DCONFIG_ENABLE_PW_RPC=1 ) if (matter_enable_persistentstorage_audit) list( APPEND chip_main_flags -DCHIP_SUPPORT_ENABLE_STORAGE_API_AUDIT ) endif (matter_enable_persistentstorage_audit) list( APPEND chip_main_cpp_flags -Wno-unused-parameter -std=c++17 -fno-rtti -fno-use-cxa-atexit ) target_compile_definitions(${chip_main} PRIVATE ${chip_main_flags} ) target_compile_options(${chip_main} PRIVATE ${chip_main_cpp_flags}) # move static library post build command add_custom_command( TARGET ${chip_main} POST_BUILD COMMAND cp lib${chip_main}.a ${CMAKE_CURRENT_SOURCE_DIR}/lib/application )