1

私のプロジェクトディレクトリには、ルートにCMakeLists.txtファイルとsrcディレクトリが含まれています。ルートにあるものによってリンクされている独自のも含まれています。の構文が次のようになるように、デフォルトのグローバルビルドディレクトリを設定するようにCMakeに指定する方法はありますか?includesrcCMakeLists.txtsrc/CMakeLists.txt

include_directories(include)
add_executable(first main.cpp foo.cpp)
add_executable(second bar.cpp)

このディレクトリツリーを構築したいのですが:

CMakeLists.txt

src/
    CMakeLists.txt
    main.cpp
    foo.cpp
    bar.cpp

include/
    ...

bin/ (or build/)
    first
    second
4

1 に答える 1

7

あなたが設定することができますCMAKE_RUNTIME_OUTPUT_DIRECTORY

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)

ただし、これにより、bin/異なるターゲットごとにサブディレクトリが内部に作成されることはありません。

それが必要な場合は、ラップするヘルパー関数を作成できますadd_subdirectories

function(my_add_executable TargetName)
  set(Files ${ARGV})
  list(REMOVE_AT Files 0)
  add_executable(${TargetName} ${Files})
  set_target_properties(${TargetName} PROPERTIES
                            RUNTIME_OUTPUT_DIRECTORY
                                "${CMAKE_SOURCE_DIR}/bin/${TargetName}")
endfunction()

次に、通話を次のように変更します。

my_add_executable(first main.cpp foo.cpp)
my_add_executable(second bar.cpp)


詳細については、

cmake --help-variable "CMAKE_RUNTIME_OUTPUT_DIRECTORY"
cmake --help-property "RUNTIME_OUTPUT_DIRECTORY"
cmake --help-property "RUNTIME_OUTPUT_DIRECTORY_<CONFIG>"
于 2012-06-14T10:14:43.307 に答える