【问题标题】:How to get CMake to use existing Makefile?如何让 CMake 使用现有的 Makefile?
【发布时间】:2013-08-23 04:48:58
【问题描述】:

我有一个现有的项目 (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} 命令使 评论“建设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 )

【问题讨论】:

    标签: makefile cmake


    【解决方案1】:

    看看ExternalProject 模块。

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

    【讨论】:

      猜你喜欢
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 2011-05-31
      • 2011-05-21
      • 2022-12-29
      • 1970-01-01
      • 2014-06-26
      相关资源
      最近更新 更多