Commit Graph

1769 Commits

Author SHA1 Message Date
Vadim Zeitlin
fbd645b2dd Use C99 to compile Expat sources under Unix
Expat requires C99 and doesn't compile without the appropriate command
line option at least under Solaris as <stdbool.h> is not available
without it there.

Closes https://github.com/wxWidgets/wxWidgets/pull/1250

Closes #18352.
2019-03-14 12:39:53 +01:00
Vadim Zeitlin
606659d27c De-TAB-ify configure
No real changes, just remove the hard TABs.
2019-02-03 22:52:43 +01:00
Vadim Zeitlin
b1057cad05 Also disable SDL under macOS for configure-based builds
SDL-based wxSound backend doesn't currently compile under macOS and is
probably not very useful there anyhow.
2019-02-03 22:51:10 +01:00
Vadim Zeitlin
7226a8f4df Use 10.9 SDK by default in configure under macOS
On modern macOS systems, libstdc++ headers are not installed by default
any more and using 10.7 SDK requires them, so running configure fails
out of the box.

Avoid this by defaulting to the earliest SDK version which works even
under 10.14.
2019-01-16 14:51:08 +01:00
Vadim Zeitlin
b9fe8ca10c Try to use pkg-config for detecting libtiff in configure
This is more reliable than checking whether we can link with the library
manually and may work even if it's installed in a non-standard location.

It also allows the user to specify PKG_CONFIG_PATH='pkg-config --static'
when running configure to link with all transitional dependencies when
linking statically.

Closes https://github.com/wxWidgets/wxWidgets/pull/1073

See #18293.
2018-12-13 03:53:44 +01:00
Vadim Zeitlin
e1185d8bf0 Increment version number to 3.1.3
Done by running misc/scripts/inc_release, manually updating version.bkl,
rebaking and rerunning autoconf.
2018-12-10 19:06:18 +01:00
Maarten Bent
ec4b71afa0 Update tiff submodule
Add the new files to the build system. Disable support for webp and zstd
because we do not want to depend on external libraries.
2018-11-17 19:08:40 +01:00
Vadim Zeitlin
ef2b015e39 Export CC and similar variables for sub-configure scripts
This is especially important under macOS where we modify CC, CPP and CXX
to use the specified SDK, and it's important to compile the code of 3rd
party libtiff and expat libraries using the same SDK, but also matters
for the other platforms when using non-default CC and CXX values.

By exporting these values we ensure that tiff and expat use the same
compilers and flags as the main libraries linking with them.
2018-10-20 22:58:48 +02:00
Vadim Zeitlin
2242e98a4c Disable the use of liblzma in libtiff if detecting it failed
We only disabled LZMA support in libtiff if --without-liblzma was
explicitly specified, but we need to do it also if liblzma wasn't
detected because libtiff configure might erroneously decide that it's
available under macOS when using -isysroot, which would result in
compilation errors later. And even if there were no such problem, it's
still worth disabling LZMA support explicitly to skip unnecessary
checking for it again in libtiff configure.
2018-10-20 18:14:47 +02:00
Vadim Zeitlin
ccd2862d23 Use SDK options with cpp too in configure under macOS
Otherwise trying to compile and preprocess a file could behave
differently because the format could not find a header existing in the
system due to the use of -isysroot option, confusing configure.
2018-10-20 13:39:27 +02:00
Vadim Zeitlin
aab02ec1ce Link wxCore with SDL libraries
Now that wxSound class, which can optionally use SDL, is in wxCore, we
need to link it with the SDL libraries to fix link errors in this case.

Closes #18251.
2018-10-17 19:13:00 +02:00
Paul Cornett
e351bd513b Fix timepick configure option 2018-10-09 22:18:34 -07:00
Vadim Zeitlin
1d40b629a2 Remove the unused msw.display.directdraw system option
This should have been part of 16e4586527
which removed the code this option pertained to.

See #12387.
2018-09-30 15:30:53 +02:00
Paul Cornett
99565d0619 Fix checking for round()
Old check fails on current GCC/glibc with
"error: statement cannot resolve address of overloaded function"
2018-09-21 08:25:31 -07:00
Maarten Bent
6b9a6d4446 Disable wxUIActionSimulator for wxDFB
Show used toolkit when disabling wxTooltip.
2018-09-19 22:03:00 +02:00
Vadim Zeitlin
1f435261f6 Merge branch 'more-qt-win-build-fixes' of https://github.com/catalinr/wxWidgets
Miscellaneous fixes for building wxQt under MSW.

