CMakeでディレクトリを作成する


143

CMakeでは、ディレクトリがまだ存在しない場合は作成します。これどうやってするの?

回答:


250

いつディレクトリを作成しますか?

ビルドシステム生成時

CMakeがビルドシステムを生成するときにディレクトリを作成するには、

file(MAKE_DIRECTORY ${directory})

ビルド時

add_custom_command()(生成されたビルドシステムにカスタムビルドルールを追加)コマンド、およびadd_custom_target()(それが常にビルドされますので、出力なしでターゲットを追加)コマンドは、ビルド時に実行するコマンドを指定します。コマンドを実行してディレクトリを作成します${CMAKE_COMMAND} -E make_directory。例えば:

add_custom_target(build-time-make-directory ALL
    COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

インストール時

インストール時にディレクトリを作成するには、

install(DIRECTORY DESTINATION ${directory})

簡潔で素早い。すぐにターゲットに当たる!ありがとう。
真理調整器

25

インストール時にディレクトリを作成するには、

install(DIRECTORY DESTINATION ${directory})

これらは両方とも構成時に実行されます。

file(MAKE_DIRECTORY ${directory})
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

ビルド中に作成するには、カスタムターゲットを使用します。

add_custom_target(mytargetname ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

10

Chin Huangの返答に加えて、ビルド時にadd_custom_command次のコマンドを実行することもできます。

add_custom_command(TARGET ${target_name} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

PRE_BUILD|でディレクトリが作成される瞬間を変更することもできます。PRE_LINK| POST_BUILDパラメーター。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.