# Generated by gn_to_cmake.py.
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
cmake_policy(VERSION 3.7)
project(MatterAndroid)

file(WRITE "out/empty.cpp")


#//:base_targetname
set("target" "base_targetname")
set("${target}__cxx_srcs" "out/empty.cpp")
add_custom_target("${target}" SOURCES ${${target}__cxx_srcs})


#//root:targetname
set("target" "root_targetname")
set("${target}__cxx_srcs" "out/empty.cpp")
add_custom_target("${target}" SOURCES ${${target}__cxx_srcs})


#//root:toolchain_targetname(//test_toolchain/python_toolchain:python)
set("target" "root_toolchain_targetname--____test_toolchain__python_toolchain__python")
set("${target}__cxx_srcs" "out/empty.cpp")
add_custom_target("${target}" SOURCES ${${target}__cxx_srcs})


#//:group_test
set("target" "group_test")
set("${target}__cxx_srcs" "src_1.cxx")
set("${target}__c_srcs" "src_2.c")
set("${target}__asm_srcs" "src_3.asm")
set("${target}__input_srcs" "input_1.c")
list(APPEND "${target}__other_srcs"
  "src_4.h"
  "src_5.hpp"
  "src_6.others")
add_custom_target("${target}" SOURCES ${${target}__cxx_srcs} ${${target}__c_srcs} ${${target}__asm_srcs} ${${target}__input_srcs} ${${target}__other_srcs})
add_dependencies("${target}"
  "root_dep_action"
  "root_dep_static_lib")


#//:executable_test
set("target" "executable_test")
set("${target}__cxx_srcs" "//TEST_ROOT_PATH/src/lib/shell/tests/TestStreamerStdioDriver.cpp")
add_executable("${target}" ${${target}__cxx_srcs})
set_property(TARGET "${target}" APPEND PROPERTY INCLUDE_DIRECTORIES
  "//TEST_ROOT_PATH/src/include/"
  "//TEST_ROOT_PATH/src/")
set_target_properties("${target}" PROPERTIES COMPILE_DEFINITIONS "CHIP_HAVE_CONFIG_H=1;")
set_target_properties("${target}" PROPERTIES COMPILE_FLAGS "-O0 -std=gnu++14 -fno-rtti ")
set_target_properties("${target}" PROPERTIES LINK_FLAGS "-O0 ")
add_dependencies("${target}"
  "root_dep_action")
find_library("library__log" "log")
target_link_libraries("${target}"
  "root_dep_static_lib"
  "${library__log}")


#//root:shared_library_test
set("target" "root_shared_library_test")
set("${target}__cxx_srcs" "//TEST_ROOT_PATH/out/android_arm64/gen/TestASN1.driver.cpp")
add_library("${target}" SHARED ${${target}__cxx_srcs})
set_property(TARGET "${target}" APPEND PROPERTY INCLUDE_DIRECTORIES
  "//TEST_ROOT_PATH/src/include/"
  "//TEST_ROOT_PATH/src/"
  "//TEST_ROOT_PATH/out/android_arm64/gen/include/"
  "//TEST_ROOT_PATH/src/lib/"
  "//TEST_ROOT_PATH/config/standalone/"
  "//TEST_ROOT_PATH/third_party/nlassert/repo/include/"
  "//TEST_ROOT_PATH/third_party/nlio/repo/include/"
  "//TEST_ROOT_PATH/third_party/nlfaultinjection/include/"
  "//TEST_ROOT_PATH/third_party/nlunit-test/repo/src/")
set_target_properties("${target}" PROPERTIES COMPILE_DEFINITIONS "CHIP_HAVE_CONFIG_H=1;")
set_target_properties("${target}" PROPERTIES COMPILE_FLAGS "-O0 -std=gnu++14 -fno-rtti ")
set_target_properties("${target}" PROPERTIES LINK_FLAGS "-O0 ")
add_dependencies("${target}"
  "root_dep_action")
find_library("library__log" "log")
target_link_libraries("${target}"
  "root_dep_static_lib"
  "${library__log}")


#//root:static_library_test
set("target" "root_static_library_test")
set("${target}__cxx_srcs" "//TEST_ROOT_PATH/src/lib/shell/tests/TestStreamerStdio.cpp")
set("${target}__other_srcs" "//TEST_ROOT_PATH/src/lib/shell/tests/TestStreamerStdio.h")
add_library("${target}" STATIC ${${target}__cxx_srcs} ${${target}__other_srcs})
set_source_files_properties(${${target}__other_srcs} PROPERTIES HEADER_FILE_ONLY "True")
set_property(TARGET "${target}" PROPERTY OUTPUT_NAME "libTestShell")
set_property(TARGET "${target}" PROPERTY PREFIX "")
set_property(TARGET "${target}" APPEND PROPERTY INCLUDE_DIRECTORIES
  "//TEST_ROOT_PATH/src/include/"
  "//TEST_ROOT_PATH/src/")
set_target_properties("${target}" PROPERTIES COMPILE_DEFINITIONS "CHIP_HAVE_CONFIG_H=1;")
set_target_properties("${target}" PROPERTIES COMPILE_FLAGS "-Wconversion -std=gnu++14 -fno-rtti ")
set_target_properties("${target}" PROPERTIES LINK_FLAGS "-O0 ")
add_dependencies("${target}"
  "root_dep_action")
find_library("library__log" "log")
target_link_libraries("${target}"
  "root_dep_static_lib"
  "${library__log}")


#//root:source_set_test
set("target" "root_source_set_test")
set("${target}__cxx_srcs" "//TEST_ROOT_PATH/src/lib/shell/Engine.cpp")
set("${target}__other_srcs" "//TEST_ROOT_PATH/src/lib/shell/Commands.h")
add_library("${target}" OBJECT ${${target}__cxx_srcs} ${${target}__other_srcs})
set_source_files_properties(${${target}__other_srcs} PROPERTIES HEADER_FILE_ONLY "True")
set_property(TARGET "${target}" APPEND PROPERTY INCLUDE_DIRECTORIES
  "//TEST_ROOT_PATH/src/include/"
  "//TEST_ROOT_PATH/src/")
set_target_properties("${target}" PROPERTIES COMPILE_DEFINITIONS "CHIP_HAVE_CONFIG_H=1;")
set_target_properties("${target}" PROPERTIES COMPILE_FLAGS "-O0 -std=gnu++14 -fno-rtti ")
set_target_properties("${target}" PROPERTIES LINK_FLAGS "-O0 ")
add_dependencies("${target}"
  "root_dep_action"
  "root_dep_static_lib")


#//root:copy_test
set("target" "root_copy_test")
set("${target}__other_srcs" "~/Library/Android/sdk/ndk/21.0.6113669/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so")
set("${target}__output" "//TEST_ROOT_PATH/out/android_arm64/lib/jni/arm64-v8a/libc++_shared.so")
add_custom_command(OUTPUT ${${target}__output}
  COMMAND ${CMAKE_COMMAND} -E copy "~/Library/Android/sdk/ndk/21.0.6113669/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so" "//TEST_ROOT_PATH/out/android_arm64/lib/jni/arm64-v8a/libc++_shared.so"
  DEPENDS  ${${target}__other_srcs}
  WORKING_DIRECTORY "out/"
  COMMENT "Copy ${target}"
  VERBATIM)
add_custom_target("${target}" SOURCES ${${target}__other_srcs} DEPENDS ${${target}__output})


#//root:action_test
set("target" "root_action_test")
set("${target}__cxx_srcs" "out/empty.cpp")
list(APPEND "${target}__input_srcs"
  "//TEST_ROOT_PATH/integrations/mobly/setup.py"
  "//TEST_ROOT_PATH/third_party/pigweed/repo/pw_build/py/pw_build/nop.py")
set("${target}__output" "//TEST_ROOT_PATH/out/android_arm64/python/gen/integrations/mobly/chip_mobly.pw_pystamp")
add_custom_command(OUTPUT ${${target}__output}
  COMMAND ${CMAKE_COMMAND} -E make_directory "//TEST_ROOT_PATH/out/android_arm64/python/gen/integrations/mobly"
  COMMAND python "//TEST_ROOT_PATH/third_party/pigweed/repo/pw_build/py/pw_build/python_runner.py"
    "--gn-root"
    "../../"
  DEPENDS  ${${target}__cxx_srcs} ${${target}__input_srcs}
  WORKING_DIRECTORY "out/"
  COMMENT "Action: ${target}"
  VERBATIM)
