From 658489531b102e069588366a649c11bfb9114458 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Tue, 12 Sep 2023 07:58:22 -0700 Subject: [PATCH] Fix broken Gradle Sync when opening the project with Android Studio (#39412) Summary: This fixes an issue that I got reported by users attempting to open the react-native GitHub project in Android Studio. The error is: ``` Cannot specify include directories for target "react_codegen_AppSpecs" which is not built by this project. ``` Changelog: [Internal] [Changed] - Fix broken Gradle Sync when opening the project with Android Studio Reviewed By: huntie Differential Revision: D49189331 --- .../rn-tester/NativeCxxModuleExample/CMakeLists.txt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/rn-tester/NativeCxxModuleExample/CMakeLists.txt b/packages/rn-tester/NativeCxxModuleExample/CMakeLists.txt index ce1fa2d8980137..79c30443a3475e 100644 --- a/packages/rn-tester/NativeCxxModuleExample/CMakeLists.txt +++ b/packages/rn-tester/NativeCxxModuleExample/CMakeLists.txt @@ -20,10 +20,17 @@ file(GLOB nativecxxmoduleexample_SRC CONFIGURE_DEPENDS *.cpp) add_library(nativecxxmoduleexample STATIC ${nativecxxmoduleexample_SRC}) target_include_directories(nativecxxmoduleexample PUBLIC .) -target_include_directories(react_codegen_AppSpecs PUBLIC .) target_link_libraries(nativecxxmoduleexample fbjni jsi - react_nativemodule_core - react_codegen_AppSpecs) + react_nativemodule_core) + +# For Gradle Syncs (i.e. when you first open the project in Android Studio), +# the react_codegen_AppSpecs target is not existing yet as it's generated by +# Codegen. Therefore skip the linking with that library if it's missing in the +# CMake dependency Graph. It will be included anyway in the final build. +if (TARGET react_codegen_AppSpecs) + target_include_directories(react_codegen_AppSpecs PUBLIC .) + target_link_libraries(nativecxxmoduleexample react_codegen_AppSpecs) +endif ()