弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

msbuild Hoge.vcxproj /t:Rebuild /p:Configuration=Release /p:Platform="x64" update1

GUIで指が痛くなるくらい設定した後はmsbuildでプロジェクトファイルを指定してバッチ・リビルドw。

クロスコンパイル用とかx86やx64用とかいろいろあるw。
64ビットのDLL群をビルドしたいので 「VS2015 x64 Native Tools コマンド プロンプト」を起動して、
その環境のmsbuildでプロジェクトファイルを指定したリビルドをバッチ実行。

msbuild Hoge.vcxproj /t:Rebuild /p:Configuration=Release  /p:Platform="x64"
msbuild somewhere\Hoge.vcxproj /t:Rebuild /p:Configuration=Release  /p:Platform="x64"
msbuild C:\somewhere\Hoge.vcxproj /t:Rebuild /p:Configuration=Release  /p:Platform="x64"
WindowsにはLinuxのmake releaseみたいなリリースディレクトリ(/usr/local)みたいなデファクトがないので msbuildに「リリース」ディレクトリにコピーする機能がない。なのでmake distcleanみたいな機能もないw。 厨坊のシステムみたいで、ひじょーにおもしろい。

Cygwinでバッチビルドする.batファイルを作成w。それを例のコマンドプロンプトで実行。

#!/bin/sh

TARGET="hgq_build.bat"

echo "@echo off" >$TARGET

find . -name "*.vcxproj" -print|while read L
do
        PRJ=`cygpath --dos $L`
        echo "msbuild ${PRJ} /t:Rebuild /p:Configuration=Release /p:Platform=\"x64\"" >>$TARGET
        D=`dirname $L`
        B=`basename $L .vcxproj`
        if [ -f $D/Release/$B.lib ]; then
                F=`cygpath --dos $D/Release/$B.lib`
                echo copy ${F} lib\\${B}.lib >>$TARGET
        fi
done

cp ${TARGET} ${TARGET}.UTF8
nkf -s ${TARGET}.UTF8 > ${TARGET}
unix2dos ${TARGET}
こんなかんじでmsbuildを書いた.batファイルを生成して約40個のプロジェクトをまとめてビルドw。

stackoverflow.com→How do I specify the platform for MSBuild?

投稿されたコメント:

コメント
コメントは無効になっています。