'vcproj'에 해당되는 글 1건

  1. python/xmldiff 2010/02/07

python/xmldiff

Posted at 2010/02/07 14:33// Posted in python/pyutils
visual studio 의 vsproj 자동 변환기를 만들다가 두개의 vcproj 파일을 비교할 일이 있어서 검색해보았습니다.

http://www.logilab.org/859

두개의 XML 파일을 비교해서 어떤게 다른지 알려주는 파이썬 모듈입니다

설치할때 알아두셔야 할 것은

python setup.py install 로 안되고

python setup.py install_lib 으로 해야 한다는 점입니다.

제작자가 배치파일 하나를 빼먹은 것 같더군요.


ascii 나 utf8 이 아닌 xml 문서는 에러가 나기 때문에 미리 변환을 해줘야 하는데...
입력인자가 파일명이기 때문에 약간 손을 봐줘야 합니다.

수정보기..


사용예는 다음과 같습니다. 엄청난 개수의 파라미터의 압박에 대비하시는 게 좋습니다.

예제보기..


비교 결과는 아래처럼 나옵니다.
[append-first, /VisualStudioProject[1]/Files[1],
<File RelativePath=".\_corest.ini"/>
]
[insert-after, /VisualStudioProject[1]/Files[1]/File[3],
<File RelativePath=".\basepch.h"/>
]
[rename, /VisualStudioProject[1]/Configurations[1]/Configuration[1]/@OutputDirectory, LogilabXmldiffTmpAttrIntermediateDirectory]
[append, /VisualStudioProject[1]/Configurations[1]/Configuration[1],
<@OutputDirectory>
../lib/x86/vc90
</OutputDirectory>
]
[rename, /VisualStudioProject[1]/Configurations[1]/Configuration[2]/@OutputDirectory, LogilabXmldiffTmpAttrIntermediateDirectory]
[append, /VisualStudioProject[1]/Configurations[1]/Configuration[2],
<@OutputDirectory>
../lib/x86/vc90
</OutputDirectory>
]
[update, /VisualStudioProject[1]/Configurations[1]/Configuration[1]/@LogilabXmldiffTmpAttrIntermediateDirectory, ../obj/$(ProjectName)_x86_vc90_$(Configuration)
]
[update, /VisualStudioProject[1]/Configurations[1]/Configuration[1]/@Name, mtd|Win32]
[append, /VisualStudioProject[1]/Configurations[1]/Configuration[1]/Tool[6],
<@PrecompiledHeaderThrough>
$(ProjectName)pch.h
</PrecompiledHeaderThrough>
]
[append, /VisualStudioProject[1]/Configurations[1]/Configuration[1]/Tool[10],
<@OutputFile>
$(OutDir)\$(ProjectName)_x86_vc90_$(ConfigurationName).lib
</OutputFile>
]
[update, /VisualStudioProject[1]/Configurations[1]/Configuration[2]/@LogilabXmldiffTmpAttrIntermediateDirectory,
../obj/$(ProjectName)_x86_vc90_$(Configuration)
]
[update, /VisualStudioProject[1]/Configurations[1]/Configuration[2]/@Name, mt|Win32]
[append, /VisualStudioProject[1]/Configurations[1]/Configuration[2]/Tool[6],
<@PrecompiledHeaderThrough>
$(ProjectName)pch.h
</PrecompiledHeaderThrough>
]
[update, /VisualStudioProject[1]/Files[1]/File[3]/@RelativePath, .\basepch.cpp]
[update, /VisualStudioProject[1]/Files[1]/File[5]/@RelativePath, .\ReadMe.txt]
[update, /VisualStudioProject[1]/Files[1]/File[3]/FileConfiguration[1]/@Name, mtd|Win32]
[update, /VisualStudioProject[1]/Files[1]/File[3]/FileConfiguration[2]/@Name, mt|Win32]
[remove, /VisualStudioProject[1]/Configurations[1]/Configuration[1]/@IntermediateDirectory]
[remove, /VisualStudioProject[1]/Configurations[1]/Configuration[2]/@IntermediateDirectory]
[remove, /VisualStudioProject[1]/Files[1]/File[2]]
[rename, //LogilabXmldiffTmpAttrIntermediateDirectory, IntermediateDirectory]
꽤 유용하다는~ : )
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/02/07 14:33 2010/02/07 14:33