Skip to content
  • Brad King's avatar
    Xcode: Fix object library references in multi-project trees (#13452) · b237dbd8
    Brad King authored
    In cmGlobalXCodeGenerator::Generate we generate a .xcodeproj for each
    directory in the tree containing a project() command.  First we
    iteratively use SetGenerationRoot to add "ALL_BUILD" and other targets
    to each project.  This leaves "CurrentProject" set to the last project
    when we invoke cmGlobalGenerator::Generate, which is not the same as the
    top-level project if any subdirectories invoke the project() command.
    
    When cmGlobalGenerator::Generate reaches CreateGeneratorTargets it
    constructs cmGeneratorTarget and calls ComputeTargetObjects exactly once
    per target.  In this context the value of CurrentProject is undefined so
    we cannot pass it to GetObjectsNormalDirectory.  Use "$(PROJECT_NAME)"
    instead so it will adapt automatically to each project.
    
    Also teach Tests/ObjectLibrary to cover this case.
    b237dbd8