INTERFACE_INCLUDE_DIRECTORIES from Imported Target can not be seen in Visual Studio

Consider this cmake scripts:

    find_package(Nxx 1.0.0 REQUIRED COMPONENTS Math IO)

    add_compile_definitions(NXX)

    target_link_librariesSolver PRIVATE Nxx::Math)
    target_link_librariesSolver PRIVATE Nxx::IO)

    file(GENERATE OUTPUT test_debug_genex.log
    CONTENT "$<TARGET_PROPERTY:Solver,INCLUDE_DIRECTORIES>")

the MathTargets.cmake of package Nxx contains this contents:

if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
  target_sources(Math
    INTERFACE
      FILE_SET "HEADERS"
      TYPE "HEADERS"
      BASE_DIRS "${_IMPORT_PREFIX}/xx/math"
      FILES "${_IMPORT_PREFIX}/xx/math/Common.h" "${_IMPORT_PREFIX}/xx/math/Constants.h" 
  )
endif()

With CMake 3.23.0,
run command “cmake -G"Visual Studio 16” … " and I will find the path, after “${_IMPORT_PREFIX}/xx/math” expansion, in the field of “Additional Include Directories” of Visual Studio.

With CMake 3.24.1,
the same cmake scripts and command, I can NOT find the path in the field of “Additional Include Directories” of Visual Studio.

With both of them, I can find the path of “${_IMPORT_PREFIX}/xx/math” expansion in test_debug_genex.log.

By the way, both of CMake 3.23.0 and CMake 3.24.1 can generate a build system to build correctly.

Is it a regression for this issuse?

@brad.king any thoughts as to what might have changed here?

I really appreciate everything you’ve done.

I do believe this topic is relative to: Visual Studio does not show the pathes in INCLUDE_DIRECTORIES.

The FILE_SET’s BASE_DIR might be set as a SYSTEM path.