2017-09-26 16 views
2

私は、ユーザが望む場合にGUIを構築することができるプロジェクトを持っています。これはオプションのライブラリです。オプションのライブラリが構築されている場合のCmake設定ファイル

私はインストール用のCmake設定ファイルを作成しようとしていますが、これを知ってファイルを修正する巧妙な方法があるかどうかはわかりません。今私が持っている場合:

set(MYPROG_INCLUDE_DIRS @[email protected]/include/myprog) 

foreach(lib feature geometry gui sensors sensorstream utils) 
    list(APPEND MYPROG_LIBRARIES @[email protected]/lib/libmyprog_${lib}.so) 
endforeach() 

しかし、私は、GUIを構築する瞬間、このファイルには、ビルドしていないにも関わらず、また、GUIに向かっリンクMYPROG_LIBRARYを与えています。私はのように2つの分離について考えた:

set(MYPROG_INCLUDE_DIRS @[email protected]/include/myprog) 

foreach(lib feature geometry sensors sensorstream utils) 
    list(APPEND MYPROG_LIBRARIES @[email protected]/lib/libmyprog_${lib}.so) 
endforeach() 

set(MYPROG_LIBRARIES_GUI [email protected]/lib/libmyprog_gui.so) 

しかし、私は、GUIを構築された場合、私は今、すべてのライブラリを得るために行うために別の呼び出しに持っています。

私のCmakeでは、GUIをビルドできない場合、BUILD_GUIが0に設定されています。これを使う方法はありますか?あなたのコンポーネントのリストを構築して、設定ファイルにそれを置くことができる

答えて

2

set(COMPONENTS lib feature geometry sensors sensorstream utils) 
if(BUILD_GUI) 
    list(APPEND COMPONENTS gui) 
endif() 

、configファイルで

foreach(lib @[email protected]) 
    list(APPEND MYPROG_LIBRARIES @[email protected]/lib/libmyprog_${lib}.so) 
endforeach() 
+0

はおそらく 'foreachの(LIBする@ COMPONENTS @)'でなければならず、はい? – legalize

+0

ありがとう、ありがとう。 – arrowd

関連する問題