Skip to content
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

Avoid forcing VCPKG and allow using external dependencies #4960

Closed
barracuda156 opened this issue May 9, 2024 · 5 comments · Fixed by macports/macports-ports#24239
Closed

Comments

@barracuda156
Copy link
Contributor

Please do not force everyone to rely on VCPKG. The build should be customizable.

The following commit brought this undesirable change: 5997aff

Using external dependencies should be supported, that is how most downstream software distributions work. We do not want VCPKG to choose some random stuff to build for us in MacPorts, for example. Otherwise this kind of tickets arise.

barracuda156 referenced this issue May 9, 2024
[SC-36911](https://app.shortcut.com/tiledb-inc/story/36911/remove-enable-vcpkg-options-from-cmake-command-line-and-bootstrap-scripts)

This PR changes the severity of the message when we configure with
`-DTILEDB_VCPKG=OFF` from a `DEPRECATION` to a `FATAL_ERROR`. This means
that using the legacy `ExternalProject`-based mechanism for acquiring
dependencies is no longer supported. The `ExternalProject` modules have
become dead code and will be removed in a subsequent PR.

---
TYPE: BUILD
DESC: Vcpkg is always enabled; turning the `TILEDB_VCPKG` option off is
no longer supported and fails.
@teo-tsirpanis
Copy link
Member

@barracuda156 you can disable automatic downloading of vcpkg by setting the TILEDB_DISABLE_AUTO_VCPKG environment variable to any value.

@teo-tsirpanis
Copy link
Member

@MehdiChinoune sorry for the frustration. The packaging of lz4 has a known issue where the official and vcpkg distributions have different casing of the package names. I have made work towards unifying their behavior and will continue to do so by engaging with both lz4 and vcpkg. In the meantime you can apply a patch we have been using for Conda, that will make CMake use the standard find_library mechanism to get lz4.

I must also say that the name TILEDB_VCPKG has been a bit misleading. In the past, we were using CMake ExternalProjects to download and build our dependencies, which has been a very hard to maintain solution for various reasons. Setting -DTILEDB_VCPKG=ON disables this legacy mechanism and makes our build system exclusively use the standard CMake find_*** commands to find our dependencies. These dependencies can be provided by vcpkg which gets downloaded by default for convenience, but we are not forcing downstreams to use vcpkg. Auto-downloading it can be disabled as explained in my previous comment, and then the user can use standard CMake facilities like CMAKE_PREFIX_PATH to guide the build system to the dependencies.

Let me know if you have further questions.

@teo-tsirpanis
Copy link
Member

Opened macports/macports-ports#24239 to migrate the tiledb port to not need to patch disabling TILEDB_VCPKG.

@teo-tsirpanis
Copy link
Member

The MacPorts PR has been merged, I believe we can close this issue. Let us know if you encounter another problem.

@barracuda156
Copy link
Contributor Author

@teo-tsirpanis Thank you very much.

P. S. By the way, if you or anyone will be interested to help us maintain TileDB port, welcome to be a co-maintainer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants