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.
exiv2/website/html/buildServer.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:&nbsp;<span name="estimate">8</span>&nbsp;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>