実行可能ファイルであるソリューション内のすべてのプロジェクトのvcxprojファイルに沿ってvcxproj.userファイルを生成するようにデフォルトのVisual Studio Gradle Pluginタスクをカスタマイズしようとしていますライブラリをスキップする)。vcxproj.userを生成するためにGradle Visual Studioプラグインをカスタマイズする
考え方はGenerateProjectFileTask型のタスクを見つけ、実行可能なバイナリ(この部分は私がまだやっていない方法)を表すものだけをフィルタリングし、finalizedBy節を使ってそれらのタスクを実行させるというものでした。 .userファイルも生成されます。
私のプロジェクトはカスタムWorking Directory
のパスを持っているので、これが必要です。新しいソースファイルなどを追加するたびにプロジェクトを再生成しなければなりません。実行可能ファイル。これはかなり迷惑です。私はこれまでやろうとした何
は
subprojects {
// every proejct with plugin cpp also uses visual-studio plugin
plugins.withId('cpp') {
afterEvaluate {
tasks.withType(GenerateProjectFileTask) { task ->
def project = task.getVisualStudioProject()
if(project != null) {
println project.projectFile.location
}
else {
println "Project is null"
}
//println task.getOutputFile().getPath() <- this didnt work either
task.finalizedBy "someGeneratedTaskForEachProjectToCreateUserProperties"
}
}
}
}
だったが、それは常にProject is null
を印刷し、私は理由を理解していません。ファイルを生成する場所を知るためのパスが必要です。
また、最終化されたタスクが失敗したかどうかに関係なく常に実行されるため、finalizedBy節は嫌です。この問題の解決策はありますか?
私が達成したいのは、例えば、タスクを実行するときです:gradlew demoAppVisualStudio
ソリューションとすべての必要なプロジェクトだけでなく、生成されたタスクを実行可能ファイルとして作成して、追加のvcxproj.userファイルを作成する必要があります。内容は準備します(主に<LocalDebuggerWorkingDirectory>
部分)