See https://github.com/wxWidgets/wxWidgets/pull/918
2018-09-17 23:26:27 +02:00
Vadim Zeitlin
3e2fd136ff Disable tons of warnings given during wxGTK1 build
These warnings are not going to be fixed, so suppress them to at least
see the other ones more clearly.
2018-09-17 15:24:41 +02:00
Vadim Zeitlin
140b3c5e65 Disable wxGraphicsContext in wxGTK1 build, it doesn't compile
There is no chance of wxGraphicsContext ever being supported in this
legacy port, but at least disable it automatically instead of requiring
to specify --disable-graphics-ctx on the command line.
2018-09-17 15:24:41 +02:00
Vadim Zeitlin
6132ce85a8 Do use compiler TLS support under NetBSD
It didn't work when support for using compiler-provided TLS was added in
7beff712f0 back in 2009 but is reported to
work since 2011, so it should be safe to use unconditionally now.

Closes #18200.
2018-08-18 15:01:41 +02:00
Vadim Zeitlin
48fc60609d Use more compatible "=" in test(1) instead of "=="
The latter is not supported in all shells and results in problems under
NetBSD for example.

Closes #18198.
2018-08-16 13:45:53 +02:00
Cătălin Răceanu
e2a78115dd under Windows use win format for pwd and custom paths, required by ar and ld 2018-08-03 02:33:06 +03:00
Cătălin Răceanu
69c5d5a627 more changes to accept mingw64 2018-08-03 02:33:06 +03:00
mill-j
148079c618 Fix building wxQt under HaikuOS and make it default
Recognize HaikuOS and work around several platforms with socket-related
functions there.

Also make wxQt the default port under this platform.

See #9168.
2018-07-31 18:43:10 +02:00
Vadim Zeitlin
2034f6683b Disable use of wxSecretStore with wxGTK1
libsecret is for GTK+ 2+ only and can't be used with GTK+ 1.
2018-07-10 14:54:19 +02:00
Cătălin Răceanu
6b0d920c3f Fixes for mingw64 to allow configure to finish under MSW 2018-06-24 19:47:55 +03:00
Cătălin Răceanu
e2594c8bb9 Add QT5_CUSTOM_DIR as Qt root dir for install and lib subdirs 2018-06-24 19:46:58 +03:00
Vadim Zeitlin
311b2aee5f Check for liblzma headers in configure too and add wxUSE_LIBLZMA
Prepare for using liblzma in wxWidgets code by adding the necessary
option and updating the configure check for it (which had been already
present due to libtiff possible dependency on liblzma).

No real changes yet.
2018-04-06 15:39:39 +02:00
Vadim Zeitlin
6037718fef Don't try building universal macOS binaries for PPC
Support for this architecture is not present in any of the still
supported SDK versions anyhow.
2018-03-08 23:21:44 +01:00
Tobias Taschner
f3f1819daf Add archive sample
This sample shows usage of wxArchiveStream and wxArchiveFactory.
It also allows for easy testing of wxArchiveStream implementations
outside of the unit tests.

See https://github.com/wxWidgets/wxWidgets/pull/730
2018-02-20 14:39:27 +01:00
Vadim Zeitlin
2ec2837f6d Update version to 3.1.2
Run misc/scripts/inc_release and rebake.
2018-02-20 00:08:01 +01:00
Vadim Zeitlin
8881953bea Add support for --with-cxx=17 configure option
Use the latest version of ax_cxx_compile_stdcxx.m4 from the autoconf
archive for C++17 support and handle "17" as the option value in our
configure.

See https://github.com/wxWidgets/wxWidgets/pull/721
2018-02-06 22:38:26 +01:00
Vadim Zeitlin
56511118d9 Merge branch 'cxx11-abi-fix'
Avoid ABI issues when building the library in C++98 mode and the
application using C++11 due to using different unordered containers.

