diff options
-rw-r--r-- | Doxyfile.global | 2 | ||||
-rw-r--r-- | acinclude.m4.in | 297 | ||||
-rw-r--r-- | am_edit | 9 | ||||
-rw-r--r-- | configure.in.min | 1 |
4 files changed, 258 insertions, 51 deletions
diff --git a/Doxyfile.global b/Doxyfile.global index 5c41093..9d8dbf5 100644 --- a/Doxyfile.global +++ b/Doxyfile.global @@ -1282,7 +1282,7 @@ INCLUDE_FILE_PATTERNS = PREDEFINED = TQT_VERSION=320 \ __cplusplus \ - Q_WS_X11 + TQ_WS_X11 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. diff --git a/acinclude.m4.in b/acinclude.m4.in index 7fbed8c..3f0c0fc 100644 --- a/acinclude.m4.in +++ b/acinclude.m4.in @@ -333,7 +333,7 @@ AC_DEFUN([AC_PATH_TQT_MOC_UIC], KDE_FIND_PATH(tqmoc, MOC, [$tqt_bindirs], [KDE_MOC_ERROR_MESSAGE]) if test -z "$UIC_NOT_NEEDED"; then if test $kde_tqtver = 3; then - KDE_FIND_PATH(uic-tqt, UIC_PATH, [$tqt_bindirs], [UIC_PATH=""]) + KDE_FIND_PATH(tquic, UIC_PATH, [$tqt_bindirs], [UIC_PATH=""]) fi if test -z "$UIC_PATH" ; then KDE_UIC_ERROR_MESSAGE @@ -1083,18 +1083,14 @@ AC_DEFUN([KDE_USE_TQT], [ kde_tqtver=0 kde_tqtsubver=0 - + + KDE_PKG_CHECK_MODULES(TQt, tqt) AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_cxxflags_safe="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -I/usr/include/tqt" + CXXFLAGS="$CXXFLAGS $TQt_CFLAGS" AC_TRY_COMPILE([ - #define TQT_VERSION_ONLY #include <tqt.h> - #undef TQT_VERSION_ONLY - #ifdef USE_QT4 - choke me - #endif ], , kde_tqtver=3, ) @@ -1286,7 +1282,6 @@ fi dnl ------------------------------------------------------------ dnl If we got --enable-embedded then adjust the TQt library name. -dnl Also TQt4 uses a different library name dnl ------------------------------------------------------------ if test "$kde_tqtver" = "3"; then if test "x$kde_use_tqt_emb" = "xyes"; then @@ -1571,9 +1566,12 @@ cat > actest.ui << EOF </property> </widget> </widget> +<includes> + <include location="global" impldecl="in implementation">klineedit.h</include> +</includes> </UI> EOF - + kde_cv_uic_plugins=no @@ -2552,8 +2550,8 @@ fi LIBS="$ac_save_LIBS" CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE -fi ]) +fi if eval "test ! \"`echo $kde_cv_tqt_jpeg`\" = no"; then AC_MSG_RESULT(yes) @@ -3126,7 +3124,7 @@ AC_DEFUN([AC_CHECK_COMPILERS], case $host in *-*-linux-gnu) CFLAGS="-W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_DEFAULT_SOURCE $CFLAGS" - CXXFLAGS="-ansi -D_DEFAULT_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS" + CXXFLAGS="-D_DEFAULT_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS" KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"]) KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"]) ;; @@ -3370,9 +3368,9 @@ if $PKG_CONFIG --exists tqt-mt ; then AC_TRY_COMPILE( [ #include <tqglobal.h> -#if Q_EXPORT - 0 != 0 -/* if this compiles, then Q_EXPORT is undefined */ -/* if Q_EXPORT is nonempty, this will break compilation */ +#if TQ_EXPORT - 0 != 0 +/* if this compiles, then TQ_EXPORT is undefined */ +/* if TQ_EXPORT is nonempty, this will break compilation */ #endif ], [/* Elvis is not dead, he just went home! (Men In Black, 1997) */], kde_cv_val_tqt_gcc_visibility_patched=no, kde_cv_val_tqt_gcc_visibility_patched=yes) @@ -3482,7 +3480,7 @@ AC_CANONICAL_SYSTEM AC_ARG_PROGRAM AM_INIT_AUTOMAKE($1, $2) AM_DISABLE_LIBRARIES -AC_PREFIX_DEFAULT(${TDEDIR:-/usr/local/kde}) +AC_PREFIX_DEFAULT(${TDEDIR:-/opt/trinity}) AC_CHECK_COMPILERS KDE_PROG_LIBTOOL AM_KDE_WITH_NLS @@ -4460,12 +4458,18 @@ AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) AC_REQUIRE([KDE_CHECK_PYTHON_DIR]) if test -z "$1"; then - version="1.5" + version="3.0" else version="$1" fi -AC_MSG_CHECKING([for Python$version]) +AC_PATH_PROG([PYTHON],[python$version]) + +if test -n "$PYTHON"; then + abiflags=$($PYTHON -c 'import sys; print(sys.abiflags)') +else + abiflags="" +fi python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes" AC_FIND_FILE(Python.h, $python_incdirs, python_incdir) @@ -4481,13 +4485,13 @@ PYTHONINC=-I$python_incdir python_multiarch_libdirs="`find /usr/lib/ -maxdepth 1 -type d | xargs echo`" python_libdirs="$ac_python_dir/lib$tdelibsuff /usr/lib$tdelibsuff /usr/local /usr/lib$tdelibsuff $python_multiarch_libdirs $kde_extra_libs" -AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir) -if test ! -r $python_libdir/libpython$version.so; then - AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir) - if test ! -r $python_libdir/libpython$version.a; then - AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir) +AC_FIND_FILE(libpython$version$abiflags.so, $python_libdirs, python_libdir) +if test ! -r $python_libdir/libpython$version$abiflags.so; then + AC_FIND_FILE(libpython$version$abiflags.a, $python_libdirs, python_libdir) + if test ! -r $python_libdir/libpython$version$abiflags.a; then + AC_FIND_FILE(python$version/config/libpython$version$abiflags.a, $python_libdirs, python_libdir) python_libdir=$python_libdir/python$version/config - if test ! -r $python_libdir/libpython$version.a; then + if test ! -r $python_libdir/libpython$version$abiflags.a; then python_libdir=no fi fi @@ -4496,7 +4500,7 @@ fi PYTHONLIB=-L$python_libdir kde_orig_LIBPYTHON=$LIBPYTHON if test -z "$LIBPYTHON"; then - LIBPYTHON=-lpython$version + LIBPYTHON=-lpython$version$abiflags fi AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir) @@ -4507,7 +4511,10 @@ fi PYTHONMODDIR=$python_moddir -AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir) +AC_MSG_RESULT([\ + header $python_incdir, + library $python_libdir, + modules $python_moddir]) if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then LIBPYTHON=$kde_orig_LIBPYTHON @@ -4548,22 +4555,12 @@ fi AC_DEFUN([KDE_CHECK_PYTHON], [ - KDE_CHECK_PYTHON_INTERN("2.7", - [KDE_CHECK_PYTHON_INTERN("2.6", - [KDE_CHECK_PYTHON_INTERN("2.5", - [KDE_CHECK_PYTHON_INTERN("2.4", - [KDE_CHECK_PYTHON_INTERN("2.3", - [KDE_CHECK_PYTHON_INTERN("2.2", - [KDE_CHECK_PYTHON_INTERN("2.1", - [KDE_CHECK_PYTHON_INTERN("2.0", - [KDE_CHECK_PYTHON_INTERN($1, $2) ]) - ]) - ]) - ]) - ]) - ]) - ]) - ]) + for PYTHON_VER_TEST in 3.{12,11,10,9,8,7,6,5,4,3,2,1,0}; do + KDE_CHECK_PYTHON_INTERN("$PYTHON_VER_TEST") + if test -n "$PYTHONLIB"; then + break + fi + done ]) AC_DEFUN([KDE_CHECK_STL], @@ -4942,12 +4939,12 @@ AC_DEFUN([KDE_CONF_FILES], dnl This sets the prefix, for arts and tdelibs dnl Do NOT use in any other module. -dnl It only looks at --prefix, TDEDIR and falls back to /usr/local/kde +dnl It only looks at --prefix, TDEDIR and falls back to /opt/trinity AC_DEFUN([KDE_SET_PREFIX_CORE], [ unset CDPATH dnl make $TDEDIR the default for the installation - AC_PREFIX_DEFAULT(${TDEDIR:-/usr/local/kde}) + AC_PREFIX_DEFAULT(${TDEDIR:-/opt/trinity}) if test "x$prefix" = "xNONE"; then prefix=$ac_default_prefix @@ -6448,3 +6445,215 @@ EOF AC_SUBST(LIBSQLITE3) fi ]) +# =========================================================================== +# +# SYNOPSIS +# +# TDE_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the specified +# version of the C++ standard. If necessary, add switches to CXX and +# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard) +# or '14' (for the C++14 standard). +# +# The second argument, if specified, indicates whether you insist on an +# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. +# -std=c++11). If neither is specified, you get whatever works, with +# preference for no added switch, and then for an extended mode. +# +# The third argument, if specified 'mandatory' or if left unspecified, +# indicates that baseline support for the specified C++ standard is +# required and that the macro should error out if no mode with that +# support is found. If specified 'optional', then configuration proceeds +# regardless, after defining HAVE_CXX${VERSION} if and only if a +# supporting mode is found. +# +# LICENSE +# +# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com> +# Copyright (c) 2012 Zack Weinberg <zackw@panix.com> +# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu> +# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com> +# Copyright (c) 2015 Paul Norman <penorman@mac.com> +# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu> +# Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com> +# Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com> +# Copyright (c) 2020 Jason Merrill <jason@redhat.com> +# Copyright (c) 2021 Slávek Banko <slavek.banko@axis.cz> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +dnl This macro is simplified version of the macro AX_CXX_COMPILE_STDCXX + +AC_DEFUN([TDE_CXX_COMPILE_STDCXX], [dnl + m4_if([$1], [11], [tde_cxx_compile_alternatives="11 0x"], + [$1], [14], [tde_cxx_compile_alternatives="14 1y"], + [$1], [17], [tde_cxx_compile_alternatives="17 1z"], + [m4_fatal([invalid first argument `$1' to TDE_CXX_COMPILE_STDCXX])])dnl + m4_if([$2], [], [], + [$2], [ext], [], + [$2], [noext], [], + [m4_fatal([invalid second argument `$2' to TDE_CXX_COMPILE_STDCXX])])dnl + m4_if([$3], [], [tde_cxx_compile_cxx$1_required=true], + [$3], [mandatory], [tde_cxx_compile_cxx$1_required=true], + [$3], [optional], [tde_cxx_compile_cxx$1_required=false], + [m4_fatal([invalid third argument `$3' to TDE_CXX_COMPILE_STDCXX])]) + AC_LANG_PUSH([C++])dnl + ac_success=no + + m4_if([$2], [], [dnl + AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, + tde_cv_cxx_compile_cxx$1, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_TDE_CXX_COMPILE_STDCXX_testbody_$1])], + [tde_cv_cxx_compile_cxx$1=yes], + [tde_cv_cxx_compile_cxx$1=no])]) + if test x$tde_cv_cxx_compile_cxx$1 = xyes; then + ac_success=yes + fi]) + + m4_if([$2], [noext], [], [dnl + if test x$ac_success = xno; then + for alternative in ${tde_cxx_compile_alternatives}; do + switch="-std=gnu++${alternative}" + cachevar=AS_TR_SH([tde_cv_cxx_compile_cxx$1_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_TDE_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + fi]) + + m4_if([$2], [ext], [], [dnl + if test x$ac_success = xno; then + dnl HP's aCC needs +std=c++11 according to: + dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf + dnl Cray's crayCC needs "-h std=c++11" + for alternative in ${tde_cxx_compile_alternatives}; do + for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do + cachevar=AS_TR_SH([tde_cv_cxx_compile_cxx$1_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_TDE_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + if test x$ac_success = xyes; then + break + fi + done + fi]) + AC_LANG_POP([C++]) + if test x$tde_cxx_compile_cxx$1_required = xtrue; then + if test x$ac_success = xno; then + AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) + fi + fi + if test x$ac_success = xno; then + HAVE_CXX$1=0 + AC_MSG_NOTICE([No compiler with C++$1 support was found]) + else + HAVE_CXX$1=1 + AC_DEFINE(HAVE_CXX$1,1, + [define if the compiler supports basic C++$1 syntax]) + fi + AC_SUBST(HAVE_CXX$1) +]) + + +dnl Test body for checking C++11 support + +m4_define([_TDE_CXX_COMPILE_STDCXX_testbody_11], + _TDE_CXX_COMPILE_STDCXX_testbody_new_in_11 +) + + +dnl Test body for checking C++14 support + +m4_define([_TDE_CXX_COMPILE_STDCXX_testbody_14], + _TDE_CXX_COMPILE_STDCXX_testbody_new_in_11 + _TDE_CXX_COMPILE_STDCXX_testbody_new_in_14 +) + +m4_define([_TDE_CXX_COMPILE_STDCXX_testbody_17], + _TDE_CXX_COMPILE_STDCXX_testbody_new_in_11 + _TDE_CXX_COMPILE_STDCXX_testbody_new_in_14 + _TDE_CXX_COMPILE_STDCXX_testbody_new_in_17 +) + +dnl Tests for new features in C++11 + +m4_define([_TDE_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201103L + +#error "This is not a C++11 compiler" + +#endif // __cplusplus >= 201103L + +]]) + + +dnl Tests for new features in C++14 + +m4_define([_TDE_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201402L + +#error "This is not a C++14 compiler" + +#endif // __cplusplus >= 201402L + +]]) + + +dnl Tests for new features in C++17 + +m4_define([_TDE_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201703L + +#error "This is not a C++17 compiler" + +#endif // __cplusplus >= 201703L + +]]) @@ -820,7 +820,6 @@ sub tag_FINAL() $handling .= "\trm -f $program.all_$suffix.files $program.all_$suffix.final; \\\n"; $handling .= "\techo \"#define KDE_USE_FINAL 1\" >> $program.all_$suffix.final; \\\n"; $handling .= "\tfor file in " . $sourcelist{$suffix} . "; do \\\n"; -# $handling .= "\t tqt-replace \$\(srcdir\)/\$\$file; \\\n"; $handling .= "\t echo \"#include \\\"\$\$file\\\"\" >> $program.all_$suffix.files; \\\n"; $handling .= "\t test ! -f \$\(srcdir\)/\$\$file || egrep '^#pragma +implementation' \$\(srcdir\)/\$\$file >> $program.all_$suffix.final; \\\n"; $handling .= "\tdone; \\\n"; @@ -1366,7 +1365,7 @@ sub tag_UIFILES () my ($mangled_source) = $source; $mangled_source =~ s/[^A-Za-z0-9]/_/g; # get rid of garbage $dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n"; - $dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" | \$(PERL) -pe \"s,: TQWizard\\(,: KWizard(,g; s,: QWizard\\(,: KWizard(,g;\" >> $source.$cxxsuffix ;\\\n"; + $dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),TQString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),TQString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" | \$(PERL) -pe \"s,: TQWizard\\(,: KWizard(,g; s,: QWizard\\(,: KWizard(,g;\" >> $source.$cxxsuffix ;\\\n"; $dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n"; } else { $dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n"; @@ -2116,10 +2115,8 @@ sub findMocCandidates () seek(HFIN, 0, 0); read HFIN, $hfData, $hfsize; close HFIN; - # push (@list, $hf) if(index($hfData, "Q_OBJECT") >= 0); ### fast but doesn't handle //Q_OBJECT - # handle " { friend class blah; Q_OBJECT ", but don't match antlarr_Q_OBJECT (\b). - if ( $hfData =~ /{([^}]*)\bQ_OBJECT/s ) { - push (@list, $hf) unless $1 =~ m://[^\n]*Q_OBJECT[^\n]*$:s; ## reject "// Q_OBJECT" + if ( $hfData =~ /{([^}]*)\bT?Q_OBJECT/s ) { + push (@list, $hf) unless $1 =~ m://[^\n]*T?Q_OBJECT[^\n]*$:s; ## reject "// (T)Q_OBJECT" } } # The assoc array of root of headerfile and header filename diff --git a/configure.in.min b/configure.in.min index f14af0b..33e23dc 100644 --- a/configure.in.min +++ b/configure.in.min @@ -46,6 +46,7 @@ AC_CONFIG_HEADER(config.h) dnl at the distribution this done dnl Checks for programs. AC_PROG_CC AC_PROG_CXX +TDE_CXX_COMPILE_STDCXX(11) AC_CHECK_COMPILERS AC_ENABLE_SHARED(yes) AC_ENABLE_STATIC(no) |