Merge topic 'vs-iface-include-dirs' into release-3.21

53aabe9817 VS: Fix assertion failure on INCLUDE_DIRECTORIES in INTERFACE libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6411
This commit is contained in:
Brad King
2021-08-02 18:06:58 +00:00
committed by Kitware Robot
3 changed files with 11 additions and 0 deletions

View File

@@ -4093,6 +4093,9 @@ void cmVisualStudio10TargetGenerator::WriteMidlOptions(
if (this->ProjectType == csproj) {
return;
}
if (this->GeneratorTarget->GetType() > cmStateEnums::UTILITY) {
return;
}
// This processes *any* of the .idl files specified in the project's file
// list (and passed as the item metadata %(Filename) expressing the rule

View File

@@ -0,0 +1,7 @@
cmake_policy(SET CMP0076 NEW)
include_directories(Inc1 Inc2)
add_library(iface INTERFACE)
target_sources(iface PRIVATE iface.c)
# Ensure the INCLUDE_DIRECTORIES property is populated.
# Since interface libraries do not actually compile anything, this should be ignored.
set_property(TARGET iface APPEND PROPERTY INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/Inc3 ${CMAKE_CURRENT_SOURCE_DIR}/Inc4)

View File

@@ -34,3 +34,4 @@ run_WithSources(ConfigSources "build1:iface")
run_WithSources(EmptySources "build1:iface" "build2:iface2,merge")
run_WithSources(ExcludeFromAll "build1" "build2:iface" "build3:iface2,merge")
run_WithSources(PublicSources "build1" "build2:iface" "build3:iface2,merge")
run_WithSources(IncludeDirectories "build1:iface")