Building PJSIP on VS2010

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here goes the script. Copy it to the pjproject directory and run:
C:\PHP\php.exe _pj_rm_mobile.php

Vali


Dne 5.4.2013 13:52, yujian221 napsal(a):
> Please post your script.  Thank you.
>
>
>
> ? 2013/4/5 19:27, Tom?? Valenta ??:
>> Hi,
>>
>> I build PJSIP libraries with VS2010 and it works. Removing mobile
>> targets from the project files is not a big deal. I wrote a script
>> that does that for you. I can post it if someone interested.
>>
>> Cheers,
>> - Vali
>>
>>
>> Dne 5.4.2013 12:44, Federico Zamperini napsal(a):
>>>  From http://trac.pjsip.org/repos/wiki/Getting-Started/Windows:
>>> Note: Microsoft Visual Studio 2010 is currently unsupported.
>>> this is because Visual Studio 2010 importer for our VS2005 solution
>>> files is broken. Use Visual Studio 2012 instead.
>>>
>>> If I recall correctly, I installed VS2012 (express) just to import the
>>> VS2005 solution files, then opened them with VS2010  (I ignored the
>>> warning about "Solution folders" not supported) and compiled.
>>> I had problems with ffmpeg version (the latest didn't work), but in the
>>> end I managed to build pjproject 2.0.1 with VS2010.
>>>
>>> Federico
>>>
>>> Il 05/04/2013 12:21, Vijendra Khemnar ha scritto:
>>>> Hi,
>>>>
>>>> Can anybody please tell me if there is any way to build PJSIP
>>>> library in
>>>> Visual Studio 2010.
>>>>
>>>> Its very urgent.
>>>>
>>>> Thanks & Regards,
>>>>
>>>> Vijendra Khemnar
>>>>
>>>> Software Engineer |+919960054426 | www.talentica.com
>>>> <http://www.talentica.com/> | Talentica Software (I) Pvt Ltd
>>>>
>>>> *Winner: Top 50 Best Places to Work For in India, 2010 - Great Place to
>>>> Work? Institute*
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>>
>>>>
>>>> Nessun virus nel messaggio.
>>>> Controllato da AVG - www.avg.com <http://www.avg.com>
>>>> Versione: 2013.0.2904 / Database dei virus: 2641/6207 - Data di
>>>> rilascio: 27/03/2013
>>>> Database dei virus interno non ? aggiornato.
>>>>
>>>
>>> _______________________________________________
>>> 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
>>
>>
>> _______________________________________________
>> 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
>
>
> _______________________________________________
> 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 --------------
#!/usr/bin/php -n
<?php

function process_dir($dir)
{
	if (substr($dir, -1) !== DIRECTORY_SEPARATOR)
		$dir .= DIRECTORY_SEPARATOR;
	$d = opendir($dir);
	while (($f = readdir($d)) !== false) {
		if ($f[0] === ".") continue;
		$f = $dir . $f;
		if (is_dir($f)) {
			if (preg_match("/\\Wthird_party\\W(BaseClasses|portaudio)\$/i", $f))
				continue;
			process_dir($f);
		} elseif (preg_match("/\\.sln\$/i", $f))
			fix_sln($f);
		elseif (preg_match("/\\.vcproj\$/i", $f))
			fix_proj($f);
	}
	closedir($d);
}


function fix_sln($fn)
{
	echo $fn, PHP_EOL;
	$sln = '';
	$f = fopen($fn, "rb");  // b: preserve line endings
	while (($ln = fgets($f)) !== false) {
		if (preg_match("/^\\s*build\\\\vs\\\\pjproject-vs8-wm/", $ln))
			continue;
		if (preg_match("/^\\s*(\\{[\\dA-Fa-f-]+\\}\\.)?(Debug|Release)(-Dynamic|-Static)?\\|(?!Win32)/", $ln))
			continue;
		if (preg_match("/\\.(ActiveCfg|Build\\.\\d+)\\s*=\\s*(Debug|Release)(-Dynamic|-Static)?\\|(?!Win32)\$/", $ln))
			continue;
		$sln .= $ln;
	}
	fclose($f);
	file_put_contents($fn, $sln);
}


function fix_proj($fn)
{
	echo $fn, PHP_EOL;
	$doc = new DOMDocument;
	$doc->load($fn);
	$platforms = $doc->getElementsByTagName("Platform");
	for ($i = $platforms->length - 1; $i >= 0; $i--) {
		$p = $platforms->item($i);
		if ($p->getAttribute("Name") != "Win32")
			$p->parentNode->removeChild($p);
	}
	$configurations = $doc->getElementsByTagName("Configuration");
	for ($i = $configurations->length - 1; $i >= 0; $i--) {
		$c = $configurations->item($i);
		if (!preg_match("/\\|Win32\$/", $c->getAttribute("Name")))
			$c->parentNode->removeChild($c);
	}
	$fileConfigurations = $doc->getElementsByTagName("FileConfiguration");
	for ($i = $fileConfigurations->length - 1; $i >= 0; $i--) {
		$fc = $fileConfigurations->item($i);
		if (!preg_match("/\\|Win32\$/", $fc->getAttribute("Name")))
			$fc->parentNode->removeChild($fc);
	}
	$proj = $doc->saveXML();
	$f = fopen($fn, "wt");  // t: platform-specific line endings
	fwrite($f, $proj);
	fclose($f);
}


process_dir(realpath("."));
?>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux