Skip to content
  • Brad King's avatar
    CSharp: Fix regression in VS project type selection for custom target · a56edad6
    Brad King authored
    A target created by `add_custom_target` should always be a `.vcxproj`
    file even if it has `.cs` sources involved in custom commands and such.
    The latter case was broken by refactoring in commit v3.12.0-rc1~160^2~7
    (remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget,
    2018-03-19).  The reason is that the `HasLanguage` method added by
    commit v3.12.0-rc1~239^2~6 (cmGeneratorTarget: add HasLanguage() as
    wrapper for GetLanguages(), 2018-03-19) does not check the target type
    and so is not a suitable check for deciding the project file extension.
    
    The `HasLanguage` method was an attempt at an abstraction that turns
    out not to work very well.  Replace it with a dedicated `IsCSharpOnly`
    method that considers the target type, sources, and non-transitive
    `LINKER_LANGUAGE`.
    
    Fixes: #18515
    a56edad6