有没有办法配置CMake,以便单个make
命令将启动主机和目标版本?我有一个项目旨在在目标平台上运行,但需要一些需要在主机平台(PC)上运行的generator
生成的数据。从CMake的文档和环顾四周,我需要一个2遍构建 - 第一个主机创建生成器然后目标交叉编译构建。我的问题是具体如何通过CMake配置(不使用外部bash或python脚本)使用单个make
命令启动2遍构建。
我知道的事情
答案 0 :(得分:1)
将我的评论转化为答案
假设您有一个用于主机构建工具的buildTool
子目录:
<强>编译工具\的CMakeLists.txt 强>
cmake_minimum_required(VERSION 2.8)
project(BuildTools)
add_executable(genfoo genfoo.cpp)
然后你可以有一个主要的:
<强>的CMakeLists.txt 强>
if (CMAKE_CROSSCOMPILING)
set(_genfoo "bin/genfoo${CMAKE_EXECUTABLE_SUFFIX}")
add_custom_command(
OUTPUT ${_genfoo}
COMMAND ${CMAKE_COMMAND}
-DCMAKE_BUILD_TYPE:STRING="Release"
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE:PATH="${CMAKE_BINARY_DIR}/bin"
-B"bin"
-H"${CMAKE_SOURCE_DIR}/buildTools"
COMMAND ${CMAKE_COMMAND} --build bin --config Release
)
else()
set(_genfoo genfoo)
add_subdirectory(buildTools)
endif()
add_custom_command(
OUTPUT foo.h
COMMAND ${_genfoo}
DEPENDS ${_genfoo}
)
add_executable(bar bar.cpp foo.h)
target_include_directories(bar PRIVATE ${CMAKE_BINARY_DIR})
<强>参考强>