2016-05-14 9 views
0

実行ファイルに直接ではなく、リストにソースを追加することをお勧めするのはなぜですか?cmakeのリスト変数にソースを追加するか、add_executableに直接追加するか

PROJECT( helloworld ) 
SET( hello_SRCS hello.cpp ) 
ADD_EXECUTABLE( hello ${hello_SRCS} ) 

SET行をすべてスキップしないのはなぜですか。

+1

'なぜそれが推奨されます...' - 最初の時間をそのような勧告について聞く。あなたの具体的なケースに適しているものを選んでください。多くのソースから実行可能ファイルをビルドし、それらのソースに異なる前処理が必要な場合は、そのソースをリストする変数を持つと便利です。いくつかのソースから単純な実行可能ファイルをビルドする場合、 'add_executable'を指示するのが正しい選択です。 – Tsyvarev

答えて

2

私はこの習慣を頻繁に見て、それが良い習慣と考えても十分だと考えました。たとえば、(実際にCMakeLists.txtをプロジェクト構造ファイルとして使用する)CLion IDEを使用すると、新しいプロジェクトを作成するときにデフォルトでSOURCE_FILES変数が作成されます。

私は、なぜこれが良い習慣であると考えるかの理由の1つは、複数のターゲットに同じファイルを作成したい場合です。たとえば、あなたはあなたのLIBのための静的および共有の両方のバイナリを持っている場合がありますので、あなたはSOURCE_FILESのVARを持っている場合、あなただけのような何か書く必要があります:

add_library(myLibStatic STATIC ${SOURCE_FILES}) 
add_library(myLibShared SHARED ${SOURCE_FILES}) 
関連する問題