首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使CMake使用现有的makefile?

如何使CMake使用现有的makefile?
EN

Stack Overflow用户
提问于 2018-03-30 07:49:43
回答 1查看 0关注 0票数 0

我有一个现有的项目(Wvdide),它有一个工作的makefile。我正在尝试将它集成到我们使用CMake的主要构建过程中。有人能建议如何做到这一点吗?下面我尝试基于我们构建的其他一些项目,但是Makefile从未被调用过,我想要做的就是调用Makefile for wvdisk,并将二进制文件包含在我们构建的.deb包中。

代码语言:txt
复制
    cmake_minimum_required(VERSION 2.6)

    SET(COMPONENT_NAME roots-vendor-wvdial)

    SET(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})

    ADD_CUSTOM_TARGET(
        wvdial ALL
        DEPENDS ${WVDIAL_INSTALLED}
    )

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

    ADD_CUSTOM_COMMAND(
        WORKING_DIRECTORY ${WVDIAL_BINARY_DIR}
        OUTPUT ${WVDIAL_INSTALLED}
        COMMAND env CXXFLAGS=${ROOTS_COMPILER_FLAGS} ./configure ${TARGET_FLAG} ${ROOTS_HOST_OPTION}
        COMMAND make
        COMMENT "Building wvdial"
        VERBATIM
    )


    INSTALL(
        FILES ${CMAKE_CURRENT_BINARY_DIR}/wvdial
        DESTINATION usr/local/bin
        COMPONENT ${COMPONENT_NAME}
        PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
    )

    DEFINE_DEBIAN_PACKAGE(
        NAME ${COMPONENT_NAME}
        CONTROL_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/debian/control
        CHANGELOG_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/debian/changelog
    )
EN

回答 1

Stack Overflow用户

发布于 2018-03-30 17:44:16

看看ExternalProject模块。

这会为你的CMake项目添加一个虚拟目标,负责构建依赖关系。这个命令非常复杂,支持很多你可能不需要的东西。Kitware(CMake背后的公司)在使用CMake 2.8的同时做了一个名为Building External Projects好帖子同时回过头来解释了该命令的基本用法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档