Skip to content

xmake package 仅打包当前target #7001

@eachcan

Description

@eachcan

你在什么场景下需要该功能?

背景:
依赖关系是: gui ( gui-sdk ( core ( framework ( qt, opencv, cimg, ...) , qt, opencv, ... ), core (..), framework (...) )
所有的库都预先编译,使用 windows / x64 / release|debug 配置
工作方式: 每个库运行 xmake package , 然后 zip 压缩 build/packages/f/framework,config 新项目时,再下载解压

目前的问题是:
中间 framework / core 这种被多次依赖的项目发布了新版本后,下游所有的包要重新 package / zip / upload / download / install,否则会有依赖冲突,表现为使用了错误的 dll

为什么不 设置为 private,然后 xmake install 再 zip / upload?
它会把 Qt 相关的 dll 也都复制过来。在大多数情况下,这是需要的,但发布私有包的情况不需要。

描述可能的解决方案

能在 add_requires / add_packages / add_deps 中存在一个选项,可以在 package 时,仅复制当前 target 而不复制依赖;在新项目的 xmake config 时,.xmake/windows/x64/cache/package 中每个包独立配置, envs / linkdirs / libfiles 仅使用当前 target 的配置;在 xmake install 的时候又可以安装完整的依赖关系。

描述你认为的候选方案

No response

其他信息

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions