diff --git a/Jenkinsfile b/Jenkinsfile
index 2bbadf168..5df7478b6 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -49,7 +49,7 @@ node("master") {
withDockerContainer(image: "jenkins-${target}-basic") {
// from shared library
- installtest(target, target_dir)
+ installtest_nopymod(target, target_dir)
}
})
diff --git a/scripts/extract_user_doc.rb b/scripts/extract_user_doc.rb
new file mode 100755
index 000000000..d83b99a78
--- /dev/null
+++ b/scripts/extract_user_doc.rb
@@ -0,0 +1,253 @@
+
+# Produces the documentation text from within KLayout
+
+def xml2html(t)
+
+ # strip XML processing instructions and DTD
+ t = t.sub(/^.*
/m, "")
+ t = t.sub(/<\/body>.*$/m, "")
+
+ # insert title in front of navigator
+ t = t.sub(//, "
KLayout Documentation (Qt #{$qt}): ")
+
+ # replace .xml references in hrefs
+ t = t.gsub(/href=\"(.*?)\.xml\"/) { "href=\"#{$1}.html\""; }
+ t = t.gsub(/href=\"(.*?)\.xml#(.*?)\"/) { "href=\"#{$1}.html##{$2}\""; }
+
+ # replace simplified XML tags with an opening/closing tag
+ t = t.gsub(/<(\w+)([^<>]*?)\/>/) { "<#{$1}#{$2}>#{$1}>" }
+
+ # replace some closing tags which are not allowed
+ t = t.gsub(/<\/br>/, "").gsub(/<\/img>/, "")
+
+ t
+
+end
+
+title = "KLayout "
+title += ($klayout_version || "$version") + " "
+title += "("
+title += ($klayout_version_date || "$date") + " "
+title += ($klayout_version_rev || "$rev")
+title += ") "
+title += ($target_info && $target_info != "" ? "[#{$target_info}] " : "")
+
+HEADER=<<"END"
+
+
+
+
+ KLayout Documentation
+
+
+
+
+#{title}
+END
+
+TAIL=<<"END"
+
+END
+
+
+hs = RBA::HelpSource.new
+
+hs.urls.each do |url|
+
+ begin
+
+ fn = ($target_doc + url).sub(/\.xml$/, ".html")
+
+ t = hs.get(url)
+ t = HEADER + xml2html(t) + TAIL
+
+ tt = nil
+ if File.exists?(fn)
+ File.open(fn, "rb") { |f| tt = f.read }
+ end
+
+ if t != tt
+ puts "Writing #{fn} .."
+ File.open(fn, "wb") do |f|
+ f.write(t)
+ end
+ else
+ puts "Retained #{fn}."
+ end
+
+ rescue => ex
+ puts "*** ERROR: #{ex.to_s}"
+ end
+
+end
+
+
diff --git a/scripts/extract_user_doc.sh b/scripts/extract_user_doc.sh
new file mode 100755
index 000000000..331513e55
--- /dev/null
+++ b/scripts/extract_user_doc.sh
@@ -0,0 +1,70 @@
+#!/bin/sh -e
+
+bin=""
+src=""
+
+self=$(realpath $(which $0))
+inst_dir=$(dirname $self)
+info=""
+
+while [ "$1" != "" ]; do
+ a="$1"
+ shift
+ if [ "$a" = "-h" ]; then
+ echo "./scripts/extract_user_doc -i "
+ exit 1
+ elif [ "$a" = "-i" ]; then
+ info="$1"
+ shift
+ else
+ echo "invalid option $a"
+ exit 1
+ fi
+done
+
+doc_src=./src/lay/lay/doc
+. ./version.sh
+
+for qt in 5 4; do
+
+ target_doc=$(pwd)/doc-qt$qt
+
+ rm -rf $target_doc
+ mkdir -p $target_doc
+
+ export QT_SELECT=$qt
+ ./build.sh -qmake qmake -j4 -bin bin-release-qt$qt -build build-release-qt$qt
+
+ for d in programming manual about images; do
+ mkdir -p $target_doc/$d
+ for f in $doc_src/$d/*.png; do
+ fn=$(basename $f)
+ if [ ! -e $target_doc/$d/$fn ] || [ $doc_src/$d/$fn -nt $target_doc/$d/$fn ]; then
+ echo "cp $doc_src/$d/$fn $target_doc/$d"
+ cp $doc_src/$d/$fn $target_doc/$d
+ fi
+ done
+ done
+
+ mkdir -p $target_doc/code
+
+ bin=bin-release-qt$qt
+ export LD_LIBRARY_PATH=$bin
+ export KLAYOUT_PATH=$bin
+ export KLAYOUT_HOME=$bin
+
+ rm -f $bin/help-index.xml
+ $bin/klayout -rx -b \
+ -rd "klayout_version=$KLAYOUT_VERSION" \
+ -rd "klayout_version_rev=$KLAYOUT_VERSION_REV" \
+ -rd "klayout_version_date=$KLAYOUT_VERSION_DATE" \
+ -rd "target_doc=$target_doc" \
+ -rd "target_info=$info" \
+ -rd "qt=$qt" \
+ -r $inst_dir/extract_user_doc.rb
+
+ # just big:
+ # mv $bin/help-index.xml $target_doc/help-index.data
+
+done
+