Using docker results in errors due to rate limit on pulling, so try to
reduce its use as much as possible. It still has to be used under Ubuntu
14.04 because it has a version of Python too old to work with HTTPS
servers using SNI and so using pip fails there.
Remove an explicitly set CMAKE_OSX_DEPLOYMENT_TARGET from the CMake iOS
build in order to use the default value which is now also set to an iOS
instead of macOS version.
It default to 2 currently, which is rather surprising, so prepare for
requiring specifying it explicitly by adding wxGTK_VERSION to all wxGTK
builds environments.
It's not implemented anyhow and results in warnings about
GK_GLEXT_VERSION redefinition due to include both the standard
GL/glext.h and Qt QtGui/qopenglext.h (which seems to be a slightly
different version of the same file).
This probably should be fixed by not including GL/gl.h at all, but for
now just disable it.
Mostly there are warnings about unused parameters because of
unimplemented functionality, but we don't have a simple way to disable
just those, so just don't use -Werror with this build at all.
This doesn't really change anything right now, as Ubuntu Xenial is used
by default anyhow, but removes the last message from the validator at
https://config.travis-ci.com/explore so still worth having.
Add wxALLOW_WARNINGS which can be set to prevent this from happening for
the ports where we don't want to avoids warnings anyhow because they
indicate real problems in the code, such as wxDFB.
Use the following CMake flags:
-DCMAKE_SYSTEM_NAME=iOS - for specifying it is an iOS build
-DCMAKE_FIND_ROOT_PATH=/usr/local - dir to search for the built wxWidgets libraries
-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO - don't require signing app packages
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 - specify a target so both the libraries and sample will use the same architecture
Also use the code signing flag when testing precompiled header support.
Don't build the default samples, widgets sample has features that are not supported by the iOS build.
Xcode seems to rebuild the libraries when installing, so call CMake only once.
* fixing compilation of tests that cannot build
bracket code with the corresponding wxUSE… macros
* adding directive for iOS
* adding a switch for skipping the run - not the build of tests
right now I don’t know yet, how to run the test binary in the iOS simulator, but building it is still a good test in itself
* adding skipping of tests
* increasing minimum deployment to get proper c++17 support
* using --disable-sys-libs, restoring other targets
even when the zlib in -isysroot is used, due to deployment on lower iOS versions inflateValidate may not be available and crash. The guards are evaluated using macros from the zlib from the SDK, not from the lowest version supported.
This works around a problem in our build system which doesn't set rpath
correctly when linking our own libraries, which means that "qa" library,
for example, doesn't record the path to its "xml" library dependency.
We already worked around this by linking any program using "qa" with
"xml" too, however this doesn't do anything if "--as-needed" flag is in
effect, as is the case by default under Ubuntu 18.04, so make our
workaround work by forcefully disabling this flag.
Real solution would be to use -Wl,-rpath correctly and then stop linking
with "xml" library unnecessarily in e.g. test_gui bakefile.
Our tests don't compile under Mac when targeting 10.9 and using C++17 as
they try to use C++17 std::uncaught_exceptions() which is only available
since 10.12 under macOS.
We could avoid the use of this function in the tests in this build
configuration, but for now just target 10.12 instead. Yet another
alternative would be to downgrade to using C++14.
Note that using C++98 results in tests build failure with clang as
libc++ doesn't allow using custom std::swap() specialization for
non-const references in its iter_swap(), it really requires using rvalue
references, which are, of course, only available in C++11 and later.
Move Precise (12.04) build to Trusty (4.04), move one of the existing
Trusty builds to Xenial (16.04) and all the other ones to Bionic (18.04)
to test under reasonably recent platforms too, and mostly.