diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 195 |
1 files changed, 146 insertions, 49 deletions
diff --git a/configure.ac b/configure.ac index e2b40298..36f4f946 100644 --- a/configure.ac +++ b/configure.ac @@ -61,6 +61,14 @@ LIBGPGME_LT_CURRENT=25 LIBGPGME_LT_AGE=14 LIBGPGME_LT_REVISION=0 +LIBGPGMEPP_LT_CURRENT=6 +LIBGPGMEPP_LT_AGE=0 +LIBGPGMEPP_LT_REVISION=0 + +LIBQGPGME_LT_CURRENT=6 +LIBQGPGME_LT_AGE=0 +LIBQGPGME_LT_REVISION=1 + # If the API is changed in an incompatible way: increment the next counter. GPGME_CONFIG_API_VERSION=1 ############################################## @@ -104,6 +112,12 @@ AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog, [gitlog-to-changelog]) AC_SUBST(LIBGPGME_LT_CURRENT) AC_SUBST(LIBGPGME_LT_AGE) AC_SUBST(LIBGPGME_LT_REVISION) +AC_SUBST(LIBGPGMEPP_LT_CURRENT) +AC_SUBST(LIBGPGMEPP_LT_AGE) +AC_SUBST(LIBGPGMEPP_LT_REVISION) +AC_SUBST(LIBQGPGME_LT_CURRENT) +AC_SUBST(LIBQGPGME_LT_AGE) +AC_SUBST(LIBQGPGME_LT_REVISION) AC_SUBST(PACKAGE) AC_SUBST(VERSION) @@ -146,6 +160,8 @@ have_w32_system=no have_w64_system=no build_w32_glib=no build_w32_qt=no +available_languages="cl cpp python qt" +default_languages="cl cpp python qt" case "${host}" in x86_64-*mingw32*) have_w64_system=yes @@ -171,20 +187,9 @@ case "${host}" in AC_ARG_ENABLE(w32-glib, AC_HELP_STRING([--enable-w32-glib], [build GPGME Glib for W32]), build_w32_glib=$enableval) - - # Check disabled, because the qt-dev packages in gpg4win do - # not provide any support for cross compilation. - # PKG_CHECK_MODULES(QT4_CORE, QtCore) - - # Use it like this: - # ./configure --enable-w32-qt QT4_CORE_CFLAGS="..." QT4_CORE_LIBS="..." - AC_SUBST(QT4_CORE_CFLAGS) - AC_SUBST(QT4_CORE_LIBS) - AC_ARG_ENABLE(w32-qt, - AC_HELP_STRING([--enable-w32-qt], [build GPGME Qt for W32]), - build_w32_qt=$enableval) - ;; + ;; *) + AC_CHECK_LIB(pthread,pthread_create,have_pthread=yes) if test "$have_pthread" = yes; then AC_DEFINE(HAVE_PTHREAD, ,[Define if we have pthread.]) @@ -230,7 +235,6 @@ fi AM_CONDITIONAL(HAVE_ANDROID_SYSTEM, test "$have_android_system" = yes) AM_CONDITIONAL(BUILD_W32_GLIB, test "$build_w32_glib" = yes) -AM_CONDITIONAL(BUILD_W32_QT, test "$build_w32_qt" = yes) AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes") @@ -245,6 +249,117 @@ if test x$fixed_search_path != x ; then [Locate binaries only via this PATH]) fi +AC_ARG_ENABLE([languages], + AC_HELP_STRING([--enable-languages=languages], + [enable only specific language bindings]), + [enabled_languages=`echo $enableval | \ + tr ',:' ' ' | tr '[A-Z]' '[a-z]' | \ + sed 's/c++/cpp/'`], + [enabled_languages="maybe"]) +if test "x$enabled_languages" = "x" \ + -o "$enabled_languages" = "no"; then + enabled_languages= +fi + +# If languages are explicitly set missing requirements +# for the languages are treated as errors otherwise +# there will be a warning. +explicit_languages=1 +if test "x$enabled_languages" = "xmaybe"; then + explicit_languages=0 + enabled_languages="$default_languages" +fi + +for language in $enabled_languages; do + LIST_MEMBER($language, $available_languages) + if test "$found" = "0"; then + AC_MSG_ERROR([unsupported language binding specified]) + fi +done + + + +# Enable C++ 11 if cpp language is requested +LIST_MEMBER("cpp", $enabled_languages) +if test "$found" = "1"; then + AX_CXX_COMPILE_STDCXX(11, noext, optional) + if test "$HAVE_CXX11" != "1"; then + if test "$explicit_languages" = "1"; then + AC_MSG_ERROR([[ +*** +*** A compiler with c++11 support is required for the c++ binding. +***]]) + else + enabled_languages=$(echo $enabled_languages | sed 's/cpp//') + enabled_languages=$(echo $enabled_languages | sed 's/qt//') + AC_MSG_WARN([[ +*** +*** No c++11 support detected. C++ and Qt bindings will be disabled. +***]]) + fi + fi +fi + +# Check that if qt is enabled cpp also is enabled +LIST_MEMBER("qt", $enabled_languages) +if test "$found" = "1"; then + # We need to ensure that in the langauge order qt comes after cpp + # so we remove qt first and explicitly add it as last list member. + enabled_languages=$(echo $enabled_languages | sed 's/qt//') + LIST_MEMBER("cpp", $enabled_languages) + if test "$found" = "0"; then + AC_MSG_ERROR([[ +*** +*** Qt language binding depends on cpp binding. +***]]) + fi + FIND_QT + if test "$have_qt5_libs" != "yes"; then + if test "$explicit_languages" = "1"; then + AC_MSG_ERROR([[ +*** +*** Qt5 (Qt5Core) is required for Qt binding. +***]]) + else + AC_MSG_WARN([[ +*** +*** Qt5 (Qt5Core) not found Qt Binding will be disabled. +***]]) + fi + else + enabled_languages=`echo $enabled_languages qt` + + AC_CHECK_PROGS([DOXYGEN], [doxygen]) + if test -z "$DOXYGEN"; + # This is not highlighted becase it's not really important. + then AC_MSG_WARN([Doxygen not found - Qt binding doc will not be built.]) + fi + fi +fi +AM_CONDITIONAL([HAVE_DOXYGEN], + [test -n "$DOXYGEN"]) + +# Python bindings. +LIST_MEMBER("python", $enabled_languages) +if test "$found" = "1"; then + AX_PKG_SWIG + if test -z "$SWIG"; then + if test "$explicit_languages" = "1"; then + die=yes + AC_MSG_NOTICE([[ +*** +*** You need SWIG to build the Python bindings. +***]]) + else + enabled_languages=$(echo $enabled_languages | sed 's/qt//') + fi + else + AM_PATH_PYTHON([3.2]) + AX_SWIG_PYTHON + fi +fi + +AC_SUBST(ENABLED_LANGUAGES, $enabled_languages) # # Provide information about the build. @@ -587,33 +702,6 @@ AC_SUBST(emacs_local_vars_begin, [['Local][ ][Variables:']]) AC_SUBST(emacs_local_vars_read_only, ['buffer-read-only: t']) AC_SUBST(emacs_local_vars_end, ['End:']) -# Bindings. -AC_ARG_ENABLE([python], - AC_HELP_STRING([--enable-python], - [build the Python3 bindings]), - [enable_python=$enableval], - [enable_python=auto]) -AX_PKG_SWIG -if test -z "$SWIG"; then - if test $enable_python = yes; then - die=yes - AC_MSG_NOTICE([[ -*** -*** You need SWIG to build the Python bindings. -***]]) - else - enable_python=no - fi -else - if test $enable_python = auto; then - enable_python=yes - fi -fi -if test $enable_python = yes; then - AM_PATH_PYTHON([3.2]) - AX_SWIG_PYTHON -fi - # Last check. die=no if test "$have_gpg_error" = "no"; then @@ -658,21 +746,30 @@ AC_CONFIG_FILES(Makefile src/Makefile src/versioninfo.rc src/gpgme.h) AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config) -AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd - lang/python/Makefile lang/python/tests/Makefile]) +AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile) +AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfig.cmake.in) +AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfigVersion.cmake) +AC_CONFIG_FILES(lang/qt/Makefile lang/qt/src/Makefile) +AC_CONFIG_FILES(lang/qt/src/QGpgmeConfig.cmake.in) +AC_CONFIG_FILES(lang/qt/src/QGpgmeConfigVersion.cmake) +AC_CONFIG_FILES(lang/qt/tests/Makefile) +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/qt/doc/Makefile) +AC_CONFIG_FILES([lang/python/Makefile lang/python/tests/Makefile]) AC_OUTPUT echo " GPGME v${VERSION} has been configured as follows: - Revision: mym4_revision (mym4_revision_dec) - Platform: $host + Revision: mym4_revision (mym4_revision_dec) + Platform: $host - UI Server: $uiserver - FD Passing: $use_descriptor_passing - GPGME Pthread: $have_pthread + UI Server: $uiserver + FD Passing: $use_descriptor_passing + GPGME Pthread: $have_pthread - Python bindings: $enable_python + Language bindings: $enabled_languages " if test "x${gpg_config_script_warn}" != x; then cat <<G10EOF |