Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tests: delete CMake ExternalProject integration test
For no reason it broke when trying to silence a CMake deprecation warning in libssh2#1510. Then when tested locally, it did not work either with or without the patch in libssh2#1510. I'm not sure, but existing implementation may have worked by accident by re-using leftovers from the preceding two integration tests. After spending a days trying to fix this, I declare defeat. If such amount of time of testing, reading documentation, blog posts, variable traces, logs, bug reports is not enough to make this work, or even to understand how this should work, this seems like a lost cause. CMake makes it impossible to cleanly query the properties of a target, which would be essential for debugging. There are rough workarounds with years of iteration, and those still don't work to this day: https://stackoverflow.com/questions/32183975/how-to-print-all-the-properties-of-a-target-in-cmake Copy-pasting an incantation from a blog post that made this work: https://inhzus.io/posts/2023-12-01-cmake-external-project/ almost made it work, except that it had a workaround for a 10-year old pending bug, another workaround for Ninja which required CMake 3.29, with settings hard-wired, and explicitly configured in weird ways. But, it still missed to pass the libssh2 library to the test target and failed to link. Then tried to pass the libssh2 lib the "usual" way via: ``` target_link_libraries(test PRIVATE libssh2) ``` That also did not work because CMake decided that the external libssh2 target is of "UTILITY" type, and errored with: ``` CMake Error at CMakeLists.txt:39 (target_link_libraries): Target "libssh2" of type UTILITY may not be linked into another target. One may link only to INTERFACE, OBJECT, STATIC or SHARED libraries, or to executables with the ENABLE_EXPORTS property set. ``` This type property is read-only, and documentation has no mention of it, or how to set it whatsoever: https://cmake.org/cmake/help/latest/module/ExternalProject.html libssh2's `docs/INSTALL_CMAKE.md` mentions ExternalProject as a way to use libssh2. Added there with the initial CMake commit. We should probably delete it from there. This consumption method has a single mention in public issues: libssh2#1116 Closes libssh2#1522
- Loading branch information