This is great. I'll make sure to refer to this whenever someone ask for VS 2010 support. Thanks! Best regards, Benny On Sat, Feb 11, 2012 at 12:21 AM, Miljenko Cvjetko < mcvjetko at holisticware.net> wrote: > Howdy > > OK. I guess this is solved: > > Visual Studio 2010 VC++ Solution Conversion HowTo Perequisites - Tools > > - XSLT Trafo utility (msxsl.exe) > For changing/replacing/deleting nodes in XML config files of Visual > Studio > TODO: saxon? > - SED (MSDOS port) > for replacements in files > > Steps old - manual what was done! > > 1. Download sources or grab our zip with everything in it. > 2. Unzip sources with 01-unzip-sources.bat > 3. Backup C/C++ project files with 02-backup-vcproj-files.bat > > foreach (File f = *.vcrpoj in folders) > { > copy(f, f.mc++.vcproj); > } > > > 4. Visual Studio 2010 does not support Mobile platforms (Windows > Mobile 5,6, Pocket PC and Smartphone) so remove those from > with the help of XSLT transformation > > remove-mobile-dependencies.xslt > requirements: c:\bin\msxsl.exe > > > 5. Prepare PJSIP for conversion and compilation > - Conversion: > - Compilation: > > copies > config-site-sample.h > to > config-site.h > > > > Conversion > > 1. pjproject-vs8-common-defaults.vsprops - does not contain: > > <UserMacro > Name="TargetCPU" > Value="i386" > /> > > > like > pjproject-vs8-win32-common-defaults.vsprops > Causes Wranings: > > MSB4211: > .\PJSIP\pjproject-1.12\build\vs\pjproject-vs8-win32-common-defaults.props; > The property "TargetCPU" is being set to a value for the first time, but it was already consumed at > ".\PJSIP\pjproject-1.12\build\vs\pjproject-vs8-common-defaults.props". > > > 2. Well known conversion issue and Warning MSB8012 has turned out as > non-problematic! > http://blogs.msdn.com/b/vcblog/archive/2010/03/02/visual-studio-2010-c-project-upgrade-guide.aspx > > > MSB8012: > $(TargetPath) ('.\PJSIP\pjproject-1.12\third_party\build\gsm\.\output\libgsmcodec--Win32-vc8-Debug\libgsmcodec.lib') > does not match the Librarian's OutputFile property value '..\..\lib\libgsmcodec-i386-Win32-vc8-Debug.lib' > ('.\SIP\lib\libgsmcodec-i386-Win32-vc8-Debug.lib') in project configuration 'Debug|Win32'. > This may cause your project to build incorrectly. > To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Lib.OutputFile). > > > > Compilation and Linking > > 1. DirectX SDK libray path: > 1. PJSIP 1.12 > Problem - Linker Error: > > Error 78 error LNK1181: cannot open input file 'dxguid.lib' D:\SRC\HolisticWare\HolisticWare_VoIP\PJSIP\pjproject-1.12\pjsip-apps\ > build\LINK sample_debug > Error 79 error MSB6006: "link.exe" exited with code 1181. C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets 275 6 sample_debug > > > Solution/Workaround: > change > - Property Pages/Linker/General/Additional Library Directories: > from: > to: "C:\Program Files\Microsoft DirectX SDK (March 2009)\Lib\x86" > For projects: > - pjmedia_test > - pjsua > - pjsip_test > - Property Pages/Configuration Properties/VC++ > Directories/Library Directories: > from: $(LibraryPath) > to: $(LibraryPath);"C:\Program Files\Microsoft DirectX SDK > (March 2009)\Lib\x86" > For projects: > - samples > - sample_debug > - pjsystest > - PJSIP 2.0 Beta > Problem - Linker Error: > > Error 80 error LNK1104: cannot open file 'dxguid.lib' D:\SRC\HolisticWare\HolisticWare_VoIP\PJSIP\pjproject-2.0-beta\pjsip-apps\ > build\LINK samples > Error 82 error MSB3073: The command "nmake /NOLOGO /S /f Samples-vc.mak BUILD_MODE=debug VC_VER=8 /a" exited with code 2. C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets 43 6 samples > Error 81 error U1077: '"c:\Program Files\Microsoft Visual Studio 10.0\VC\bin\cl.EXE"' : return code '0x2' D:\SRC\HolisticWare\HolisticWare_VoIP\PJSIP\pjproject-2.0-beta\pjsip-apps\build\NMAKE samples > > > Solution/Workaround: > change > - Property Pages/Linker/General/Additional Library > Directories: > from: > to: "C:\Program Files\Microsoft DirectX SDK (March > 2009)\Lib\x86" > For projects: > - sample_debug > - Property Pages/Configuration Properties/VC++ > Directories/Library Directories: > from: $(LibraryPath) > to: $(LibraryPath);"C:\Program Files\Microsoft DirectX SDK > (March 2009)\Lib\x86" > For projects: > - samples > - pjsua > - pjsip_test > - pjsua > - pjmedia_test > - pjsystest > > Steps - automagic explained > > File list and steps to convert (just start batch files in this order): > > 1. 01-unzip-sources.bat > Hard to say what it does > > echo off > > set ZIP=c:\bin\7za.exe x > > %ZIP% pjproject-1.12.zip > %ZIP% pjproject-2.0-beta.zip > > pause > > > 2. 02-backup-vcproj-files.bat > Backing up *.vcproj files before import/conversion > > @echo off > > setlocal EnableDelayedExpansion > > set SED=c:\bin\sed.exe > > FOR /F "tokens=*" %%s IN ('dir /s /b *.vcproj') DO ( > echo ======================================================================= > set FILENAME_PATH_VCPROJ=%%s > set FILENAME=%%~ns > set FILENAME_W_EXT=%%~nxs > set PATH=%%~ps > > echo FILENAME_PATH_VCPROJ=%%s > echo FILENAME=%%~ns > echo FILENAME_W_EXT=%%~nxs > echo PATH=%%~ps > echo ------------------------------------------------- > set BACKUP=!FILENAME_PATH_VCPROJ:.vcproj=.vcproj.mc++.bckp! > > echo BACKUP=!BACKUP! > > echo !FILENAME_PATH_VCPROJ! > echo !BACKUP! > > del !BACKUP! > type !FILENAME_PATH_VCPROJ!> !BACKUP! > > ) > > dir /s /b *.vcproj > > dir /s /b *.bckp > > pause > > > 3. 03-remove-mobile-platforms-from-vcproj-files.bat > Batch script that collects .vcproj files and applies XSLT trafo on > them using msxsl.exe > > @echo off > > setlocal EnableDelayedExpansion > > ::TODO: saxon > set XSLT_TRAFO_UTIL=c:\bin\msxsl.exe > set XSLT_TRAFO=.\03-remove-mobile-platforms-from-vcproj-files.xslt > > > FOR /F "tokens=*" %%s IN ('dir /s /b *.vcproj') DO ( > echo ======================================================================= > set FILENAME_PATH_VCPROJ=%%s > set FILENAME=%%~ns > set FILENAME_W_EXT=%%~nxs > set PATH=%%~ps > > echo FILENAME_PATH_VCPROJ=%%s > echo FILENAME=%%~ns > echo FILENAME_W_EXT=%%~nxs > echo PATH=%%~ps > echo ------------------------------------------------- > > echo !FILENAME_PATH_VCPROJ! > !XSLT_TRAFO_UTIL! ^ > !FILENAME_PATH_VCPROJ! ^ > !XSLT_TRAFO! ^ > -o !FILENAME_PATH_VCPROJ! > > > ) > > pause > > > 4. 03-remove-mobile-platforms-from-vcproj-files.xslt > Actual XSLT > > <?xml version="1.0" encoding="utf-8"?> > <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <http://www.w3.org/1999/XSL/Transform> > xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" > > > <!--<xsl:output method="xml" indent="yes"/>--> > > <!-- > --> > <xsl:template match="@* | node()"> > <xsl:copy> > <xsl:apply-templates select="@* | node()"/> > </xsl:copy> > </xsl:template> > > <!--<xsl:template match="AA"> > <xsl:copy> > <xsl:apply-templates select="*[. = 'bar']"/> > </xsl:copy> > </xsl:template>--> > > > <!-- > Empty templates - swallowing nodes > --> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug|Windows Mobile 6 Standard SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug|Windows Mobile 6 Professional SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug|Pocket PC 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug|Smartphone 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Debug%7CWindowsMobile5.0PocketPCSDK%28ARMV4I%29%27%5D>/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Debug%7CWindowsMobile5.0SmartphoneSDK%28ARMV4I%29%27%5D>/> > > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release|Windows Mobile 6 Standard SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release|Windows Mobile 6 Professional SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release|Pocket PC 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release|Smartphone 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Release%7CWindowsMobile5.0PocketPCSDK%28ARMV4I%29%27%5D>/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Release%7CWindowsMobile5.0SmartphoneSDK%28ARMV4I%29%27%5D>/> > > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Static|Windows Mobile 6 Standard SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Static|Windows Mobile 6 Professional SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Static|Pocket PC 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Static|Smartphone 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Static|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Debug-Static%7CWindowsMobile5.0PocketPCSDK%28ARMV4I%29%27%5D>/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Static|Windows Mobile 5.0 Smartphone SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Debug-Static%7CWindowsMobile5.0SmartphoneSDK%28ARMV4I%29%27%5D>/> > > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Dynamic|Windows Mobile 6 Standard SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Dynamic|Windows Mobile 6 Professional SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Dynamic|Pocket PC 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Dynamic|Smartphone 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Dynamic|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Debug-Dynamic%7CWindowsMobile5.0PocketPCSDK%28ARMV4I%29%27%5D>/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Debug-Dynamic|Windows Mobile 5.0 Smartphone SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Debug-Dynamic%7CWindowsMobile5.0SmartphoneSDK%28ARMV4I%29%27%5D>/> > > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Dynamic|Windows Mobile 6 Standard SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Dynamic|Windows Mobile 6 Professional SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Dynamic|Pocket PC 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Dynamic|Smartphone 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Dynamic|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Release-Dynamic%7CWindowsMobile5.0PocketPCSDK%28ARMV4I%29%27%5D>/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Dynamic|Windows Mobile 5.0 Smartphone SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Release-Dynamic%7CWindowsMobile5.0SmartphoneSDK%28ARMV4I%29%27%5D>/> > > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Static|Windows Mobile 6 Standard SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Static|Windows Mobile 6 Professional SDK (ARMV4I)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Static|Pocket PC 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Static|Smartphone 2003 (ARMV4)']"/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Static|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Release-Static%7CWindowsMobile5.0PocketPCSDK%28ARMV4I%29%27%5D>/> > <xsl:template match="/VisualStudioProject/Configurations/Configuration[@Name='Release-Static|Windows Mobile 5.0 Smartphone SDK (ARMV4I)']" </VisualStudioProject/Configurations/Configuration%5B at Name=%27Release-Static%7CWindowsMobile5.0SmartphoneSDK%28ARMV4I%29%27%5D>/> > </xsl:stylesheet> > > > 5. 04-pjsip-prepare.bat > Modifying (sedding with SED) .vsprops files (inserting xml needed to > silence some warnings) > Creating new Solutions that will be modified > Preparing for test compilation config_site.h > > @echo off > > > set SED=c:\bin\sed.exe > > echo============================================================================ > echo sed - inserting into pjproject-vs8-common-defaults.vsprops > echo to silence VS conversion warning MSB4211 > :: -i.bak backup extension for inline replacement > %SED% -f 04-pjsip-prepare-pjproject-vs8-common-defaults.vsprops.sed ^ > .\pjproject-1.12\build\vs\pjproject-vs8-common-defaults.vsprops ^ > >.\pjproject-1.12\build\vs\pjproject-vs8-common-defaults.vsprops.new > > %SED% -f 04-pjsip-prepare-pjproject-vs8-common-defaults.vsprops.sed ^ > .\pjproject-2.0-beta\build\vs\pjproject-vs8-common-defaults.vsprops ^ > >.\pjproject-2.0-beta\build\vs\pjproject-vs8-common-defaults.vsprops.new > > > echo copying backups etc... > type ^ > .\pjproject-1.12\build\vs\pjproject-vs8-common-defaults.vsprops ^ > >.\pjproject-1.12\build\vs\pjproject-vs8-common-defaults.vsprops.bak > > type ^ > .\pjproject-2.0-beta\build\vs\pjproject-vs8-common-defaults.vsprops ^ > >.\pjproject-2.0-beta\build\vs\pjproject-vs8-common-defaults.vsprops.bak > > type ^ > .\pjproject-1.12\build\vs\pjproject-vs8-common-defaults.vsprops.new ^ > >.\pjproject-1.12\build\vs\pjproject-vs8-common-defaults.vsprops > > type ^ > .\pjproject-2.0-beta\build\vs\pjproject-vs8-common-defaults.vsprops.new ^ > >.\pjproject-2.0-beta\build\vs\pjproject-vs8-common-defaults.vsprops > > echo============================================================================ > type ^ > .\pjproject-1.12\build\vs\pjproject-vs8-common-defaults.vsprops > > echo============================================================================ > echo Creating new Soultions > type ^ > pjproject-1.12\pjproject-vs8.sln ^ > >>pjproject-1.12\pjproject-vs10.sln > > type ^ > pjproject-2.0-beta\pjproject-vs8.sln ^ > >>pjproject-2.0-beta\pjproject-vs10.sln > > echo============================================================================ > echo Preparing files for Compilation (config_site.h) > type ^ > pjproject-2.0-beta\pjlib\include\pj\config_site_sample.h ^ > >>pjproject-2.0-beta\pjlib\include\pj\config_site.h > > type ^ > pjproject-1.12\pjlib\include\pj\config_site_sample.h ^ > >>pjproject-1.12\pjlib\include\pj\config_site.h > > echo============================================================================ > > set DEVENV="C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" > ::%DEVENV% pjproject-1.12\pjproject-vs10.sln > ::%DEVENV% pjproject-2.0-beta\pjproject-vs10.sln > > pause > > > 6. 04-pjsip-prepare-pjproject-vs8-common-defaults.vsprops.sed > > > Screenshots and zipped code: > > http://www.holisticware.net/HolisticWare/Know-How/development/visual-studio/visual-studio-2010-vcpp-solution-conversion-howto.aspx > > let me know if something is unclear or wrong.... > > regards > > mel > > > On 2012.02.07 06:19, J?rg Schwarzenberg wrote: > > Hi! > > How far is support for Visual Studio 2010? > > > On Sat, 22 Oct 2011 ruiyun.wen at gmail.com posted his vs2010 project files > for 1.10 in this mailing list. > > He said: "No completed test, but build fine." > > For the 2.x branch nothing has been posted yet. > > > Best Regards > J?rg > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing listpjsip at lists.pjsip.orghttp://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > -- > Miljenko Cvjetko dipl.ing. ET > Direktor/CEO > Projektant rje?enja/Solution Architect > Razvojni programer/Senior developer > Voditelj projekta/Project Manager > > IX ju?na obala 13 > Kajzerica Zagreb > T: 385 1 7775555 > M: 385 91 557 447 3 > F: 385 1 7779556 > e: mcvjetko at holisticware.net > w: http://www.holisticware.net > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20120216/6e5fe396/attachment-0001.html>