-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CMake: enable using external mpark.variant #1900
Conversation
Means GIT_SUBMODULE=OFF is not required if no bundled dependencies are used
Ended up not setting netcdf version
With configure I can build and test everything but the unit tests. With tests enabled, it fails, but a summary is printed, including instructions on how to continue:
Is there a way around this? The whole summary should probably be dropped, as this is confusing, and building does not work. Also CHECK changed to 3, compared to 2 with configure. Besides that, However, if I provide googletest, it does not work anymore: The can be fixed by: However, then most tests fail. The unit tests are very noise, it seems the awk script to reduce the noise is not used. This is very annoying as it fills the buffer of my terminal with stuff I don't care, thus hiding errors.
So this does fix the issues, but there are still some other regressions compared to |
`googletest <https://github.com/google/googletest>`_. If you wish to | ||
use an existing installation of ``mpark.variant``, you can set | ||
``-DEXTERNAL_MPARK_VARIANT=ON``, and supply the installation path | ||
using ``mpark_variant_ROOT`` via the command line or environment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that this is not required, if the path is already known.
Is it intentionally that the unit tests are not run if the integrated tests fail? |
There are several other things, that do not seem possible, like running all tests, as well as skipping tests if requirements are not available. There still seem to be some things missing in the cmake interface. The main question is, do we want to transition to cmake? I do not feel strongly about this, but I do not like the current state, where we have 2 build systems. |
The
(or
What actually fails here? I possibly have a solution to the summary always getting printed, will push soon. We could bump it up to VERBOSE, it's just on by default because that's how we do it with configure.
If you're trying to use a system installation of googletest: that's not supported. Google recommend not doing that, and building googletest at the same time as your project. As it's only the unit tests that are linked against it, and we don't install those, this shouldn't be a problem. Therefore, we always use the bundled googletest.
What's failing? How are you running the tests?
Which errors does this fix with CMake where this isn't required with configure? Only the integrated tests use the python tools, so they must need
Sure, the CMake interface is not 100% complete yet. I'm aware of some things, but I've almost certainly missed some things.
Nope! How are you running the tests?
There's a There's a CMake function,
If there's some tests that are being run despite missing requirements, that's a bug!
Yes, there are definitely things currently missing. The MMS tests, for instance. I don't think CMake is perfect, but I do think it has some distinct advantages over the autoconf build system, speaking with my maintainer hat on. I would like us to eventually switch over to just the CMake, but with a transition period while the wrinkles are ironed out. |
This stops the summary getting printed
|
Try system libraries of fmt/mpark, if GIT_SUBMODULE=OFF
…l-mpark Conflicts: CMakeLists.txt
bb59af7
to
9f62fad
Compare
Fixes #1899
The following now works for me without downloading the submodules:
note that this turns off the tests because
googletest
is still required for the unit tests. The recommended way to buildgoogletest
is at the same time as the main project, so there is not an option to use an external version of that.GIT_SUBMODULE=OFF
can still be used to turn off updating the submodules, but is now secondary toEXTERNAL_*
.