2017-01-26 18 views
2

Visual Studio 2017 RCを使用してCMakeプロジェクトを開き、作業ディレクトリが常に出力ディレクトリであることがわかりました。Visual Studio 2017 RC CMakeプロジェクトの作業ディレクトリの設定方法

作業ディレクトリを出力ファイルのディレクトリ以外に設定する方法はありますか?

(何の.slnファイルが存在しないので、私は古い方法で作業ディレクトリを設定することはできません)

更新 私はCMakeのスクリプトからプログラムを呼び出していないのです。私はVisual Studioでターゲットプログラムを実行しています。そして、私はターゲットプログラムの作業ディレクトリを変更したい。

+0

**どの目的のために**作業ディレクトリを変更したいですか?あなたが 'add_custom_target()'呼び出しの中でプログラムを実行するならば、あなたは* WORKING_DIRECTORY *オプションを指定することができます。 – Tsyvarev

+0

@Tsyvarev出力プログラムの作業ディレクトリを変更して、いくつかのリソース(イメージなど)をさまざまな構成(Debug/Release)間で共有できるようにします。 – Null

+0

'出力プログラムの作業ディレクトリを変更したいです.' - **、コードを提供してください**このプログラムをCMakeスクリプトからどのように呼び出すか。 (**は質問欄**で、コメントではありません)。 BTW、*ビルドディレクトリ*(* CMAKE_BINARY_DIR *)はすべての構成で同じです。構成に依存するディレクトリに作成されるいくつかのアーチファクト(ライブラリや実行可能ファイルなど)があります。 – Tsyvarev

答えて

4

書いている時点(012055-03-23)、CMakeLists.txtで作業ディレクトリを設定することはできません。ここではいくつかの回避策は以下のとおりです。

this bug reportによるとlaunch.vs.json

を使用して、あなたのデバッグと起動設定内の設定を追加することができます(右の関連CMakeLists.txtをクリックしてください)。これによりlaunch.vs.jsonファイルが開き、currentDir変数を使用して作業ディレクトリを追加できます。ここに例があります:

{ 
    "version": "0.2.1", 
    "defaults": {}, 
    "configurations": [ 
    { 
     "type": "default", 
     "project": "CMakeLists.txt", 
     "projectTarget": "path\\to\\target", 
     "name": "My Awesome Project", 
     "currentDir": "${workspaceRoot}/src" 
    } 
    ] 
} 

あなたが先に進み、そのファイルをチェックしてください。おそらく.vs/launch.vs.jsonに位置しています。

  • Visual C++ Team blog postを参照してください。しかし、currentDirは言及していません。
  • キーワードはすべて異なっていますが、Visual Studio Codeで使用される構文と非常によく似ています。たとえば、VSCodeはcurrentDirの代わりにcwdを使用します。​​

    でCMakeの> = 3.8.0を使用して

も参照してください:Does CMake offer a method to set the working directory for a given build system to use when running/debugging the project?

​​が新しいCMakeのバージョン3.8.0にプロパティをターゲットです。このようにそれを設定します。

set_target_properties(
    MyProject PROPERTIES 
    VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin") 

にCMakeのバージョンは、2017年が3.6であるVisual Studioに統合ので、あなたが.sln/.vcxprojファイルは、Visual Studioで開いているソリューションを、生成する、スタンドアロンCMakeの古い方法を使用する必要があります。どのCMakeのとVisual Studioの船まで...に

待ちをリード> = 3.8.0

これが起こるとき、それは不明です。 the team are currently looking at updating to CMake 3.7だから、それはもっと長くなるでしょう。しかし、これが起きたときに​​プロパティをサポートする可能性があります。

+0

私のために 'launch.vs.json'が編集されました。 (Visual Studio 2017コミュニティ) – Felix

関連する問題