You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
253 lines
9.1 KiB
HTML
253 lines
9.1 KiB
HTML
<html>
|
|
<style>
|
|
body {
|
|
background : skyblue ;
|
|
}
|
|
h1,h3 {
|
|
margin : 3px;
|
|
margin-left : 0px;
|
|
color : #ee4646;
|
|
}
|
|
th {
|
|
background : blue;
|
|
color : yellow;
|
|
text-align : right;
|
|
border : 2px solid white;
|
|
padding : 4px;
|
|
padding-left: 20px;
|
|
}
|
|
.go {
|
|
background : lightgreen;
|
|
border : 4px solid black;
|
|
color : blue;
|
|
text-align : center;
|
|
}
|
|
|
|
a {
|
|
color : black;
|
|
line-height : 0px ;
|
|
text-decoration : none;
|
|
}
|
|
a:hover { background-color : cyan ; }
|
|
</style>
|
|
|
|
<script>
|
|
// global variables
|
|
var checked = { macosx:0 , linux:0 , cygwin:0 , mingw:0 , '2005':0 // platforms
|
|
, shared:0 , native:0 , expat:0 , zlib:0 , xmp:0 // libraries
|
|
, release:0, '64':0 , configure:0 , tests:0 // build and test
|
|
};
|
|
var selected = { head: 0 , trunk:0 };
|
|
var inputs = false;
|
|
var options = false;
|
|
|
|
function reset() { // set defaults
|
|
// first time, initialize the globals
|
|
if ( !inputs ) {
|
|
inputs = document.getElementsByTagName('input');
|
|
options = document.getElementsByTagName('option');
|
|
document.getElementById("build").onclick=build
|
|
document.getElementById("reset").onclick=reset
|
|
}
|
|
for ( var i = 0 ; i < inputs.length ; i++ ) {
|
|
var input = inputs[i];
|
|
input.checked=input.name in checked ;
|
|
}
|
|
for ( var i = 0 ; i < options.length ; i++ ) {
|
|
var option = options[i];
|
|
option.selected=option.value in selected ;
|
|
}
|
|
e();
|
|
}
|
|
|
|
function build() { // user pressed "build"
|
|
var E = e();
|
|
var OK = E < 60 ;
|
|
if ( !OK ) OK = confirm("Build is longer that 60 minutes\nAre you sure?");
|
|
if ( OK ) {
|
|
alert("build not implemented yet");
|
|
}
|
|
}
|
|
|
|
function t(n) { // test input name checked
|
|
var result = 0 ;
|
|
for ( var i = 0 ; i < inputs.length ; i++ ) {
|
|
var input = inputs[i];
|
|
if ( input.name == n )
|
|
if ( input.checked ) result++;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function s(n) { // set input name to checked
|
|
for ( var i = 0 ; i < inputs.length ; i++ ) {
|
|
var input = inputs[i];
|
|
for ( var N = 0 ; N < n.length ; N++ )
|
|
if ( input.name == n[N] )
|
|
input.checked = true;
|
|
}
|
|
}
|
|
|
|
function e() { // estimate the build time in minutes
|
|
var E = 0; // estimate of build time
|
|
var B = 1; // number of builds
|
|
|
|
// set required libraries
|
|
if ( t('xmp' ) ) s(['expat']);
|
|
if ( t('webready') ) s(['curl','libssh','openssl']);
|
|
|
|
// estimate MSVC
|
|
var m = t('2003') + t('2005') + t('2008') + t('2010') + t('2012') + t('2013') + t('2015'); // msvc builds
|
|
var M = 4; // msvc build time
|
|
if ( t('curl' ) ) M += 5;
|
|
if ( t('libssh' ) ) M += 1;
|
|
if ( t('openssl') ) M += 15;
|
|
E += M * m;
|
|
|
|
// platforms
|
|
if ( t('macosx') || t('linux') ) E += 2;
|
|
if ( t('mingw' ) ) E += 4;
|
|
if ( t('cygwin') ) E += 3;
|
|
|
|
// tests
|
|
if ( t('tests') ) E *= 1.1;
|
|
if ( t('teste') ) E *= 1.1;
|
|
if ( t('testx') ) E *= 1.2;
|
|
if ( t('testv') ) E *= 1.1;
|
|
if ( t('testvw') ) E *= 1.1;
|
|
|
|
// types of build
|
|
B *= t('64') + t('32'); // bits
|
|
B *= t('cmake') + t('configure'); // build environment
|
|
B *= t('shared') + t('static'); // type of build
|
|
B *= t('native') + t('clang'); // compiler
|
|
B *= t('release') + t('debug'); // configuration
|
|
|
|
// overall estimate
|
|
E *= B;
|
|
|
|
// enable/disable "build"
|
|
document.getElementsByName('estimate')[0].innerHTML = Math.round(E).toString();
|
|
document.getElementsByName('build' )[0].disabled = E == 0 ;
|
|
|
|
// disable "reset"
|
|
var disabled = true ;
|
|
for ( var i = 0 ; disabled && i < inputs.length ; i++ )
|
|
if ( inputs[i].checked )
|
|
disabled = inputs[i].name in checked;
|
|
for ( var i = 0 ; disabled && i < options.length ; i++ )
|
|
if ( options[i].selected )
|
|
disabled = options[i].value in selected;
|
|
document.getElementsByName('reset' )[0].disabled = disabled;
|
|
|
|
return E;
|
|
}
|
|
|
|
</script>
|
|
|
|
<header>
|
|
<title>Exiv2 Build Server</title>
|
|
</header>
|
|
<body onload="reset()">
|
|
|
|
<table><tr>
|
|
<td><img style="padding:10px;" src="Exiv2Logo.png"></td>
|
|
<td><table>
|
|
<tr><td valign="baseline"><h1>Build Server</h1></td>
|
|
<tr><td><a target="_blank" href="http://exiv2.dyndns.org:8080">http://exiv2.dyndns.org:8080</a></td>
|
|
<tr><td valign="baseline"><h3>Website:</h3></td></tr>
|
|
<tr><td><a target="_blank" href="http://exiv2.org">http://exiv2.org</a></td>
|
|
<tr><td valign="baseline"><h3>Wiki:</h3></td></tr>
|
|
<tr><td><a target="_blank" href="http://dev.exiv2.org/projects/exiv2/wiki">http://dev.exiv2.org/projects/exiv2/wiki</a></td>
|
|
</tr></table>
|
|
</td></tr></table>
|
|
|
|
<table padding="12" border="0">
|
|
<tr><td colspan=10><hr></td></tr>
|
|
<tr>
|
|
<th>Branch:</th><td><select onclick="e()">
|
|
<option value="conversions" >Conversions</option>
|
|
<option value="jenkins" >Jenkins</option>
|
|
<option value="trunk" >Trunk</option>
|
|
<option value="videowrite" >Videowrite</option>
|
|
<option value="videorefactoring">Videow-refactoring</option>
|
|
</select></td>
|
|
<th>Revision:</th>
|
|
<td><select onclick="e()">
|
|
<option value="head">HEAD</option>
|
|
<option value="revision">Revision...</option>
|
|
<option value="date">Date...</option>
|
|
</select></td>
|
|
<th>Email: </th>
|
|
<td colspan="3"><input name="email" type="text" size="40" name="email"></td>
|
|
<th colspan="2" class="go">
|
|
Estimate: <span name="estimate">8</span> minutes
|
|
<br><button type="button" id="build" name="build">Build</button>
|
|
<br><button type="button" id="reset" name="reset">Reset</button>
|
|
</th>
|
|
</tr>
|
|
<tr><td colspan=10><hr></td></tr>
|
|
<tr>
|
|
<th>Library:</th>
|
|
<td><input type="checkbox" onclick="e()" name="shared" >shared/dll</input>
|
|
<br><input type="checkbox" onclick="e()" name="static" >static</input>
|
|
</td>
|
|
<th>Bits:</th>
|
|
<td><input type="checkbox" onclick="e()" name="64" >64</input>
|
|
<br><input type="checkbox" onclick="e()" name="32" >32</input>
|
|
</td>
|
|
<th>Build<br>Environment:</th>
|
|
<td><input type="checkbox" onclick="e()" name="configure">configure</input>
|
|
<br><input type="checkbox" onclick="e()" name="cmake" >cmake</input>
|
|
</td>
|
|
<th>Kind:</th>
|
|
<td><input type="checkbox" onclick="e()" name="release" >release</input>
|
|
<br><input type="checkbox" onclick="e()" name="debug" >debug</input>
|
|
</td>
|
|
<th>Compiler:</th>
|
|
<td><input type="checkbox" onclick="e()" name="native" >platform</input>
|
|
<br><input type="checkbox" onclick="e()" name="clang" >clang </input>
|
|
</td>
|
|
</tr>
|
|
<tr><td colspan=10><hr></td></tr>
|
|
<tr>
|
|
<th>Platform:</th>
|
|
<td><input type="checkbox" onclick="e()" name="linux" >linux</input>
|
|
<br><input type="checkbox" onclick="e()" name="macosx" >macos-x</input>
|
|
<br><input type="checkbox" onclick="e()" name="cygwin" >cygwin</input>
|
|
<br><input type="checkbox" onclick="e()" name="mingw" >mingw</input>
|
|
</td>
|
|
<th>MSVC:</th>
|
|
<td><input type="checkbox" onclick="e()" name="2003" >2003</input>
|
|
<br><input type="checkbox" onclick="e()" name="2005" >2005</input>
|
|
<br><input type="checkbox" onclick="e()" name="2008" >2008</input>
|
|
<br><input type="checkbox" onclick="e()" name="2010" >2010</input>
|
|
<br><input type="checkbox" onclick="e()" name="2012" >2012</input>
|
|
<br><input type="checkbox" onclick="e()" name="2013" >2013</input>
|
|
<br><input type="checkbox" onclick="e()" name="2015" >2015</input>
|
|
</td>
|
|
<th>Link:</th>
|
|
<td><input type="checkbox" onclick="e()" name="zlib" >zlib</input>
|
|
<br><input type="checkbox" onclick="e()" name="expat" >expat</input>
|
|
<br><input type="checkbox" onclick="e()" name="curl" >curl</input>
|
|
<br><input type="checkbox" onclick="e()" name="libssh" >libssh</input>
|
|
<br><input type="checkbox" onclick="e()" name="openssl" >openssl</input>
|
|
</td>
|
|
<th>Options: </th>
|
|
<td><input type="checkbox" onclick="e()" name="xmp" >xmp</input>
|
|
<br><input type="checkbox" onclick="e()" name="webready" >webready</input>
|
|
<br><input type="checkbox" onclick="e()" name="video" >video</input>
|
|
<br><input type="checkbox" onclick="e()" name="nls" >localization</input>
|
|
</td>
|
|
<th>Tests: </th>
|
|
<td><input type="checkbox" onclick="e()" name="tests" >tests</input>
|
|
<br><input type="checkbox" onclick="e()" name="teste" >teste</input>
|
|
<br><input type="checkbox" onclick="e()" name="testx" >testx</input>
|
|
<br><input type="checkbox" onclick="e()" name="testv" >testv</input>
|
|
<br><input type="checkbox" onclick="e()" name="testvw" >testvw</input>
|
|
</td>
|
|
</tr>
|
|
<tr><td colspan=10><hr></td></tr>
|
|
</table>
|
|
</body>
|
|
</html> |