add_custom_target("${target}" SOURCES ${${target}__cxx_srcs} ${${target}__input_srcs} DEPENDS ${${target}__output})


#//root:action_foreach_test
set("target" "root_action_foreach_test")
set("${target}__other_srcs" "//TEST_ROOT_PATH/integrations/mobly/setup.py")
set("${target}__output_0" "//TEST_ROOT_PATH/out/android_arm64/python/gen/integrations/mobly/setup.py.pylint.passed")
add_custom_command(OUTPUT ${${target}__output_0}
  COMMAND ${CMAKE_COMMAND} -E make_directory "//TEST_ROOT_PATH/out/android_arm64/python/gen/integrations/mobly"
  COMMAND python "//TEST_ROOT_PATH/third_party/pigweed/repo/pw_build/py/pw_build/python_runner.py"
    "--gn-root"
    "../../"
  DEPENDS "//TEST_ROOT_PATH/integrations/mobly/setup.py"
  WORKING_DIRECTORY "out/"
  COMMENT "Action ${target} on //TEST_ROOT_PATH/integrations/mobly/setup.py"
  VERBATIM)
add_custom_target("${target}" SOURCES ${${target}__other_srcs} DEPENDS ${${target}__output_0})
add_dependencies("${target}"
  "root_dep_action"
  "root_dep_static_lib")


#//root:generated_file_test
set("target" "root_generated_file_test")
set("${target}__cxx_srcs" "out/empty.cpp")
add_custom_target("${target}" SOURCES ${${target}__cxx_srcs})


#//root:dep_action
set("target" "root_dep_action")
set("${target}__cxx_srcs" "out/empty.cpp")
list(APPEND "${target}__input_srcs"
  "//TEST_ROOT_PATH/integrations/mobly/setup.py"
  "//TEST_ROOT_PATH/third_party/pigweed/repo/pw_build/py/pw_build/nop.py")
set("${target}__output" "//TEST_ROOT_PATH/out/android_arm64/python/gen/integrations/mobly/chip_mobly.pw_pystamp")
add_custom_command(OUTPUT ${${target}__output}
  COMMAND ${CMAKE_COMMAND} -E make_directory "//TEST_ROOT_PATH/out/android_arm64/python/gen/integrations/mobly"
  COMMAND python "//TEST_ROOT_PATH/third_party/pigweed/repo/pw_build/py/pw_build/python_runner.py"
    "--gn-root"
    "../../"
  DEPENDS  ${${target}__cxx_srcs} ${${target}__input_srcs}
  WORKING_DIRECTORY "out/"
  COMMENT "Action: ${target}"
  VERBATIM)
add_custom_target("${target}" SOURCES ${${target}__cxx_srcs} ${${target}__input_srcs} DEPENDS ${${target}__output})


#//root:dep_static_lib
set("target" "root_dep_static_lib")
set("${target}__cxx_srcs" "//TEST_ROOT_PATH/src/lib/shell/tests/TestStreamerStdio.cpp")
set("${target}__other_srcs" "//TEST_ROOT_PATH/src/lib/shell/tests/TestStreamerStdio.h")
add_library("${target}" STATIC ${${target}__cxx_srcs} ${${target}__other_srcs})
set_source_files_properties(${${target}__other_srcs} PROPERTIES HEADER_FILE_ONLY "True")
set_property(TARGET "${target}" PROPERTY OUTPUT_NAME "libTestShell")
set_property(TARGET "${target}" PROPERTY PREFIX "")
set_property(TARGET "${target}" APPEND PROPERTY INCLUDE_DIRECTORIES
  "//TEST_ROOT_PATH/dep/include/"
  "//TEST_ROOT_PATH/dep/")
set_target_properties("${target}" PROPERTIES COMPILE_DEFINITIONS "DEP_DEFINES=1;")
set_target_properties("${target}" PROPERTIES LINK_FLAGS "-deps ")
find_library("library__deplog" "deplog")
target_link_libraries("${target}"
  "${library__deplog}")
