Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Always use vcpkg. #4570

Merged
merged 6 commits into from
Apr 3, 2024
Merged

Always use vcpkg. #4570

merged 6 commits into from
Apr 3, 2024

Conversation

teo-tsirpanis
Copy link
Member

@teo-tsirpanis teo-tsirpanis commented Dec 11, 2023

SC-36911

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.

Copy link

@@ -39,7 +39,7 @@ option(CMAKE_EXPORT_COMPILE_COMMANDS "cmake compile commands" ON)
set(TILEDB_INSTALL_LIBDIR "" CACHE STRING "If non-empty, install TileDB library to this directory instead of CMAKE_INSTALL_LIBDIR.")

if (NOT TILEDB_VCPKG)
message(DEPRECATION "Disabling TILEDB_VCPKG is deprecated and will be removed in a future version.")
message(FATAL_ERROR "Disabling TILEDB_VCPKG is not supported.")
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now I made this a fatal error. In the near future TILEDB_VCPKG will be completely removed, and passing -DTILEDB_VCPKG=OFF will result in the usual CMake warning about unused variables.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK.

@teo-tsirpanis teo-tsirpanis changed the title [NO MERGE] Always use vcpkg. Always use vcpkg. Jan 19, 2024
@teo-tsirpanis teo-tsirpanis marked this pull request as ready for review January 19, 2024 20:32
Copy link
Contributor

@eric-hughes-tiledb eric-hughes-tiledb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

This code here insofar as it's just code is ready to merge. Before we merge, however, we need to ensure that none of our downstream users will be affected by these changes.

One of the changes does not affect downstream and could be merged immediately.

Comment on lines -50 to +56
cmake -B build ${{ matrix.config != 'Debug' && '-DTILEDB_VCPKG=OFF' }} -DTILEDB_WERROR=ON -DTILEDB_SERIALIZATION=ON -DTILEDB_EXPERIMENTAL_FEATURES=$EXPERIMENTAL -DCMAKE_BUILD_TYPE=${{ matrix.config || 'Release' }} -DTILEDB_SANITIZER=$SANITIZER_ARG -DTILEDB_VCPKG_BASE_TRIPLET=${{ matrix.base_triplet }}
cmake -B build -DTILEDB_WERROR=ON -DTILEDB_SERIALIZATION=ON -DTILEDB_EXPERIMENTAL_FEATURES=$EXPERIMENTAL -DCMAKE_BUILD_TYPE=${{ matrix.config || 'Release' }} -DTILEDB_SANITIZER=$SANITIZER_ARG -DTILEDB_VCPKG_BASE_TRIPLET=${{ matrix.base_triplet }}

- name: Configure TileDB CMake (Windows)
if: contains(matrix.os, 'windows')
working-directory: ${{ matrix.working_directory || github.workspace }}
run: |
cmake -B build -S $env:GITHUB_WORKSPACE ${{ matrix.config != 'Debug' && '-DTILEDB_VCPKG=OFF' }} -DTILEDB_WERROR=ON -DTILEDB_SERIALIZATION=ON -DCMAKE_BUILD_TYPE=${{ matrix.config || 'Release' }}
cmake -B build -S $env:GITHUB_WORKSPACE -DTILEDB_WERROR=ON -DTILEDB_SERIALIZATION=ON -DCMAKE_BUILD_TYPE=${{ matrix.config || 'Release' }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes don't have any effect on downstream dependencies. They could be split out into a separate PR and merged immediately.

@@ -39,7 +39,7 @@ option(CMAKE_EXPORT_COMPILE_COMMANDS "cmake compile commands" ON)
set(TILEDB_INSTALL_LIBDIR "" CACHE STRING "If non-empty, install TileDB library to this directory instead of CMAKE_INSTALL_LIBDIR.")

if (NOT TILEDB_VCPKG)
message(DEPRECATION "Disabling TILEDB_VCPKG is deprecated and will be removed in a future version.")
message(FATAL_ERROR "Disabling TILEDB_VCPKG is not supported.")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK.

@teo-tsirpanis
Copy link
Member Author

With conda-forge/tiledb-feedstock#242 being merged, there are no first-party projects that disable vcpkg. This PR can be merged.

Copy link
Member

@ihnorton ihnorton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also add a section to https://github.com/TileDB-Inc/TileDB/blob/dev/doc/dev/BUILD.md about how to support system packages with links to other projects.

@teo-tsirpanis
Copy link
Member Author

@ihnorton there is already this snippet. What else should I add?

TileDB/doc/dev/BUILD.md

Lines 131 to 136 in cab84bc

Vcpkg will not be automatically downloaded if:
* The `TILEDB_DISABLE_AUTO_VCPKG` environment variable has been defined.
* The build tree has been configured by directly calling CMake and the `CMAKE_TOOLCHAIN_FILE` variable has been set by the user.
In these cases CMake will find the dependencies based on the rules of the [`find_package`](https://cmake.org/cmake/help/latest/command/find_package.html) command. The user is responsible for providing the dependencies.

ihnorton pushed a commit that referenced this pull request Apr 2, 2024
@ihnorton ihnorton dismissed their stale review April 2, 2024 20:50

Addressed

@KiterLuc KiterLuc merged commit 5997aff into dev Apr 3, 2024
56 of 57 checks passed
@KiterLuc KiterLuc deleted the teo/vcpkg-always-on branch April 3, 2024 18:49
dudoslav pushed a commit that referenced this pull request Apr 17, 2024
dudoslav pushed a commit that referenced this pull request Apr 17, 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.
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants