2013-08-21 8 views
18

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

はショーン

 
    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 
    ) 

答えて

20

ExternalProjectモジュールを見てみましょう 、ありがとうございます。

これは、CMakeプロジェクトに依存関係を構築するためのダミーターゲットを追加します。このコマンドは非常に複雑で、おそらくあなたのケースでは必要のないたくさんのものをサポートしています。 Kitware(CMakeの後の会社)は、そのコマンドの基本的な使い方を説明しながら、nice post called Building External Projects with CMake 2.8を行った。

+1

Kitwareがあなたのリンクを移動しました。ここに更新されたリンク:https://blog.kitware.com/wp-content/uploads/2016/01/kitware_quarterly1009.pdf – Matt

+0

@Matt通知のおかげで、私はそれに応じて答えを編集しました。 – ComicSansMS

関連する問題