# 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/repo/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}")
