From 64cc69f6ae03d5a83bed896981bc5e4312fa7500 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Wed, 12 Jul 2017 15:45:44 +0200 Subject: [PATCH] Use ctpp2c to generate template from source instead of use generated one. Fixes #50. --- scripts/compile_resources.py | 21 ++++-- scripts/ctpp2c.sh | 8 +++ scripts/meson.build | 1 + static/meson.build | 16 ++++- static/results.ct2 | Bin 11120 -> 0 bytes static/results.tmpl | 127 +++++++++++++++++++++++++++++++++++ travis/install_deps.sh | 12 ++-- 7 files changed, 173 insertions(+), 12 deletions(-) create mode 100755 scripts/ctpp2c.sh delete mode 100644 static/results.ct2 create mode 100644 static/results.tmpl diff --git a/scripts/compile_resources.py b/scripts/compile_resources.py index ca38a630a..5480b0f7d 100755 --- a/scripts/compile_resources.py +++ b/scripts/compile_resources.py @@ -38,12 +38,21 @@ extern const std::string {identifier}; {namespaces_close}""" class Resource: - def __init__(self, base_dir, filename): + def __init__(self, base_dirs, filename): filename = filename.strip() self.filename = filename self.identifier = full_identifier(filename) - with open(os.path.join(base_dir, filename), 'rb') as f: - self.data = f.read() + found = False + for base_dir in base_dirs: + try: + with open(os.path.join(base_dir, filename), 'rb') as f: + self.data = f.read() + found = True + break + except FileNotFoundError: + continue + if not found: + raise Exception("Impossible to found {}".format(filename)) def dump_impl(self): nb_row = len(self.data)//16 + (1 if len(self.data) % 16 else 0) @@ -151,13 +160,17 @@ if __name__ == "__main__": help='The Cpp file name to generate') parser.add_argument('--hfile', help='The h file name to generate') + parser.add_argument('--source_dir', + help="Additional directory where to look for resources.", + action='append') parser.add_argument('resource_file', help='The list of resources to compile.') args = parser.parse_args() base_dir = os.path.dirname(os.path.realpath(args.resource_file)) with open(args.resource_file, 'r') as f: - resources = [Resource(base_dir, filename) for filename in f.readlines()] + resources = [Resource([base_dir]+args.source_dir, filename) + for filename in f.readlines()] h_identifier = to_identifier(os.path.basename(args.hfile)) with open(args.hfile, 'w') as f: diff --git a/scripts/ctpp2c.sh b/scripts/ctpp2c.sh new file mode 100755 index 000000000..746ecccf5 --- /dev/null +++ b/scripts/ctpp2c.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + + +ctpp2c=$1 +SOURCE=$(pwd)/$2 +DEST=$3 + +$ctpp2c $SOURCE $DEST diff --git a/scripts/meson.build b/scripts/meson.build index 4315d9212..c74cb8577 100644 --- a/scripts/meson.build +++ b/scripts/meson.build @@ -1,4 +1,5 @@ res_compiler = find_program('compile_resources.py') +intermediate_ctpp2c = find_program('ctpp2c.sh') install_data(res_compiler.path(), install_dir:get_option('bindir')) diff --git a/static/meson.build b/static/meson.build index b1ffffc7a..67e6fa834 100644 --- a/static/meson.build +++ b/static/meson.build @@ -1,7 +1,19 @@ +ctpp2c = find_program('ctpp2c') +search_result_template = custom_target('result_template', + input: 'results.tmpl', + output: 'results.ct2', + command: [intermediate_ctpp2c, ctpp2c, '@INPUT@', '@OUTPUT@'] +) + lib_resources = custom_target('resources', input: 'resources_list.txt', output: ['kiwixlib-resources.cpp', 'kiwixlib-resources.h'], - command:[res_compiler, '--cxxfile', '@OUTPUT0@', '--hfile', '@OUTPUT1@', '@INPUT@'] -) \ No newline at end of file + command:[res_compiler, + '--cxxfile', '@OUTPUT0@', + '--hfile', '@OUTPUT1@', + '--source_dir', '@OUTDIR@', + '@INPUT@'], + depends: [search_result_template] +) diff --git a/static/results.ct2 b/static/results.ct2 deleted file mode 100644 index 81e59ba104b57f793ed0856198cd3d64f561c0a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11120 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 diff --git a/static/results.tmpl b/static/results.tmpl new file mode 100644 index 000000000..1d95b8012 --- /dev/null +++ b/static/results.tmpl @@ -0,0 +1,127 @@ + + + + + + Search: <TMPL_var searchPattern> + + +
+ Results - of for No result were found for +
+ +
+
    + +
  • + ... +
    words
    +
  • +
    +
+
+ + + + + diff --git a/travis/install_deps.sh b/travis/install_deps.sh index ce1cd71de..c656e0b56 100755 --- a/travis/install_deps.sh +++ b/travis/install_deps.sh @@ -8,22 +8,22 @@ ARCHIVE_NAME=deps_${PLATFORM}_${REPO_NAME}.tar.gz # Packages. case ${PLATFORM} in "native_static") - PACKAGES="gcc cmake libbz2-dev ccache zlib1g-dev uuid-dev libctpp2-dev" + PACKAGES="gcc cmake libbz2-dev ccache zlib1g-dev uuid-dev libctpp2-dev ctpp2-utils" ;; "native_dyn") - PACKAGES="gcc cmake libbz2-dev ccache zlib1g-dev uuid-dev libctpp2-dev libmicrohttpd-dev" + PACKAGES="gcc cmake libbz2-dev ccache zlib1g-dev uuid-dev libctpp2-dev ctpp2-utils libmicrohttpd-dev" ;; "win32_static") - PACKAGES="g++-mingw-w64-i686 gcc-mingw-w64-i686 gcc-mingw-w64-base mingw-w64-tools ccache" + PACKAGES="g++-mingw-w64-i686 gcc-mingw-w64-i686 gcc-mingw-w64-base mingw-w64-tools ccache ctpp2-utils" ;; "win32_dyn") - PACKAGES="g++-mingw-w64-i686 gcc-mingw-w64-i686 gcc-mingw-w64-base mingw-w64-tools ccache" + PACKAGES="g++-mingw-w64-i686 gcc-mingw-w64-i686 gcc-mingw-w64-base mingw-w64-tools ccache ctpp2-utils" ;; "android_arm") - PACKAGES="gcc cmake ccache" + PACKAGES="gcc cmake ccache ctpp2-utils" ;; "android_arm64") - PACKAGES="gcc cmake ccache" + PACKAGES="gcc cmake ccache ctpp2-utils" ;; esac