Closes #18034.
2018-01-25 13:50:21 +01:00
Tobias Taschner
ddceaab001
Remove MSW wxUxThemeEngine class
This undocumented "private" class was used for various windows UxTheme
functions which are available since WinXP. As wxWidgets 3.1 is XP+ it
does not make sense anymore to load the theme functions dynamically.
2018-01-22 00:51:11 +01:00
Vadim Zeitlin
e723bb2ee4 Try to fix macOS build using cmake after xlocale changes
Commit bc13119494 removed the inclusion of
xlocale.h because it is not (and never was) needed under Linux with
glibc, but it is still needed under macOS, so this (silently) disabled
wxXLocale support under Mac when using configure and broke the build
when using cmake.

Fix both problems by using xlocale.h only if it's available, both in
configure and in cmake.
2018-01-21 16:49:26 +01:00
Vadim Zeitlin
bc13119494 Don't check for non-standatd xlocale.h in configure
Testing for xlocale.h was due to a misunderstanding, this header wasn't
supposed to define locale_t which is defined by locale.h itself and was
just some internal glibc header which was removed in its 2.26 release,
see

https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27xlocale.h.27

Stop checking for it in configure and also don't always define
wxUSE_XLOCALE but only do it if the configure test succeeded.
2018-01-20 13:47:21 +01:00
Vadim Zeitlin
00b3b323de Define std-related symbols in configure when using C++11 too
Even though we don't need to perform the checks for the availability of
<unordered_map> or <type_traits> headers when using C++11 because we can
safely assume they're indeed available, we still need to define the
corresponding symbols, as if the checks were performed, so that the code
inside and outside the library could test them in any case, whether
we're using C++11 or not.
2018-01-14 03:09:12 +01:00
Rafael Kitover
22b0b4dda7 autoconf and bakefile support for GTK+4
Add autoconf and bakefile support for detecting and using GTK+4, similar
to how GTK+3 is detected and used.

GTK+3 is checked for first before GTK+4, this can be overridden in
`./configure` using `--with-gtk=4`.

With GTK+4 the `__WXGTK4__` `#define` is also set in `setup.h.in`.

This commit does not regenerate any files.
2017-12-12 08:48:36 -08:00
Vadim Zeitlin
38cc8498d1 Fix wxXLocale availability detection in configure
This was broken by 9507bc430e which
stopped defining HAVE_LOCALE_T in configure but didn't update the code
using it.

Restore the old behaviour by continuing to define HAVE_LOCALE_T even if
we don't test (just) for it any longer.

