aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2018-06-19 14:40:40 +0000
committerAndre Heinecke <[email protected]>2018-06-19 14:40:40 +0000
commitd27703ea4f0eed950cddf0157dc78bcb5d8d1c65 (patch)
tree3ab7d079c72bee5e135d0292d7cd7a045aa04875
parentjs: getDefaultKey and GenerateKey improvements (diff)
downloadgpgme-d27703ea4f0eed950cddf0157dc78bcb5d8d1c65.tar.gz
gpgme-d27703ea4f0eed950cddf0157dc78bcb5d8d1c65.zip
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.
-rw-r--r--configure.ac27
-rw-r--r--lang/Makefile.am2
-rw-r--r--lang/js/BrowserTestExtension/Makefile.am42
-rw-r--r--lang/js/DemoExtension/Makefile.am27
-rw-r--r--lang/js/Makefile.am34
-rw-r--r--lang/js/src/Makefile.am30
6 files changed, 160 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index a1da1e3e..69d7132f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
diff --git a/lang/Makefile.am b/lang/Makefile.am
index fd3ce4eb..1bf73316 100644
--- a/lang/Makefile.am
+++ b/lang/Makefile.am
@@ -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
diff --git a/lang/js/BrowserTestExtension/Makefile.am b/lang/js/BrowserTestExtension/Makefile.am
new file mode 100644
index 00000000..340d7ad9
--- /dev/null
+++ b/lang/js/BrowserTestExtension/Makefile.am
@@ -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
diff --git a/lang/js/DemoExtension/Makefile.am b/lang/js/DemoExtension/Makefile.am
new file mode 100644
index 00000000..e93d0f66
--- /dev/null
+++ b/lang/js/DemoExtension/Makefile.am
@@ -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
diff --git a/lang/js/Makefile.am b/lang/js/Makefile.am
new file mode 100644
index 00000000..4b5c7172
--- /dev/null
+++ b/lang/js/Makefile.am
@@ -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
diff --git a/lang/js/src/Makefile.am b/lang/js/src/Makefile.am
new file mode 100644
index 00000000..dd330d50
--- /dev/null
+++ b/lang/js/src/Makefile.am
@@ -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