我正在处理一个从CMake转移到Bazel的项目。我们显然在这个过程中失去了重要的功能,即安装项目,以便它可以被其他(不一定是Bazel)项目使用。
据我所知,目前没有内置的支持来安装项目?!
我需要创建一种可移植的方式(必须至少适用于Linux和MacOS)来安装该项目。具体而言:
- 我需要能够指定需要安装的库、头文件、可执行文件和其他文件(例如 `LICENSE`)。 - 用户需要能够指定绝对前缀来安装东西。 - 我真的非常需要能够多次执行 "install" 步骤,并每次给出不同的前缀,而不会让Bazel感到困惑(即它不能尝试“记住”它已经安装了哪些文件,或者如果它这样做了,那么必须在前缀与上次不同时理解)。 - 库应安装在正确的位置(例如 `lib64`),或者用户应该能够指定正确的libdir。 - 安装步骤绝不会触及任何未更改的先前安装文件的时间戳。(理想情况下,Bazel本身将处理此问题;使用`install`命令很棘手,并且具有潜在的可移植性问题。请注意平台要求以上。)
最佳方法是什么?
据我所知,目前没有内置的支持来安装项目?!
我需要创建一种可移植的方式(必须至少适用于Linux和MacOS)来安装该项目。具体而言:
- 我需要能够指定需要安装的库、头文件、可执行文件和其他文件(例如 `LICENSE`)。 - 用户需要能够指定绝对前缀来安装东西。 - 我真的非常需要能够多次执行 "install" 步骤,并每次给出不同的前缀,而不会让Bazel感到困惑(即它不能尝试“记住”它已经安装了哪些文件,或者如果它这样做了,那么必须在前缀与上次不同时理解)。 - 库应安装在正确的位置(例如 `lib64`),或者用户应该能够指定正确的libdir。 - 安装步骤绝不会触及任何未更改的先前安装文件的时间戳。(理想情况下,Bazel本身将处理此问题;使用`install`命令很棘手,并且具有潜在的可移植性问题。请注意平台要求以上。)
最佳方法是什么?