为了确保我的Linux构建与构建主机使用的发行版完全相同,我已经将我的编译器和sysroot文件打包到一个可重定位的tar文件中,并将其签入到源代码控制中。
因此,任何构建的第一步(或者至少是必须在任何编译步骤之前调用的步骤)都必须解压这个tar文件。
如果我使用的是makefile,这将很容易做到。然而,这个项目使用的是cmake,而我想不出任何使用cmake的方法。我甚至可能需要在cmake开始检测编译器之前调用这个提取步骤:我可以对编译器名称进行硬编码,但是如果cmake失败,如果它找不到编译器,那么我需要在测试之前进行解包。
使用cmake可以做到这一点吗?
发布于 2013-01-31 06:30:09
您可以使用execute_process来调用cmake的跨平台命令模式(cmake -E tar)。命令应该类似于:
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf MyCompiler.bz2)导致CMake检查有效编译器的命令是project,所以只要在project调用之前有execute_process调用,解包就会在编译器检查之前完成。
https://stackoverflow.com/questions/14614813
复制相似问题