Commit 53aabe98 authored by Brad King's avatar Brad King
Browse files

VS: Fix assertion failure on INCLUDE_DIRECTORIES in INTERFACE libraries

Since commit 43919131 (Add INTERFACE libraries to generated
buildsystem if they have SOURCES, 2020-07-20, v3.19.0-rc1~346^2~1), the
VS generator may process INTERFACE libraries.  Avoid code paths in the
generator that process include directories because they should not be
used by INTERFACE libraries since they do not compile anything.

Fixes: #22494
parent 516ac348
Pipeline #240004 passed with stages
in 107 minutes and 39 seconds
......@@ -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
......
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)
......@@ -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")
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment