Highlights:
- Stop building cmake itself with ninja. Upstream has decided not to
support this anymore. I see no benefit and it's getting harder and
harder to take care of.
- Use cmake's internel libuv, json-cpp etc. to build the bootstrap
cmake (only bootstrap).
- Fix SONAME in cmake ports
Notable port changes:
- Fix COMPILER, it's not possible to build the old and the new cmake
version with base-gcc, isn't.
- It doesn't make any sense to keep the m88k XXX tags. CMake don't build
under m88k.
- Tech cmake to detect/provide system JDK11, lua and new ruby version
(of course upcoming ruby 2.7)
- I took some pre-configure commands from the FreeBSDs port.
- Add --docdir to avoid warnings and sort CONFIGURE_ARGS
Bulk build by naddy@ on amd64. Thanks a lot!
Successful test by Martin Reindl on macppc and arm64. Thanks!
there may be some missing as my unpacked ports source is a little out of date
but this should catch the main things people might run into
the struct was reordered a second time in sysctl.h r1.192 to improve
compatibility but amd64 snapshot packages made it out before that happened
so the bumps are still needed
some existing COMPILER lines with arch restrictions etc. In the usual
case this is now using "COMPILER = base-clang ports-gcc base-gcc" on
ports with c++ libraries in WANTLIB.
This is basically intended to be a noop on architectures using clang
as the system compiler, but help with other architectures where we
currently have many ports knocked out due to building with an unsuitable
compiler -
- some ports require c++11/newer so the GCC version in base that is used
on these archirtectures is too old.
- some ports have conflicts where an executable is built with one compiler
(e.g. gcc from base) but a library dependency is built with a different
one (e.g. gcc from ports), resulted in mixing incompatible libraries in the
same address space.
devel/gmp is intentionally skipped as it's on the path to building gcc -
the c++ library there is unused in ports (and not built by default upstream)
so intending to disable building gmpcxx in a future commit.
Some of these variables may be moved to more permanent homes later, after
samurai gets through a bulk build, but for now this allows testing of
samurai without changing the default case of using ninja.
Adapted from sthen@'s diff. ok sthen@
3.11.2 has issues along these lines:
cmQtAutoGeneratorMocUic.cxx:(.text+0x8e8b): undefined reference to `operator new(unsigned long, std::align_val_t)'
cmQtAutoGeneratorMocUic.cxx:(.text+0x8ebf): undefined reference to `operator delete(void*, std::align_val_t)'
Setting DEBUG changed the cmake build type ("release" vs "debug"), which
had a bunch of undocumented and surprising consequences:
- changing CFLAGS/LDFLAGS etc, potentially to values unsupported on
OpenBSD, instead of just using what the user passed in DEBUG
- PLIST changes which break packaging when using PLIST_DB (default)
Leave DEBUG alone and introduce MODCMAKE_DEBUG as a documented feature
instead, as proposed by various folks. Reluctant ok landry@ (thanks!)
that are passed to the linker, automatically add '-Wl,-z,wxneeded'
to the linker flags.
Works for libQt5WebKit, libQtWebKit, libwebkit2gtk, libwebkitgtk.
Requested by, and ok, ajacoutot@
Also ok landry@
the .pc file, so that at the end a list of full paths to the libraries
is returned.
This makes the pkg_check_modules() behaviour consistent with the
normal CMake convention, where use of link_directories() is discouraged
in favour of using absolute paths to system libraries.
Patch by Sam Thursfield <sam.thursfield@codethink.co.uk>
https://cmake.org/Bug/view.php?id=15804