浏览代码

Fixes Ninja non-multi config generator and potentially other non-multi config generators (#3867)

Signed-off-by: Esteban Papp <[email protected]>
Esteban Papp 4 年之前
父节点
当前提交
188f54fee0
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      cmake/LYWrappers.cmake

+ 4 - 1
cmake/LYWrappers.cmake

@@ -330,9 +330,12 @@ function(ly_add_target)
     set(runtime_dependencies_list SHARED MODULE EXECUTABLE APPLICATION)
     set(runtime_dependencies_list SHARED MODULE EXECUTABLE APPLICATION)
     if(NOT ly_add_target_IMPORTED AND linking_options IN_LIST runtime_dependencies_list)
     if(NOT ly_add_target_IMPORTED AND linking_options IN_LIST runtime_dependencies_list)
 
 
+        get_property(is_multi_config_generator GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
         # XCode generator doesnt support different source files per configuration, so we cannot have
         # XCode generator doesnt support different source files per configuration, so we cannot have
         # the runtime dependencies using file-tracking, instead, we will have them as a post build step
         # the runtime dependencies using file-tracking, instead, we will have them as a post build step
-        if(CMAKE_GENERATOR MATCHES Xcode)
+        # Non-multi config generators like Ninja (not "Ninja Multi-Config"), Makefiles, etc have trouble to
+        # produce file-level dependencies per configuration, so we also default to use a post build step
+        if(NOT is_multi_config_generator OR CMAKE_GENERATOR MATCHES Xcode)
         
         
             add_custom_command(TARGET ${ly_add_target_NAME} POST_BUILD
             add_custom_command(TARGET ${ly_add_target_NAME} POST_BUILD
                 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/runtime_dependencies/$<CONFIG>/${ly_add_target_NAME}.cmake
                 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/runtime_dependencies/$<CONFIG>/${ly_add_target_NAME}.cmake