2

我正在尝试使用https://github.com/ParticlePeter/ErupteD

问题是我需要一个隐藏在版本后面的特定于平台的功能。该版本本身使用一个名为 的模块xcb-d,该模块不在该库的配音配置文件中。

// VK_KHR_xcb_surface
version(VK_USE_PLATFORM_XCB_KHR) {
    public import xcb.xcb;

    enum VK_KHR_XCB_SURFACE_SPEC_VERSION = 6;
    enum VK_KHR_XCB_SURFACE_EXTENSION_NAME = "VK_KHR_xcb_surface";

    alias VkXcbSurfaceCreateFlagsKHR = VkFlags;

    struct VkXcbSurfaceCreateInfoKHR {
        VkStructureType             sType = VkStructureType.VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
        const(void)*                pNext;
        VkXcbSurfaceCreateFlagsKHR  flags;
        xcb_connection_t*           connection;
        xcb_window_t                window;
    }
}

https://github.com/ParticlePeter/ErupteD/blob/master/source/erupted/types.d#L3333

据我所知,xcb 没有配置https://github.com/ParticlePeter/ErupteD/blob/master/dub.json

我目前只是做

dependency "erupted" version="~>1.1.1"
subConfiguration "erupted" "with-derelict-loader"
versions "VK_USE_PLATFORM_XCB_KHR"

source/erupted/types.d(3335,16):错误:模块 xcb 位于无法读取的文件“xcb/xcb.d”中

是否可以为依赖项指定依赖项?

4

1 回答 1

1

没有办法为 dub repos 指定“依赖项的依赖项”,也没有必要这样做。

因为你手动指定VK_USE_PLATFORM_XCB_KHR了,所以Erupted包没有配置依赖xcb-d项目,所以会编译失败。

但是,确实存在一个dub-platform-xcb-derelict-loader配置,其中包括废弃的加载程序和 XCB 平台功能,这似乎是您想要的。使用该配置并删除该版本。

于 2016-05-25T21:35:36.187 回答