See https://github.com/wxWidgets/wxWidgets/pull/461
2017-12-10 02:32:54 +01:00
Vadim Zeitlin
b0c4cb7131 Correct order of 3rd party libraries in wx-config output
A recent change fixing monolithic build broke the normal build when
using built-in libraries under Unix as -lwxzlib now came before -lwxpng
and so zlib symbols used by libpng were not found (in fact, they could
still be found in the system library which is usually available under
Unix, so the problem wasn't seen immediately, but it was still there).

See https://github.com/wxWidgets/wxWidgets/pull/621
2017-12-08 02:38:47 +01:00
Pavel O
204bc3c887 Fix linking of wxscintilla in static monolithic build
wx-config didn't report -lwxscintilla for `wx-config --libs stc` in static
monolithic build.

Since stc is a part of monolithic lib, -lwxscintilla will be reported
for `wx-config --libs` now as well.
2017-12-05 23:02:47 +01:00
Pavel O
390a3885ba Fix linking of third party system libs in static monolithic build
Include 3rd party libs in wx-config output even when using the system,
and not the built-in, versions of them for static monolithic build.

See https://github.com/wxWidgets/wxWidgets/pull/621
2017-11-30 21:58:06 +01:00
Pavel O
e7e649df40 Check for lzma and jbig when using system libtiff
Currently lzma and jbig libraries are checked only for builtin
libtiff. When the system libtiff is built with lzma and jbig
support and when the `--with-libtiff=sys` flag is specified
the configure script will fail, due to missing linking with
lzma and jbig.

Fixed this by moving lzma and jbig checks from libtiff-builin check
above all libtiff checks. Also added lzma and jbig libs to
EXTRALIBS_GUI.

See https://github.com/wxWidgets/wxWidgets/pull/619
2017-11-27 21:57:07 +01:00
Vadim Zeitlin
472bb3d6d2 Fix wxUSE_PRIVATE_FONTS definition in configure
Only define it unconditionally for wxMSW and wxOSX, not wxGTK where we
need to test that the required versions of FontConfig and Pango Fc are
available.

Also do all wxUSE_PRIVATE_FONTS-related checks in the same place, to
make things more clear and avoid similar blunders in the future.
2017-11-25 00:07:01 +01:00
Vadim Zeitlin
b040dab0ca Add wxUSE_PRIVATE_FONTS and drop wxHAS_PRIVATE_FONTS
Handle this feature as all the other ones and provide a configure switch
and a setup.h option to disable it if necessary, as it may be desirable
to do it, especially under Linux, to avoid extra dependency on pangoft2
if this functionality is unnecessary.
2017-11-24 22:56:17 +01:00
Vadim Zeitlin
a98c51e6bc Check for pangoft2 >= 1.38 in configure too
We need to use PKG_CHECK_MODULES(pangoft2) anyhow because we need to
link with its libraries, so make the version check there too and
simplify wxFont::AddPrivateFont() implementation in wxGTK.
2017-11-14 15:27:49 +01:00
Vadim Zeitlin
3158a46ce7 Require fontconfig >= 2.8 and change its guard macro name
FcConfigAppFontAddFile() that we use is only available since 2.8, so
check for at least this version of the library in configure.

Also change the macro guarding its use to the more semantically
appropriate "wxHAVE" rather than "wxUSE" and make it more precise by
adding "2_8_0" suffix to it.
2017-11-13 22:29:30 +01:00
Vadim Zeitlin
ac4f99fa0d Test for FontConfig availability in configure when using wxGTK
This library is now needed in order to implement wxFont private font
methods.
2017-11-13 22:29:29 +01:00
Vadim Zeitlin
824134d427 Replace Expat sources directory with a Git submodule
This will make it simpler to track upstream in the future.
2017-11-11 20:50:50 +01:00
Sean D'Epagnier
35bc8f449b Improve build and widget storage
There are no longer any qt headers included in wx/qt headers.
Applications do not need to link with qt librarys anymore, only wxqt libraries.
wxWindow and derived widgets only contain one pointer to their qtwidget, no longer
  carrying both base and derived pointers in parallel as was before.
2017-11-06 02:05:40 +01:00
Vadim Zeitlin
e70fc11ef1 Replace CppUnit with Catch for unit tests
Drop the legacy CppUnit testing framework used for the unit tests.
Replacing it with Catch has the advantage of not requiring CppUnit
libraries to be installed on the system in order to be able to run
tests (Catch is header-only and a copy of it is now included in the
main repository itself) and, in the future, of being able to write
the tests in a much more natural way.

For now, however, avoid changing the existing tests code as much as
[reasonably] possible to avoid introducing bugs in them and provide
the CppUnit compatibility macros in the new wx/catch_cppunit.h header
which allow to preserve the 99% of the existing code unchanged. Some
of the required changes are:

 - Decompose asserts using "a && b" conditions into multiple asserts
   checking "a" and "b" independently. This would have been better
   even with CppUnit (to know which part of condition exactly failed)
   and is required with Catch.

 - Use extra parentheses around such conditions when they can't be
   easily decomposed in the arrays test, due to the use of macros.
   This is not ideal from the point of view of messages given when
   the tests fail but will do for now.

 - Rewrite asserts using "a || b" as a combination of condition
   checks and assert macros. Again, this is better anyhow, and is
   required with Catch. Incidentally, this allowed to fix a bug in
   the "exec" unit test which didn't leave enough time for the new
   process to be launched before trying to kill it.

 - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros,
   our emulation of this macro can be used only once.

 - Provide string conversions using Catch-specific StringMaker for
   a couple of types.

 - Replace custom wxImage comparison with a Catch-specific matcher
   class.

 - Remove most of test running logic from test.cpp, in particular don't
   parse command line ourselves any longer but use Catch built-in
   command line parser. This is a source of a minor regression:
   previously, both "Foo" and "FooTestCase" could be used as the name of
   the test to run, but now only the latter is accepted.
2017-11-02 01:53:16 +01:00