|
From: <ai...@us...> - 2008-10-26 02:23:00
|
Revision: 8968
http://plplot.svn.sourceforge.net/plplot/?rev=8968&view=rev
Author: airwin
Date: 2008-10-26 01:36:09 +0000 (Sun, 26 Oct 2008)
Log Message:
-----------
Replace old Makefile method of uploading website with a CMake-based build
system approach which assembles all files into a staging area, uses ssh to
create an external directory in an ssh-capable website, and rsync to upload
the base website (excluding examples and documentation files) which has
been assembled in the staging area to that
website directory.
Modified Paths:
--------------
trunk/www/CMakeLists.txt
Removed Paths:
-------------
trunk/www/Makefile
trunk/www/Makefile-vars
Modified: trunk/www/CMakeLists.txt
===================================================================
--- trunk/www/CMakeLists.txt 2008-10-26 01:30:34 UTC (rev 8967)
+++ trunk/www/CMakeLists.txt 2008-10-26 01:36:09 UTC (rev 8968)
@@ -31,7 +31,23 @@
# Set up Makefile rules to generate announcements and validate their DocBook-XML source.
add_subdirectory(announce)
-set(PHP_FILES
+# Copy base website files to a staging area in the build tree.
+
+set(staging_FILES)
+
+# Create the staging directory tree at cmake time.
+file(MAKE_DIRECTORY
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/css
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/img
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/js
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/announce
+ )
+
+# Note documentation.php configured as above.
+set(toplevel_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/.htaccess
${CMAKE_CURRENT_SOURCE_DIR}/corefunctions.php
${CMAKE_CURRENT_SOURCE_DIR}/credits.php
${CMAKE_CURRENT_SOURCE_DIR}/development.php
@@ -41,3 +57,145 @@
${CMAKE_CURRENT_SOURCE_DIR}/template.php
${CMAKE_CURRENT_BINARY_DIR}/documentation.php
)
+
+foreach(_file ${toplevel_FILES})
+ get_filename_component(_filename ${_file} NAME)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/${_filename}
+ # Use cp -p to preserve dates/minimize rsync activity.
+ COMMAND cp -p
+ ${_file}
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/${_filename}
+ DEPENDS ${_file}
+ )
+ list(APPEND staging_FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/${_filename}
+ )
+endforeach(_file ${toplevel_FILES})
+
+# Note style files configure by CMake above in the css (build) directory.
+set(css_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/css/closelabel.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/css/loading.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/css/nextlabel.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/css/prevlabel.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/css/slimbox.css
+ ${CMAKE_CURRENT_BINARY_DIR}/css/style_liquid.css
+ ${CMAKE_CURRENT_BINARY_DIR}/css/style_static.css
+ )
+
+foreach(_file ${css_FILES})
+ get_filename_component(_filename ${_file} NAME)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/css/${_filename}
+ # Use cp -p to preserve dates/minimize rsync activity.
+ COMMAND cp -p
+ ${_file}
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/css/${_filename}
+ DEPENDS ${_file}
+ )
+ list(APPEND staging_FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/css/${_filename}
+ )
+endforeach(_file ${css_FILES})
+
+set(img_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/arrow.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/bg.jpg
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/content_bg.jpg
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/drop_shadow.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/header.jpg
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/menu_bg.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/menu_hover_bg.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/menu_selected_bg.gif
+ ${CMAKE_CURRENT_SOURCE_DIR}/img/plplot_logo.jpg
+ )
+
+foreach(_file ${img_FILES})
+ get_filename_component(_filename ${_file} NAME)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/img/${_filename}
+ # Use cp -p to preserve dates/minimize rsync activity.
+ COMMAND cp -p
+ ${_file}
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/img/${_filename}
+ DEPENDS ${_file}
+ )
+ list(APPEND staging_FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/img/${_filename}
+ )
+endforeach(_file ${img_FILES})
+
+set(js_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/js/slimbox.js
+ )
+
+foreach(_file ${js_FILES})
+ get_filename_component(_filename ${_file} NAME)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/js/${_filename}
+ # Use cp -p to preserve dates/minimize rsync activity.
+ COMMAND cp -p
+ ${_file}
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/js/${_filename}
+ DEPENDS ${_file}
+ )
+ list(APPEND staging_FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/js/${_filename}
+ )
+endforeach(_file ${js_FILES})
+
+# The end of this list needs maintenance for each new release announcement
+# that is generated (assuming we start making formal release announcements
+# again).
+set(announce_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/announce/ChangeLog-5.2.1-5.3.0
+ ${CMAKE_CURRENT_SOURCE_DIR}/announce/ChangeLog-5.3.0-5.3.1
+ ${CMAKE_CURRENT_SOURCE_DIR}/announce/ChangeLog-5.3.1-5.3.2
+ ${CMAKE_CURRENT_SOURCE_DIR}/announce/announce-plplot-5.1.0.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/announce/announce-plplot-5.2.1.html
+ ${CMAKE_CURRENT_SOURCE_DIR}/announce/announce.css
+ ${CMAKE_CURRENT_BINARY_DIR}/announce/announce-plplot-5.3.0.xhtml
+ ${CMAKE_CURRENT_BINARY_DIR}/announce/announce-plplot-5.3.0.txt
+ ${CMAKE_CURRENT_BINARY_DIR}/announce/announce-plplot-5.3.1.xhtml
+ ${CMAKE_CURRENT_BINARY_DIR}/announce/announce-plplot-5.3.1.txt
+ )
+
+# This has to be handled differently because some of these files created
+# with the announce subdirectory generate_announcements target.
+set(staging_announce_FILES)
+foreach(_file ${announce_FILES})
+ get_filename_component(_filename ${_file} NAME)
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/announce/${_filename}
+ # Use cp -p to preserve dates/minimize rsync activity.
+ COMMAND cp -p
+ ${_file}
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/announce/${_filename}
+ DEPENDS ${_file}
+ )
+ list(APPEND staging_announce_FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/announce/${_filename}
+ )
+endforeach(_file ${announce_FILES})
+
+add_custom_target(
+ create_staging_announce
+ DEPENDS ${staging_announce_FILES}
+ )
+add_dependencies(create_staging_announce generate_announcements)
+
+add_custom_target(
+ create_staging
+ DEPENDS ${staging_FILES}
+ )
+add_dependencies(create_staging create_staging_announce)
+
+if(DEFINED WWW_USER AND DEFINED WWW_HOST AND DEFINED WWW_DIR)
+ add_custom_target(
+ www-install-base
+ ssh ${WWW_USER}@${WWW_HOST} mkdir -p ${WWW_DIR}/htdocs
+ COMMAND rsync -avq ${CMAKE_CURRENT_BINARY_DIR}/staging/htdocs/ ${WWW_USER}@${WWW_HOST}:${WWW_DIR}/htdocs
+ )
+ add_dependencies(www-install-base create_staging)
+endif(DEFINED WWW_USER AND DEFINED WWW_HOST AND DEFINED WWW_DIR)
Deleted: trunk/www/Makefile
===================================================================
--- trunk/www/Makefile 2008-10-26 01:30:34 UTC (rev 8967)
+++ trunk/www/Makefile 2008-10-26 01:36:09 UTC (rev 8968)
@@ -1,43 +0,0 @@
-# Makefile for remotely installing the PLplot web site
-# (only works with GNU make)
-#
-# Rafael Labosisiere, 2004-02-04
-# Alan W. Irwin, 2008-09-23
-
-include Makefile-vars
-
-FILES = \
- index.php \
- corefunctions.php \
- credits.php \
- css \
- development.php \
- download.php \
- examples.php \
- img \
- js
-
-
-
-WWW_FILES = $(patsubst %,$(WWW_DIR)/%,$(FILES))
-
-all: install install-announce
-
-install:
- ssh $(USER_AT_HOST) rm -rf $(WWW_FILES)
- for f in $(FILES) ; do \
- if test -d $$f ; then \
- dir=$$f ; \
- else \
- dir=`dirname $$f` ; \
- fi ; \
- scp -rp $$f $(USER_AT_HOST):$(WWW_DIR)/$$dir ; \
- done
- -ssh $(USER_AT_HOST) chgrp -R $(WWW_GROUP) $(WWW_FILES)
- -ssh $(USER_AT_HOST) chmod -R g=u $(WWW_FILES)
-
-install-announce:
- -( cd announce ; $(MAKE) install )
-
-clean:
- ( cd announce ; $(MAKE) clean )
Deleted: trunk/www/Makefile-vars
===================================================================
--- trunk/www/Makefile-vars 2008-10-26 01:30:34 UTC (rev 8967)
+++ trunk/www/Makefile-vars 2008-10-26 01:36:09 UTC (rev 8968)
@@ -1,11 +0,0 @@
-WWW_HOST = shell.sourceforge.net
-
-ifdef WWW_USER
- USER_AT_HOST = $(WWW_USER)@$(WWW_HOST)
-else
- USER_AT_HOST = $(WWW_HOST)
-endif
-
-WWW_DIR = /home/groups/p/pl/plplot/htdocs
-
-WWW_GROUP = plplot
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|