Prepare build system for gpgme-js and dist it

* configure.ac: Add js as language.
* lang/Makefile.am: Add js as dist language.
* lang/js/BrowserTestExtension/Makefile.am,
lang/js/DemoExtension/Makefile.am,
lang/js/Makefile.am,
lang/js/src/Makefile.am: Populate EXTRA_DIST variables.

--
There is no actual build done yet as there seems to be
no way to build it with debian stable tools. This needs
clarification.
This commit is contained in:
Andre Heinecke 2018-06-19 16:40:40 +02:00
parent 780f7880c6
commit d27703ea4f
No known key found for this signature in database
GPG Key ID: 2978E9D40CBABA5C
6 changed files with 160 additions and 2 deletions

View File

@ -187,7 +187,7 @@ have_w64_system=no
have_macos_system=no
build_w32_glib=no
build_w32_qt=no
available_languages="cl cpp python python2 python3 qt"
available_languages="cl cpp python python2 python3 qt js"
default_languages="cl cpp python qt"
case "${host}" in
x86_64-*mingw32*)
@ -479,6 +479,28 @@ fi
AC_SUBST(ENABLED_LANGUAGES, $enabled_languages)
# The javascript bindings
LIST_MEMBER("js", $enabled_languages)
if test "$found" = "1"; then
AC_CHECK_PROGS([NPX], [npx])
if test -z "$NPX"; then
if test "$explicit_languages" = "1"; then
AC_MSG_ERROR([[
***
*** Node.js (npx) is required for the JavaScript binding.
***]])
else
AC_MSG_WARN([
***
*** Node.js (npx) not found - JavaScript binding will not be built.
***])
enabled_languages=$(echo $enabled_languages | sed 's/js//')
fi
fi
fi
AM_CONDITIONAL([BUILD_JS_BINDINGS],
[test -n "$NPX"])
#
# Provide information about the build.
#
@ -899,6 +921,9 @@ AC_CONFIG_FILES(lang/qt/tests/Makefile)
AC_CONFIG_FILES(lang/qt/src/qgpgme_version.h)
AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([lang/qt/doc/Doxyfile])])
AC_CONFIG_FILES([lang/js/Makefile lang/js/src/Makefile
lang/js/BrowserTestExtension/Makefile
lang/js/DemoExtension/Makefile])
AC_CONFIG_FILES(lang/qt/doc/Makefile)
AC_CONFIG_FILES([lang/python/Makefile
lang/python/version.py

View File

@ -18,6 +18,6 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
SUBDIRS = $(ENABLED_LANGUAGES)
DIST_SUBDIRS = cl cpp qt python
DIST_SUBDIRS = cl cpp qt python js
EXTRA_DIST = README

View File

@ -0,0 +1,42 @@
# Makefile.am for GPGME-JS.
# Copyright (C) 2018 Intevation GmbH
#
# This file is part of GPGME.
#
# GPGME-CL is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# GPGME-CL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA
EXTRA_DIST = browsertest.html \
index.html \
longTests.html \
Makefile.am \
manifest.json \
popup.html \
popup.js \
runbrowsertest.js \
rununittests.js \
setup_testing.js \
testicon.png \
testkey2.pub \
testkey.pub \
testkey.sec \
tests/encryptDecryptTest.js \
tests/encryptTest.js \
tests/inputvalues.js \
tests/KeyImportExport.js \
tests/longRunningTests.js \
tests/signTest.js \
tests/startup.js \
unittests.html

View File

@ -0,0 +1,27 @@
# Makefile.am for GPGME-JS.
# Copyright (C) 2018 Intevation GmbH
#
# This file is part of GPGME-CL.
#
# GPGME-CL is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# GPGME-CL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA
EXTRA_DIST = manifest.json \
popup.html \
entry.js \
maindemo.js \
mainui.html \
testicon.png \
ui.css

34
lang/js/Makefile.am Normal file
View File

@ -0,0 +1,34 @@
# Makefile.am for GPGME-JS.
# Copyright (C) 2018 2018 Bundesamt für Sicherheit in der Informationstechnik
#
# This file is part of GPGME-JS.
#
# GPGME-JS is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# GPGME-JS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA
SUBDIRS = src BrowserTestExtension DemoExtension
EXTRA_DIST = build_extensions.sh \
CHECKLIST \
CHECKLIST_build \
.eslintrc.json \
Makefile.am \
package.json \
README \
README_testing \
unittest_inputvalues.js \
unittests.js \
webpack.conf.js \
webpack.conf_unittests.js

30
lang/js/src/Makefile.am Normal file
View File

@ -0,0 +1,30 @@
# Makefile.am for GPGME-JS.
# Copyright (C) 2018 Intevation GmbH
#
# This file is part of GPGME.
#
# GPGME-CL is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# GPGME-CL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA
EXTRA_DIST = Connection.js \
Errors.js \
gpgmejs.js \
Helpers.js \
index.js \
Key.js \
Keyring.js \
Message.js \
permittedOperations.js \
Signature.js