小编jgs*_*ogo的帖子

从Gitlab管道上传到pypi

我正在尝试使用Gitlab CI作业将软件包上载到pypi,但我无法使其工作:/任何人都有一个有效的示例?

到目前为止,我.gitlab-ci.yaml在我的机器上尝试过的一切(从我的本地机器上都可以正常工作):

  1. .pypirc文件缠绕

    - echo "[distutils]" >> ~/.pypirc
    - echo "index-servers =" >> ~/.pypirc
    - echo "    pypi" >> ~/.pypirc
    - echo "" >> ~/.pypirc
    - echo "[pypi]" >> ~/.pypirc
    - 'echo "repository: https://upload.pypi.org/legacy/" >> ~/.pypirc'
    - 'echo "username: ${PYPI_USER}" >> ~/.pypirc'
    - 'echo "password: ${PYPI_PASSWORD}" >> ~/.pypirc'
    - python3 setup.py check sdist bdist  # This will fail if your creds are bad.
    - cat ~/.pypirc
    - twine upload dist/* --config-file ~/.pypirc
    
    Run Code Online (Sandbox Code Playgroud)
  2. 与以前相同,但有 $VARIABLE

    [...] …
    Run Code Online (Sandbox Code Playgroud)

python pypi gitlab-ci twine

7
推荐指数
2
解决办法
1837
查看次数

CMake:外部项目的依赖关系

我想知道如何管理外部项目的依赖项.假设我有三个项目,每个项目位于不同的存储库中:

  1. 核心:图书馆出口了许多有用的东西.
  2. Lib1:具有一些特定类的库(取决于Core).
  3. 可执行文件:使用来自CoreLib1的东西.

每个项目都有其CMakeLists.txt.使用find_package并在CMake上定义路径我可以毫无问题地构建每个项目并安装它(我按照这个tuto来构建库的.cmake文件)


现在我正在尝试使这个过程尽可能简单,我正在介绍ExternalProject_Add宏,这样人们只需克隆可执行文件库并在CMake文件Lib1Core的帮助下也会被下载,编译和链接.

问题是ExecutableLib1依赖于Core但我希望它只被克隆(和编译)一次.这是问题所在:

  • Executable CMake克隆中,使用ExternalProject_Add功能构建Core.
  • 然后Cmake克隆Lib1并查找Core但它尚未安装,因此没有core-targets.cmake文件(core-config.cmake可用)...并且构建失败...

我不知道是否有文档化的方法来处理这种项目树,或者当Core被包含作为外部项目的依赖项时,我应该编写某种解决方法,以避免使用core-targets.cmake文件.

谢谢!


我意识到当使用ExternalProject_Add时,它会下载,构建和安装项目,因此,在install-folder中,我已经拥有了编译其依赖项所需的所有文件.

所以我可以按照这些步骤管理此问题(也适用于构建顺序):

  • *Core的 ExternalProject_Add*
  • *ExternalProject_Add*for Lib1传递Core install_dir作为参数
  • ......和可执行文件.

c++ cmake dependency-management

5
推荐指数
1
解决办法
3931
查看次数

标签 统计

c++ ×1

cmake ×1

dependency-management ×1

gitlab-ci ×1

pypi ×1

python ×1

twine ×1