gpt4 book ai didi

makefile - 如何让 CMake 使用现有的 Makefile?

转载 作者:行者123 更新时间:2023-12-03 10:41:57 26 4
gpt4 key购买 nike

我有一个现有的项目(wvdial),它有一个工作的 makefile。我正在尝试将它集成到我们使用 CMake 的主要构建过程中。谁能建议如何做到这一点?我根据我们构建的其他一些项目在下面进行了尝试,但从未调用过 makefile。我要做的就是调用 wvdial 的 makefile 并将二进制文件包含在 .deb 中。我们构建的包。
cmake_minimum_required(版本 2.6)

SET(COMPONENT_NAME 根-供应商-wvdial)

设置(DEBIAN_PACKAGE_VERSION 1.6.1)

SET(WVDIAL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
SET(WVDIAL_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
SET(WVDIAL_INSTALLED ${CMAKE_CURRENT_BINARY_DIR})

添加_自定义_目标(
wvdial 全部
取决于 ${WVDIAL_INSTALLED}
)

IF (${ROOTS_TARGET_ARCHITECTURE} STREQUAL "armhf")
SET(TARGET_FLAG "--host=arm-linux-gnueabihf")
万一()

添加自定义命令(
WORKING_DIRECTORY ${WVDIAL_BINARY_DIR}
输出 ${WVDIAL_INSTALLED}
命令环境 CXXFLAGS=${ROOTS_COMPILER_FLAGS} ./configure ${TARGET_FLAG} ${ROOTS_HOST_OPTION}
命令使
评论“ build wvdial”
逐字
)

安装(
文件 ${CMAKE_CURRENT_BINARY_DIR}/wvdial
目的地 usr/local/bin
组件 ${COMPONENT_NAME}
权限 OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
)

DEFINE_DEBIAN_PACKAGE(
名称 ${COMPONENT_NAME}
CONTROL_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/debian/control
CHANGELOG_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/debian/changelog
)

最佳答案

看看 ExternalProject 模块。

这将为您的 CMake 项目添加一个虚拟目标,该目标负责构建依赖项。该命令非常复杂,并且支持很多您可能不需要的东西。 Kitware(CMake 背后的公司)做了 nice post called Building External Projects with CMake 2.8不久前解释了该命令的基本用法。

关于makefile - 如何让 CMake 使用现有的 Makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18346849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com