Cmake improvements#501
Conversation
|
This is a quite an ambitious PR :). Each of these commits is interesting by itself. Since I am still working on the Catch2 stuff trying to fix some build issues with CMake on Ubuntu 21.04 I hope you give me some time to get this stuff merged. My actual problem is that this PR might causes a lot of conflicts with my own branch I am working on. I will have a look on this during the weekend. |
|
Ok. I am so far done with my huge branch (issue_445) which leaves me with the problem which to merge first. I guess what I am going to do is to merge directly from your branch planetmarshall:cmake-improvements and then merge all this together back to master. @jkotan can you please have a look on this PR if there is anything which is a total no-go for DESY? |
c8e3fac to
5c11ae9
Compare
|
Marking as draft while I rebase on the Catch2 changes. |
c8acb77 to
e19bd91
Compare
|
Btw. one problem I stumbled upon when I tried to naively merge your branch: where do you get the hdf5 CMake targets from? I obviously do not get them from the FindHDF5 module shipped with my Linux distribution. |
As documented here - https://cmake.org/cmake/help/latest/module/FindHDF5.html They are mimicked by the Conan package in CCI (which I also updated :) |
As much as I would love to use this. It seems this is a feature of the CMake >= 3.19 release and would therefore be a problem for us. The best I currently have at hand at my Ubuntu 21.04 installation is 3.18. Since we also have to support Debian package builds we should remain moderate with the expected cmake version :). |
|
OK, that's all my workflow configurations running now. @eugenwintersberger I'll address your comments as soon as I can. |
|
Marked as draft again. I want to add some workflow configurations to build under older CMake and without using conan. |
de2f3b6 to
f461091
Compare
|
Added an additional 4 linux configurations to the workflow to build under Ubuntu 18.04 using the default tools:
|
7f4f306 to
1c47af6
Compare
dd2f8dc to
64fc2d0
Compare
|
Since we have finally merged the Catch2 branch I will have a look on this PR. |
64fc2d0 to
003b0a2
Compare
003b0a2 to
341a0d1
Compare
|
@planetmarshall for the PR. @eugenwintersberger, are you looking on the PR? I understand that it would be much easier to do it with a few smaller PRs. Bellow I add a few of my comments:
|
The 2000 minutes/month limit only applies to private repositories with a free account. Actions run for a public repository don't count towards this. |
The problem is that by including this file h5cpp enforces some boost settings that should really be specified by the application that consumes h5cpp - eg enforcing use of dynamic libraries. As an application developer, it should be my choice whether or not to build using shared libraries - this decision shouldn't be enforced by the libraries I link to, unless there is some specific technological reason for doing so. |
|
Test fails because I need to rebase/merge the branch |
Tests are not working. The PR needs to be rebases
|
The ESS tests are available at https://jenkins.esss.dk/dm/blue/organizations/jenkins/ess-dmsc%2Fh5cpp/detail/pr_501c/4/pipeline |
|
I've just noticed that GitHub windows tests run only for |
|
The windows shared tests are not executed properly because when catch2 tries to executed compiled test files COMMAND ${TEST_EXECUTOR} "${TEST_EXECUTABLE}" ${spec} --list-test-names-onlyit returns: |
Yes I've seen this kind of thing before. Leave it with me. |
|
Thanks @planetmarshall for fixing shared windows tests. It would be good to add |
jkotan
left a comment
There was a problem hiding this comment.
@planetmarshall Thanks for the PR. It looks good to me.
|
Tests on ESS nodes can be seen at https://jenkins.esss.dk/dm/blue/organizations/jenkins/ess-dmsc%2Fh5cpp/detail/pr_501f/1/pipeline/ |
Many thanks for creating this library - I'm incorporating into a project and have made what I hope are a few improvements mostly on the CMake side. I've also added a Github Workflow but I realise you may have your own CI system. Submitting these changes in case you'd like to incorporate these changes upstream.
Summary of changes -
H5CPP_BUILD_SHAREDfor this. the default isOFF)conanfile.pyto retrieve dependencies from CCI based on configuration optionsBoostLibraryConfig.cmake- this interferes with some settings that should be supplied by the client and doesn't appear to be requiredFindGTestFix.cmake- this didn't appear to be requiredH5CPP_*for clarity