mirror of
https://github.com/Hopiu/jquery-mobile.git
synced 2026-03-17 06:20:26 +00:00
- Internally, each plugin self-initializes by binding to the pagecreate event. - Unit tests have been added and adjusted to support some internal changes involved in this commit. - In the process, the portions of the page plugin that were used to enhance the header,content,and footer sections of a native-app style page layout are now located in jquery.mobile.page.sections.js. - No public API options have changed, except that the page plugin no longer has options for keepNative, and degradeInputs, as plugins now handle these internally (keepNative was never documented, and degradeInputs only affected slider, so it lives there now. Page options related to the page sections are now located in the page.sections script, but they are still configurable via the page plugin's options api. - Make, Ant, and index files are updated with a new load order for all JS files.
203 lines
8.3 KiB
Makefile
203 lines
8.3 KiB
Makefile
# The system generated date in YYYYMMDD format
|
|
DATE = $(shell date "+%Y%m%d")
|
|
|
|
# The version according to the source file. If this is the nightly build, use a different version
|
|
VER = $(shell cat version.txt)
|
|
|
|
# The command to replace the @VERSION in the files with the actual version
|
|
SED_VER = sed "s/@VERSION/$(shell git log -1 --format=format:" Git Build\n * Git Info SHA1: %H Date: %cd")/"
|
|
deploy: SED_VER = sed "s/@VERSION/${VER}/"
|
|
|
|
# The version of jQuery core used
|
|
JQUERY = $(shell grep Library js/jquery.js | sed s'/ \* jQuery JavaScript Library v//')
|
|
|
|
# The directory to create the zipped files in and also serves as the filenames
|
|
DIR = jquery.mobile-${VER}
|
|
nightly: DIR = jquery.mobile
|
|
|
|
# The output folder for the finished files
|
|
OUTPUT = compiled
|
|
|
|
# Command to remove the latest directory from the CDN before uploading, only if using latest target
|
|
RMLATEST = echo ""
|
|
|
|
# The output folder for the nightly files.
|
|
NIGHTLY_OUTPUT = nightlies/${DATE}
|
|
ifeq (${NIGHTLY_OUTPUT}, latest)
|
|
RMLATEST = ssh jqadmin@code.origin.jquery.com 'rm -rf /var/www/html/code.jquery.com/mobile/latest'
|
|
endif
|
|
NIGHTLY_WEBPATH = http://code.jquery.com/mobile/${NIGHTLY_OUTPUT}
|
|
|
|
# The filenames
|
|
JS = ${DIR}.js
|
|
MIN = ${DIR}.min.js
|
|
CSS = ${DIR}.css
|
|
CSSMIN = ${DIR}.min.css
|
|
|
|
# The files to include when compiling the JS files
|
|
JSFILES = js/jquery.ui.widget.js \
|
|
js/jquery.mobile.widget.js \
|
|
js/jquery.mobile.media.js \
|
|
js/jquery.mobile.support.js \
|
|
js/jquery.mobile.vmouse.js \
|
|
js/jquery.mobile.event.js \
|
|
js/jquery.mobile.hashchange.js \
|
|
js/jquery.mobile.page.js \
|
|
js/jquery.mobile.core.js \
|
|
js/jquery.mobile.navigation.js \
|
|
js/jquery.mobile.transition.js \
|
|
js/jquery.mobile.dialog.js \
|
|
js/jquery.mobile.page.sections.js \
|
|
js/jquery.mobile.collapsible.js \
|
|
js/jquery.mobile.fieldContain.js \
|
|
js/jquery.mobile.grid.js \
|
|
js/jquery.mobile.navbar.js \
|
|
js/jquery.mobile.listview.js \
|
|
js/jquery.mobile.listview.filter.js \
|
|
js/jquery.mobile.nojs.js \
|
|
js/jquery.mobile.forms.checkboxradio.js \
|
|
js/jquery.mobile.forms.button.js \
|
|
js/jquery.mobile.forms.slider.js \
|
|
js/jquery.mobile.forms.textinput.js \
|
|
js/jquery.mobile.forms.select.js \
|
|
js/jquery.mobile.buttonMarkup.js \
|
|
js/jquery.mobile.controlGroup.js \
|
|
js/jquery.mobile.links.js \
|
|
js/jquery.mobile.fixHeaderFooter.js \
|
|
js/jquery.mobile.media.classes.js \
|
|
js/jquery.mobile.init.js
|
|
|
|
# The files to include when compiling the CSS files
|
|
CSSFILES = themes/default/jquery.mobile.theme.css \
|
|
themes/default/jquery.mobile.core.css \
|
|
themes/default/jquery.mobile.transitions.css \
|
|
themes/default/jquery.mobile.grids.css \
|
|
themes/default/jquery.mobile.headerfooter.css \
|
|
themes/default/jquery.mobile.navbar.css \
|
|
themes/default/jquery.mobile.button.css \
|
|
themes/default/jquery.mobile.collapsible.css \
|
|
themes/default/jquery.mobile.controlgroup.css \
|
|
themes/default/jquery.mobile.dialog.css \
|
|
themes/default/jquery.mobile.forms.checkboxradio.css \
|
|
themes/default/jquery.mobile.forms.fieldcontain.css \
|
|
themes/default/jquery.mobile.forms.select.css \
|
|
themes/default/jquery.mobile.forms.textinput.css \
|
|
themes/default/jquery.mobile.listview.css \
|
|
themes/default/jquery.mobile.forms.slider.css
|
|
|
|
# By default, this is what get runs when make is called without any arguments.
|
|
# Min and un-min CSS and JS files are the only things built
|
|
all: init js min css cssmin notify
|
|
|
|
# Build the normal CSS file.
|
|
css: init
|
|
# Build the CSS file
|
|
@@head -8 js/jquery.mobile.core.js | ${SED_VER} > ${OUTPUT}/${CSS}
|
|
@@cat ${CSSFILES} >> ${OUTPUT}/${CSS}
|
|
|
|
# Build the minified CSS file
|
|
cssmin: init css
|
|
# Build the minified CSS file
|
|
@@java -jar build/yuicompressor-2.4.4.jar --type css ${OUTPUT}/${CSS} >> ${OUTPUT}/${CSSMIN}
|
|
|
|
# Build the normal JS file
|
|
js: init
|
|
# Build the JavaScript file
|
|
@@head -8 js/jquery.mobile.core.js | ${SED_VER} > ${OUTPUT}/${JS}
|
|
@@cat ${JSFILES} >> ${OUTPUT}/${JS}
|
|
|
|
# Create the output directory. This is in a separate step so its not dependant on other targets
|
|
init:
|
|
# Building jQuery Mobile in the "${OUTPUT}" folder
|
|
@@rm -rf ${OUTPUT}
|
|
@@mkdir ${OUTPUT}
|
|
|
|
# Build the minified JS file
|
|
min: init js
|
|
# Build the minified JavaScript file
|
|
@@head -8 js/jquery.mobile.core.js | ${SED_VER} > ${OUTPUT}/${MIN}
|
|
@@java -jar build/google-compiler-20110405.jar --js ${OUTPUT}/${JS} --warning_level QUIET --js_output_file ${MIN}.tmp
|
|
@@cat ${MIN}.tmp >> ${OUTPUT}/${MIN}
|
|
@@rm -f ${MIN}.tmp
|
|
|
|
# Let the user know the files were built and where they are
|
|
notify:
|
|
@@echo "The files have been built and are in " $$(pwd)/${OUTPUT}
|
|
|
|
# Pull the latest commits. This is used for the nightly build but can be used to save some keystrokes
|
|
pull:
|
|
@@git pull --quiet
|
|
|
|
# Zip the 4 files and the theme images into one convenient package
|
|
zip: init js min css cssmin
|
|
@@mkdir -p ${DIR}
|
|
@@cp ${OUTPUT}/${DIR}*.js ${DIR}/
|
|
@@cp ${OUTPUT}/${DIR}*.css ${DIR}/
|
|
@@cp -R themes/default/images ${DIR}/
|
|
@@zip -rq ${OUTPUT}/${DIR}.zip ${DIR}
|
|
@@rm -fr ${DIR}
|
|
|
|
|
|
# Used by the jQuery team to make the nightly builds
|
|
nightly: pull zip
|
|
# Create the folder to hold the files for the demos
|
|
@@mkdir -p ${VER}
|
|
|
|
# Copy in the base stuff for the demos
|
|
@@cp -r index.html themes experiments docs ${VER}/
|
|
|
|
# First change all the paths from super deep to the same level for JS files
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|src="../../../js|src="js|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|src="../../js|src="js|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|src="../js|src="js|g' {} \;
|
|
|
|
# Then change all the paths from super deep to the same level for CSS files
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|media="only all"||g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|rel="stylesheet" href="../../../|rel="stylesheet" href="|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|rel="stylesheet" href="../../|rel="stylesheet" href="|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|rel="stylesheet" href="../|rel="stylesheet" href="|g' {} \;
|
|
|
|
# Change the empty paths to the location of this nightly file
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|href="themes/default/"|href="${NIGHTLY_WEBPATH}/${DIR}.min.css"|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|src="js/jquery.js"|src="http://code.jquery.com/jquery-${JQUERY}.min.js"|' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i 's|src="js/"|src="${NIGHTLY_WEBPATH}/${DIR}.min.js"|g' {} \;
|
|
|
|
# Move the demos into the output folder
|
|
@@mv ${VER} ${OUTPUT}/demos
|
|
|
|
# Copy the images as well
|
|
@@cp -R themes/default/images ${OUTPUT}
|
|
|
|
@@${RMLATEST}
|
|
@@scp -r ${OUTPUT} jqadmin@code.origin.jquery.com:/var/www/html/code.jquery.com/mobile/${NIGHTLY_OUTPUT}
|
|
@@rm -rf ${OUTPUT}
|
|
|
|
# Used by the jQuery team to deploy a build to the CDN
|
|
deploy: zip
|
|
# Deploy to CDN
|
|
@@mv ${OUTPUT} ${VER}
|
|
@@scp -r ${VER} jqadmin@code.origin.jquery.com:/var/www/html/code.jquery.com/mobile/
|
|
@@mv ${VER} ${OUTPUT}
|
|
|
|
# Deploy Demos to the jQueryMobile.com site
|
|
@@mkdir -p ${VER}
|
|
@@cp -r index.html themes experiments docs ${VER}/
|
|
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|src="../../../js|src="js|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|src="../../js|src="js|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|src="../js|src="js|g' {} \;
|
|
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|media="only all"||g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|rel="stylesheet" href="../../../|rel="stylesheet" href="|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|rel="stylesheet" href="../../|rel="stylesheet" href="|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|rel="stylesheet" href="../|rel="stylesheet" href="|g' {} \;
|
|
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|href="themes/default/"|href="http://code.jquery.com/mobile/${VER}/${DIR}.min.css"|g' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|src="js/jquery.js"|src="http://code.jquery.com/jquery-${JQUERY}.min.js"|' {} \;
|
|
@@find ${VER} -type f -name '*.html' -exec sed -i "" -e 's|src="js/"|src="http://code.jquery.com/mobile/${VER}/${DIR}.min.js"|g' {} \;
|
|
|
|
@@scp -r ${VER} jqadmin@jquerymobile.com:/srv/jquerymobile.com/htdocs/demos/
|
|
|
|
# Clean up the local files
|
|
@@rm -rf ${VER}
|
|
@@echo "All Done"
|