[pjsip] Visual Studio 2010 support

Benny Prijono bennylp at teluu.com
Thu Feb 16 01:01:03 EST 2012


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>


More information about the pjsip mailing list