-
Notifications
You must be signed in to change notification settings - Fork 82
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
CI testing of post install libraries #75
Comments
I've added "Testing of installed libraries" section here: #88. Will think about workaround. |
Thanks. It would be reassuring to make sure the builds work after packing. I think this could catch issues such as RPATH and symbol stripping errors. [UPDATE] I see you already have enumerated some potential issues. |
Thinking about this feature. Also I will call it "integration test", though not sure about the correctness of this term :) Got next points so far: We can't use the same way of testing as usual and change only one option like if(DRISHTI_TEST_INSTALLED)
find_package(drishti CONFIG REQUIRED)
else()
add_subdirectory(...) # -> target 'drishti'
endif() because in this case we have to watch really carefully the surrounding code. For example the Hence, the part of the project we want to run integration test with, must be stand-alone project: cmake_minimum_required(VERSION x.y)
project(dristhi-tests)
if(TARGET drishti) # build as part of the project
add_library(dristhi::drishti ALIAS drishti)
else()
find_package(drishti CONFIG REQUIRED)
endif() In this case we need to install
|
Thanks for the overview. To complicate things further, I'm realizing that only HOST=TARGET builds are currently tested. Maybe
This sounds good to me. Re: hunter feature https://github.com/ruslo/hunter/issues/274. FWIW, this is relevant to the current CMake copy stage in the drishti CMake code here. https://github.com/elucideye/drishti/blob/master/src/lib/drishti/CMakeLists.txt#L279-L290 Currently the shared library swallows most of the dependencies, so an end user (not using hunter) doesn't need them. In practice, this is complicated by the fact that the user application can have common dependencies, so these libraries (or at least the common ones) are shared with a release (including *.cmake package config files) in a 3rdparty folder. |
I think it's a separate issue. The feature I've described is about installing
This may increase the size of the final user application. Say, if some part of boost is fused into your shared library and user want to use boost too, then final executable will duplicate some boost code. We hit related issue already and I've discussed it here. After this discussion I decide to declare the linking static into shared the bad practice :) I will add examples and detailed description to CGold. |
Also we can assume that we are creating something that can work outside of the Hunter. And put the responsibility of correctness to the user. |
-> 0.3 |
Reading through this again.
I think it depends on the details of your use case. For many people running IDE project based development, I think a shared library (or dynamic framework) could be the preferred option (provided there are no conflicts, etc) if it provides a single convenient interface to work with. I don't see this is a good vs bad issue. |
Probably yes. By "I decide to declare the linking static into shared the bad practice" I mean in CGold project. CGold is about something minimal, correct and without "tricky" stuff. Also CGold is about approaches supported with CMake. All this public/private visibility which depends on the C++ code in fact and have no automatic control, this looks like a hell for the user who are not awared of such peculiarities. Also IDE + manual copy of framework is not about CMake-flow, hence out of CGold scope anyway. PS I think using shared libraries for the 3rd parties (i.e. linking shared to shared) doesn't have such issue. |
Per comments above #75 (comment), we can start with a simple Eventually, as drishti becomes a proper hunter-package, this can also support a Note: The public SDK interface to the drishti/hci module also needs to be completed and added. |
Initial build test in #282. There is no automated testing/deployment component to this yet -- just the build test. I think that should be a fairly straightforward extension of the internal |
Installed package integrity is now tested nicely through optional |
We need to ensure that functionality in the post installation libraries (after stripping etc.) is tested, as something could go wrong during that stage.
The text was updated successfully, but these errors were encountered: