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

[icu] add host depedency #16577

Merged
merged 41 commits into from
May 1, 2021
Merged

Conversation

autoantwort
Copy link
Contributor

Describe the pull request

Same as #16433, but now with host support in vcpkg as base

ports/icu/portfile.cmake Outdated Show resolved Hide resolved
@autoantwort autoantwort marked this pull request as ready for review March 7, 2021 23:22
ports/icu/portfile.cmake Outdated Show resolved Hide resolved
@JackBoosY JackBoosY added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Mar 8, 2021
@JackBoosY
Copy link
Contributor

@Neumann-A Do you have any other questions?

@Neumann-A
Copy link
Contributor

@JackBoosY: all tools should be moved into ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin if the bin folder is required instead of having an extra for-cross-compile subfolder.

ports/icu/portfile.cmake Outdated Show resolved Hide resolved
@autoantwort
Copy link
Contributor Author

@JackBoosY: all tools should be moved into ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin if the bin folder is required instead of having an extra for-cross-compile subfolder.

Ok, it now don't use the for-cross-compile subfolder anymore.

@JackBoosY
Copy link
Contributor

Shoud we wait for PR #16627?

@autoantwort
Copy link
Contributor Author

Shoud we wait for PR #16627?

Then we can use ${HOST_TRIPLET} instead of ${_HOST_TRIPLET}

@JackBoosY JackBoosY added the depends:different-pr This PR or Issue depends on a PR which has been filed label Mar 10, 2021
@autoantwort
Copy link
Contributor Author

I don't think that the x86_windows pipeline failure is caused by the latest commit.

@JackBoosY JackBoosY removed the depends:different-pr This PR or Issue depends on a PR which has been filed label Mar 13, 2021
Copy link
Contributor

@ras0219-msft ras0219-msft left a comment

Choose a reason for hiding this comment

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

This looks really great and I'm excited to merge!

I agree with @Neumann-A that it's probably better to use vcpkg_internal_get_cmake_vars() instead of hardcoding -arch x86_64.

# Install executables from ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin to /tools/icu/bin
file(GLOB ICU_TOOLS
${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*${VCPKG_HOST_EXECUTABLE_SUFFIX}
${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll
Copy link
Contributor

Choose a reason for hiding this comment

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

It would probably be better to use vcpkg_copy_tool_dependencies() instead of manually globbing the DLLs. This function may be updated to support .so and .dylib in the future.

Copy link
Contributor

Choose a reason for hiding this comment

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

Additionally, we could probably replace the original purge of the bin directory above (line ~340ish) with vcpkg_copy_tools(). Even if vcpkg_copy_tools() isn't applicable, it would be better to move those files to the tools directory instead of deleting and re-copying from the buildtrees.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Additionally, we could probably replace the original purge of the bin directory above (line ~340ish) with vcpkg_copy_tools()

The problem with vcpkg_copy_tools() is, that it copies to ${CURRENT_PACKAGES_DIR}/tools/${PORT}, but the files must be copied to ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin

Copy link
Contributor

Choose a reason for hiding this comment

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

you could use set(PORT "${PORT}/bin") but you could also add an option like SUBDIR or DESTINATION to vcpkg_copy_tools

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have added a DESTINATION parameter to vcpkg_copy_tools

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The problem with vcpkg_copy_tool_dependencies is, that it does not copy the tool dependencies ...
On my mashine it copies nothing and cmake can't start the applications because of missing dlls

ports/icu/vcpkg.json Outdated Show resolved Hide resolved
Refolve conflicts/updating version files
@JackBoosY
Copy link
Contributor

Will rerun the osx pipeline test later.

@JackBoosY JackBoosY added the info:reviewed Pull Request changes follow basic guidelines label Apr 23, 2021
@JackBoosY
Copy link
Contributor

When building libheif:x64-linux:

CMake Error at gdk-pixbuf/CMakeLists.txt:18 (install):
  install TARGETS given no LIBRARY DESTINATION for module target
  "pixbufloader-heif".

@JackBoosY JackBoosY removed the info:reviewed Pull Request changes follow basic guidelines label Apr 30, 2021
@autoantwort
Copy link
Contributor Author

When building libheif:x64-linux:

CMake Error at gdk-pixbuf/CMakeLists.txt:18 (install):
  install TARGETS given no LIBRARY DESTINATION for module target
  "pixbufloader-heif".

I think all the ci errors are unrelated to this PR

@JackBoosY
Copy link
Contributor

@autoantwort I've got the failure log, will restart pipeline test now.

@autoantwort
Copy link
Contributor Author

When building libheif:x64-linux

Maybe #17593 fixes that

@autoantwort
Copy link
Contributor Author

When building libheif:x64-linux

Maybe #17593 fixes that

Ok seems that a simple rerun solved the problem :)

@Neumann-A
Copy link
Contributor

Ok seems that a simple rerun solved the problem :)

that is because gdk-pixbuf will not be restored in the rerun and so libheif does not pick it up and installs successfully.

Copy link
Contributor

@strega-nil-ms strega-nil-ms left a comment

Choose a reason for hiding this comment

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

double documentation! o noes

docs/maintainers/vcpkg_copy_tools.md Outdated Show resolved Hide resolved
scripts/cmake/vcpkg_copy_tools.cmake Outdated Show resolved Hide resolved
Copy link
Contributor Author

@autoantwort autoantwort left a comment

Choose a reason for hiding this comment

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

Seems that the DESTINATION option was also added in another PR

docs/maintainers/vcpkg_copy_tools.md Outdated Show resolved Hide resolved
scripts/cmake/vcpkg_copy_tools.cmake Outdated Show resolved Hide resolved
@autoantwort
Copy link
Contributor Author

Most random ci errors were resolved by a rerun, now this PR only depends on #17610

@strega-nil-ms
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@strega-nil-ms strega-nil-ms merged commit 4b6289b into microsoft:master May 1, 2021
@strega-nil-ms
Copy link
Contributor

Thanks @autoantwort :)

sthagen added a commit to sthagen/microsoft-vcpkg that referenced this pull request May 2, 2021
@autoantwort autoantwort deleted the icu-hosts branch September 1, 2021 13:54
@bamo-volue bamo-volue mentioned this pull request Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[qt-base] build failure (icu is build for arm with x64-osx triplet)
8 participants