31

機能するメイクファイルを含む既存のプロジェクト ( wvdial) があります。CMake を使用するメインのビルド プロセスに統合しようとしています。誰でもこれを行う方法についてアドバイスできますか? 私たちが構築した他のプロジェクトのいくつかに基づいて以下を試みましたが、makefile は決して呼び出されません。やりたいことは、wvdial の makefile を呼び出して、.debビルドするパッケージにバイナリを含めることだけです。

    cmake_minimum_required(バージョン 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
        ${WVDIAL_INSTALLED} によって異なります
    )

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

    ADD_CUSTOM_COMMAND(
        WORKING_DIRECTORY ${WVDIAL_BINARY_DIR}
        出力 ${WVDIAL_INSTALLED}
        コマンド env 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}/デビアン/コントロール
        CHANGELOG_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/debian/changelog
    )
4

1 に答える 1

30

ExternalProjectモジュールを見てみましょう。

これにより、依存関係の構築を担当するダミー ターゲットが CMake プロジェクトに追加されます。このコマンドは非常に複雑で、おそらく必要のない多くの機能をサポートしています。Kitware (CMake の背後にある会社) は、CMake 2.8 を使用した外部プロジェクトの構築と呼ばれる素晴らしい投稿を行い、そのコマンドの基本的な使用法を説明しました。

于 2013-08-21T08:32:09.430 に答える