从 python 包安装脚本中安装 CMake 宏脚本(使用 setup.py)
Install a CMake macro script from within a python package install script (using setup.py)
所以我有一个 Python 包——都是 set up on PyPI, and on GitHub,没问题。这是我比较熟悉的。
我不知道的是:安装 CMake 脚本作为 python 包安装过程的一部分的概念。有问题的 python 包是一个开发工具——你用它来预处理你的一些 C/C++/Obj-C/Obj-C++ 源文件并在头文件中生成一些预定义的宏——它可以工作当它被包裹在 CMake 宏 (for example like so) 中并作为适当的依赖链的一部分执行时很好。
首先,我不确定如何处理这个问题,因为 the setuptools sandbox stance and distutils’ willing systems-level installer integration 之间似乎存在显着差异 – 然后即使我知道如何在 [=12 中正确设置事物=],我找不到关于 Python 包的 CMake 脚本可能存在的良好先例。
欢迎就此事提出所有想法和见解。
我花了一段时间才理解你的问题。如果我理解正确,您要做的是在 cmake 的标准安装位置提供 IodSymbolize.cmake,以便其他依赖您的软件(符号器)的 users/projects 可以在他们的构建过程中使用它。我认为你的想法是好的,试图为你的包的最终用户提供服务。好问题!
以下是我对 cmake 世界运作方式的理解。
假设我是一个想要使用 "symbolizer" 可执行文件的最终用户。我会做的是
find_package(符号)。这将尝试找出可执行文件的位置,并设置可在构建过程中使用的某些变量。
您需要提供Findsymbolizer.cmake文件。
请看一下:http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries
如果您是 Unix/Linux 平台,请查看 /usr//share/cmake/Modules 目录中提供的 Find*.cmake 文件。
一旦 Findsymbolizer.cmake 文件正常工作,将其发送到 cmake 邮件列表以供审核。一旦被接受,它就可以打包在下一个版本的 cmake 中。然后你的模块可以与 cmake 一起使用。希望我回答了你的问题。如果您需要更多信息,请更新。
所以我有一个 Python 包——都是 set up on PyPI, and on GitHub,没问题。这是我比较熟悉的。
我不知道的是:安装 CMake 脚本作为 python 包安装过程的一部分的概念。有问题的 python 包是一个开发工具——你用它来预处理你的一些 C/C++/Obj-C/Obj-C++ 源文件并在头文件中生成一些预定义的宏——它可以工作当它被包裹在 CMake 宏 (for example like so) 中并作为适当的依赖链的一部分执行时很好。
首先,我不确定如何处理这个问题,因为 the setuptools sandbox stance and distutils’ willing systems-level installer integration 之间似乎存在显着差异 – 然后即使我知道如何在 [=12 中正确设置事物=],我找不到关于 Python 包的 CMake 脚本可能存在的良好先例。
欢迎就此事提出所有想法和见解。
我花了一段时间才理解你的问题。如果我理解正确,您要做的是在 cmake 的标准安装位置提供 IodSymbolize.cmake,以便其他依赖您的软件(符号器)的 users/projects 可以在他们的构建过程中使用它。我认为你的想法是好的,试图为你的包的最终用户提供服务。好问题!
以下是我对 cmake 世界运作方式的理解。
假设我是一个想要使用 "symbolizer" 可执行文件的最终用户。我会做的是 find_package(符号)。这将尝试找出可执行文件的位置,并设置可在构建过程中使用的某些变量。
您需要提供Findsymbolizer.cmake文件。
请看一下:http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries
如果您是 Unix/Linux 平台,请查看 /usr//share/cmake/Modules 目录中提供的 Find*.cmake 文件。
一旦 Findsymbolizer.cmake 文件正常工作,将其发送到 cmake 邮件列表以供审核。一旦被接受,它就可以打包在下一个版本的 cmake 中。然后你的模块可以与 cmake 一起使用。希望我回答了你的问题。如果您需要更多信息,请更新。