From: John Resig Date: Sun, 13 Aug 2006 18:58:58 +0000 (+0000) Subject: Made a bunch of changes to the build system. X-Git-Tag: 1.0~50 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=fc5ab8d6557884d275ba91795d208df635b6bff5;p=jquery.git Made a bunch of changes to the build system. --- diff --git a/Makefile b/Makefile index f949811aa..5b2cae8d9 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,10 @@ SRC_DIR = src BUILD_DIR = build -DOCS_DIR = docs -DIST_DIR = dist +PREFIX = . +DOCS_DIR = ${PREFIX}/docs +TEST_DIR = ${PREFIX}/test +DIST_DIR = ${PREFIX}/dist MODULES = jquery event fx ajax JQ = ${DIST_DIR}/jquery.js @@ -10,44 +12,63 @@ JQ_LITE = ${DIST_DIR}/jquery.lite.js JQ_PACK = ${DIST_DIR}/jquery.pack.js all: jquery lite pack docs + @@echo "jQuery build complete." ${DIST_DIR}: - mkdir -p ${DIST_DIR} + @@mkdir -p ${DIST_DIR} jquery: ${DIST_DIR} ${JQ} ${JQ}: - @@echo "Building" ${JQ}; + @@echo "Building" ${JQ} @@for f in ${MODULES}; do \ - echo "Adding module:" $$f;\ + echo " - Adding module:" $$f;\ cat ${SRC_DIR}/$$f/$$f.js >> ${JQ};\ done - @@echo ${JQ} "built."; + @@echo ${JQ} "built." + @@echo lite: ${JQ_LITE} -${JQ_LITE}: ${JQ} - @@echo "Building" ${JQ_LITE}; - java -jar ${BUILD_DIR}/js.jar ${BUILD_DIR}/lite.js ${JQ} ${JQ_LITE} - @@echo ${JQ_LITE} "built."; +${JQ_LITE}: jquery + @@echo "Building" ${JQ_LITE} + @@echo " - Removing ScriptDoc from" ${JQ} + @@java -jar ${BUILD_DIR}/js.jar ${BUILD_DIR}/lite.js ${JQ} ${JQ_LITE} + @@echo ${JQ_LITE} "built." + @@echo pack: ${JQ_PACK} -${JQ_PACK}: ${JQ} - @@echo "Building" ${JQ_PACK}; - java -jar ${BUILD_DIR}/js.jar ${BUILD_DIR}/build.js ${JQ} ${JQ_PACK} - @@echo ${JQ_PACK} "built."; +${JQ_PACK}: jquery + @@echo "Building" ${JQ_PACK} + @@echo " - Compressing using Packer" + @@java -jar ${BUILD_DIR}/js.jar ${BUILD_DIR}/build.js ${JQ} ${JQ_PACK} + @@echo ${JQ_PACK} "built." + @@echo -test: +test: ${JQ} docs: ${JQ} - @@echo "Building Documentation"; - java -jar ${BUILD_DIR}/js.jar ${BUILD_DIR}/docs.js ${JQ} ${DOCS_DIR} - @@echo "Documentation built."; + @@echo "Building Documentation" + + @@echo " - Making Documentation Directory:" ${DOCS_DIR} + @@mkdir -p ${DOCS_DIR} + @@mkdir -p ${DOCS_DIR}/data + + @@echo " - Copying over script files." + @@cp -R ${BUILD_DIR}/docs/js ${DOCS_DIR}/js + + @@echo " - Copying over style files." + @@cp -R ${BUILD_DIR}/docs/style ${DOCS_DIR}/style + + @@echo " - Extracting ScriptDoc from" ${JQ} + @@java -jar ${BUILD_DIR}/js.jar ${BUILD_DIR}/docs.js ${JQ} ${DOCS_DIR} + + @@echo "Documentation built." + @@echo clean: - rm -rf ${DIST_DIR} - rm -f ${DOCS_DIR}/index.xml - rm -f ${DOCS_DIR}/data/* + @@rm -rf ${DIST_DIR} + @@rm -rf ${DOCS_DIR} diff --git a/build/build.js b/build/build.js deleted file mode 100644 index 8c622ec47..000000000 --- a/build/build.js +++ /dev/null @@ -1,5 +0,0 @@ -load("build/js/ParseMaster.js", "build/js/pack.js", "build/js/writeFile.js"); - -var out = readFile( arguments[0] ); - -writeFile( arguments[1], pack( out, 62, true, false ) ); diff --git a/build/build/build.js b/build/build/build.js new file mode 100644 index 000000000..8c622ec47 --- /dev/null +++ b/build/build/build.js @@ -0,0 +1,5 @@ +load("build/js/ParseMaster.js", "build/js/pack.js", "build/js/writeFile.js"); + +var out = readFile( arguments[0] ); + +writeFile( arguments[1], pack( out, 62, true, false ) ); diff --git a/build/docs.js b/build/docs.js deleted file mode 100644 index 8186f9ddd..000000000 --- a/build/docs.js +++ /dev/null @@ -1,96 +0,0 @@ -load("build/js/json.js", "build/js/xml.js", "build/js/writeFile.js"); - -var types = { - jQuery: "A jQuery object.", - Object: "A simple Javascript object. For example, it could be a String or a Number.", - String: "A string of characters.", - Number: "A numeric valid.", - Element: "The Javascript object representation of a DOM Element.", - Hash: "A Javascript object that contains key/value pairs in the form of properties and values.", - "Array<Element>": "An Array of DOM Elements.", - "Array<String>": "An Array of strings.", - Function: "A reference to a Javascript function." -}; - -var f = readFile(arguments[0]); - -var c = [], bm, m; -var blockMatch = /\/\*\*\s*((.|\n)*?)\s*\*\//g; -var paramMatch = /\@(\S+) *((.|\n)*?)(?=\n\@|!!!)/m; - -while ( bm = blockMatch.exec(f) ) { - block = bm[1].replace(/^\s*\* ?/mg,"") + "!!!"; - var ret = { params: [], examples: [] }; - - while ( m = paramMatch.exec( block ) ) { - block = block.replace( paramMatch, "" ); - - var n = m[1]; - var v = m[2] - .replace(/\s*$/g,"") - .replace(/^\s*/g,"") - .replace(/&/g, "&") - .replace(//g, ">") - .replace(/\n/g, "
") - /*.replace(/(\s\s+)/g, function(a){ - var ret = ""; - for ( var i = 0; i < a.length; i++ ) - ret += " "; - return ret; - })*/ || 1; - - if ( n == 'param' || n == 'any' ) { - var args = v.split(/\s+/); - v = args.slice( 2, args.length ); - v = { type: args[0], name: args[1], desc: v.join(' ') }; - if ( n == 'any' ) v.any = 1; - n = "params"; - } else if ( n == 'example' ) { - v = { code: v }; - n = "examples"; - } - - if ( n == 'desc' || n == 'before' || n == 'after' || n == 'result' ) { - ret.examples[ ret.examples.length - 1 ][ n ] = v; - } else { - if ( ret[ n ] ) { - if ( ret[ n ].constructor == Array ) { - ret[ n ].push( v ); - } else { - ret[ n ] = [ ret[ n ], v ]; - } - } else { - ret[ n ] = v; - } - } - } - - ret.desc = block.replace(/\s*!!!$/,"") - .replace(//g, ">"); - //.replace(/\n\n/g, "

") - //.replace(/\n/g, " "); - - var m = /^((.|\n)*?(\.|$))/.exec( ret.desc ); - if ( m ) ret['short'] = m[1]; - - if ( ret.name ) c.push( ret ); -} - -var json = Object.toJSON( c ); - -writeFile( arguments[1] + "/data/jquery-docs-json.js", json ); -writeFile( arguments[1] + "/data/jquery-docs-jsonp.js", "docsLoaded(" + json + ")" ); - -Object.toXML.force = { desc: 1, code: 1, before: 1, result: 1 }; - -var xml = Object.toXML( { method: c }, "docs" ); - -writeFile( arguments[1] + "/data/jquery-docs-xml.xml", - "\n" + xml ); - -writeFile( arguments[1] + "/index.xml", - "\n" + - "\n" + xml -); diff --git a/build/docs/docs.js b/build/docs/docs.js new file mode 100644 index 000000000..8186f9ddd --- /dev/null +++ b/build/docs/docs.js @@ -0,0 +1,96 @@ +load("build/js/json.js", "build/js/xml.js", "build/js/writeFile.js"); + +var types = { + jQuery: "A jQuery object.", + Object: "A simple Javascript object. For example, it could be a String or a Number.", + String: "A string of characters.", + Number: "A numeric valid.", + Element: "The Javascript object representation of a DOM Element.", + Hash: "A Javascript object that contains key/value pairs in the form of properties and values.", + "Array<Element>": "An Array of DOM Elements.", + "Array<String>": "An Array of strings.", + Function: "A reference to a Javascript function." +}; + +var f = readFile(arguments[0]); + +var c = [], bm, m; +var blockMatch = /\/\*\*\s*((.|\n)*?)\s*\*\//g; +var paramMatch = /\@(\S+) *((.|\n)*?)(?=\n\@|!!!)/m; + +while ( bm = blockMatch.exec(f) ) { + block = bm[1].replace(/^\s*\* ?/mg,"") + "!!!"; + var ret = { params: [], examples: [] }; + + while ( m = paramMatch.exec( block ) ) { + block = block.replace( paramMatch, "" ); + + var n = m[1]; + var v = m[2] + .replace(/\s*$/g,"") + .replace(/^\s*/g,"") + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/\n/g, "
") + /*.replace(/(\s\s+)/g, function(a){ + var ret = ""; + for ( var i = 0; i < a.length; i++ ) + ret += " "; + return ret; + })*/ || 1; + + if ( n == 'param' || n == 'any' ) { + var args = v.split(/\s+/); + v = args.slice( 2, args.length ); + v = { type: args[0], name: args[1], desc: v.join(' ') }; + if ( n == 'any' ) v.any = 1; + n = "params"; + } else if ( n == 'example' ) { + v = { code: v }; + n = "examples"; + } + + if ( n == 'desc' || n == 'before' || n == 'after' || n == 'result' ) { + ret.examples[ ret.examples.length - 1 ][ n ] = v; + } else { + if ( ret[ n ] ) { + if ( ret[ n ].constructor == Array ) { + ret[ n ].push( v ); + } else { + ret[ n ] = [ ret[ n ], v ]; + } + } else { + ret[ n ] = v; + } + } + } + + ret.desc = block.replace(/\s*!!!$/,"") + .replace(//g, ">"); + //.replace(/\n\n/g, "

") + //.replace(/\n/g, " "); + + var m = /^((.|\n)*?(\.|$))/.exec( ret.desc ); + if ( m ) ret['short'] = m[1]; + + if ( ret.name ) c.push( ret ); +} + +var json = Object.toJSON( c ); + +writeFile( arguments[1] + "/data/jquery-docs-json.js", json ); +writeFile( arguments[1] + "/data/jquery-docs-jsonp.js", "docsLoaded(" + json + ")" ); + +Object.toXML.force = { desc: 1, code: 1, before: 1, result: 1 }; + +var xml = Object.toXML( { method: c }, "docs" ); + +writeFile( arguments[1] + "/data/jquery-docs-xml.xml", + "\n" + xml ); + +writeFile( arguments[1] + "/index.xml", + "\n" + + "\n" + xml +); diff --git a/build/docs/style/docs.xsl b/build/docs/style/docs.xsl index 98b3ede90..4adac376f 100644 --- a/build/docs/style/docs.xsl +++ b/build/docs/style/docs.xsl @@ -6,10 +6,10 @@ jQuery Docs - API - + - +

jQuery Docs - API

diff --git a/build/lite.js b/build/lite.js new file mode 100644 index 000000000..bcfb096b1 --- /dev/null +++ b/build/lite.js @@ -0,0 +1,6 @@ +load("build/js/writeFile.js"); + +var blockMatch = /\s*\/\*\*\s*((.|\n)*?)\n*\*\/\s*/g; +var f = readFile(arguments[0]).replace( blockMatch, "" ); + +writeFile( arguments[1], f );