Skip to content

manage and switch global virtual environment in xrepo env/shell #1762

@xq114

Description

@xq114

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

https://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html

https://docs.microsoft.com/en-us/cpp/build/reference/i-additional-include-directories?view=msvc-160

https://docs.microsoft.com/en-us/cpp/build/reference/libpath-additional-libpath?view=msvc-160

msvc使用INCLUDE和LIB环境变量来声明额外的include/link path,gcc/ld使用CPATH(C_INCLUDE_PATH+CPLUS_INCLUDE_PATH)和LIBRARY_PATH;目前xmake的虚拟环境仅设置LD_LIBRARY_PATH,确保动态库可以链接,可以更进一步设置更多的环境变量,方便简单代码块的手动编译测试,以及在xrepo environment中使用其他构建系统(e.g. Makefile)

描述可能的解决方案

toolchain为msvc时添加INCLUDE和LIB环境变量;gcc、clang、mingw等设置CPATH和LIBRARY_PATH环境变量

其他信息

  1. 当前需要显式设置toolchain=msvc才能加载到msvc的环境;但虚拟环境的进入可以保证在运行xmake config之后,此时应该已经可以取出用到的所有toolchain才对。如果有用到msvc,就加载进入msvc环境,应该可以实现的

  2. meson对此的说明:
    https://mesonbuild.com/Reference-manual_returned_compiler.html#returned-by

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions