2011-11-12 6 views
6

私はいくつかのプロジェクト(現在は4、最終的には最大10-20)でVS2010ソリューションを生成しています。私は彼らのうちの1人だけがビルドしたい。残りは無効にする必要があります。私は手動で設定マネージャに入って、私がしたくないボックスのチェックを外すことでこれを行うことができますが、明らかにこれは良い解決策ではありません。cmakeを使用してビルドするためのVisual Studioプロジェクトを無効にする

これを行うプロジェクトのCMakeLists.txtファイルに何か追加できますか?ドキュメントを検索すると、googleとsoは何も得られませんでした。

only bam projectshould be built

アップデート:ここに私のルートCMakeLists.txtができます、その場合には次のとおりです。

cmake_minimum_required(VERSION 2.8) 

add_definitions(-DCOMPILER_MSVC) 
project (PDEngine) 

set(LINKER_LANGUAGE CXX) 

add_subdirectory (units/platform) 
add_subdirectory (units/render_api) 
add_subdirectory (units/memory) 
add_subdirectory (units/game) 

set(custom_exe "${CMAKE_CURRENT_BINARY_DIR}/units/Platform/Debug/Platform.lib2") 

add_custom_command(OUTPUT ${custom_exe} 
    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat -j $ENV{NUMBER_OF_PROCESSORS} 
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat 
) 
#add_custom_command(OUTPUT ${custom_exe_clean} 
    #COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat -c 
    #DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat 
#) 

add_custom_target(bam ALL DEPENDS ${custom_exe}) 
#add_custom_target(bamclean ALL DEPENDS ${custom_exe_clean}}) 

(bam.batのものは、私がここに来た答えのオフに基づいています:How do I configure CMake to make the VS solution use a specific build commandline?)を

「プラットフォーム」プロジェクトのCMakeLists.txtは次のとおりです。

cmake_minimum_required (VERSION 2.8) 
project (Platform) 

set (COMPILER_MSVC 1) 

include_directories(${Platform_SOURCE_DIR}/include) 
file(GLOB Project_HEADERS ${Platform_SOURCE_DIR}/include/platform/*.h) 
source_group("Headers" FILES ${Project_HEADERS}) 

add_library(Platform STATIC EXCLUDE_FROM_ALL src/*.cpp ${Project_HEADERS}) 
+0

なぜdownvoteですか? – Srekel

+2

ああ、私が投票ボタンの上に乗ったときに、投票が意味するべきもののポップアップテキストを見ました。 「研究努力はしていない」私はこれを調べるのにかなりの時間を費やしました。私はそのポストでそう言いました。そして、 "それは不明です" - 私は何をしたいのか明確ではないのですか? 「役に立たない」?それは私にとってです。 – Srekel

+0

さんと+1しました。私はこの質問に間違いないことに同意します。 CMakeLists.txtファイルからいくつかのサンプルセクションを追加して、操作対象のコンテキストを他の人に与えることもできます。 – mevatron

答えて

2

あなたがしたいことがデフォルトで何かを構築していない場合は、 "ALL"ターゲットから削除することができます(これはVisual StudioでALL_BUILDとして表示されます)。これを行う方法は、ターゲットプロパティーEXCLUDE_FROM_ALLを使用するか、またはEXCLUDE_FROM_ALLをadd_executableおよびadd_libraryに渡すことです。 (カスタムターゲットのデフォルトはEXCLUDE_FROM_ALLなので、その逆を行うにはadd_custom_targetの引数にALLを追加します)。

すべてのターゲットが表示されますが、[ビルドソリューション]をクリックすると、必要なものだけがビルドされます。組み込みのINSTALLプロジェクト/ターゲットのように、それらを右クリックして「ビルド」を選択することで、他のものを構築することができます。

+0

ありがとうございます。私はそれを試みたが、私が知る限り、それは助けにならない。変更を加え、右クリックして "bam"を手動でビルドしてから、ソリューションビルドを行うと、私は変更を加えたプロジェクトをビルドします。私は私のCMakeLists.txtで投稿を更新しました – Srekel

+0

カスタムターゲットは、デフォルトでALL_BUILDの依存関係にはなりませんが、構成マネージャでマークされていない限り、(Re)build Solutionコマンドによってビルドされます。 – John

関連する問題