Skip to content

Conversation

@koprok
Copy link
Contributor

@koprok koprok commented Feb 7, 2023

  • Changes comply with the maintainer guide
  • SHA512s are updated for each updated download
  • The "supports" clause reflects platforms that may be fixed by this new version
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

github-actions[bot]
github-actions bot previously approved these changes Feb 7, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/qt5-base/portfile.cmake

@koprok koprok marked this pull request as ready for review February 7, 2023 20:02
@FrankXie05 FrankXie05 added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Feb 8, 2023
FrankXie05
FrankXie05 previously approved these changes Feb 8, 2023
@FrankXie05 FrankXie05 added the info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. label Feb 8, 2023
Copy link
Contributor

@dg0yt dg0yt left a comment

Choose a reason for hiding this comment

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

I will test it soon.

Comment on lines 1 to 18
Copy link
Contributor

Choose a reason for hiding this comment

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

In vcpkg, these headers are not desired.

@FrankXie05 FrankXie05 added requires:author-response and removed info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. labels Feb 8, 2023
@koprok koprok dismissed stale reviews from FrankXie05 and github-actions[bot] via 202a484 February 8, 2023 09:13
github-actions[bot]
github-actions bot previously approved these changes Feb 8, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/qt5-base/portfile.cmake

github-actions[bot]
github-actions bot previously approved these changes Feb 9, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/qt5-base/portfile.cmake

github-actions[bot]
github-actions bot previously approved these changes Feb 10, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/qt5-base/portfile.cmake

@dg0yt
Copy link
Contributor

dg0yt commented Feb 11, 2023

How well did it build for you? I had two overcome two problems, and will send you a PR soon:

  • icu libs for x64-mingw-static (a general fix for this port),
  • redirect installation from installed to packages (specific to mingw builds on windows host).

@koprok
Copy link
Contributor Author

koprok commented Feb 11, 2023

@dg0yt, I am building x64-mingw-dynamic triplet. With my changes qt5-base[core] builds without errors and works fine. I have actually never tried the static builds.
I know about the redirection, one of my changes is to fix redirection (in qt_fix_makefile_install.cmake). Doesn't it work for you?

@dg0yt
Copy link
Contributor

dg0yt commented Feb 11, 2023

I know about the redirection, one of my changes is to fix redirection (in qt_fix_makefile_install.cmake). Doesn't it work for you?

No. The point is that I see the Makefiles generated with / path separators (on Windows host, building with mingw32-make from MSYS2), but the fixup is written for \ path separators. What is in your Makefiles?
I know that qt scripts change output if sh is in PATH. We need to handle both cases if you confirm that you see \.

@koprok
Copy link
Contributor Author

koprok commented Feb 11, 2023

What is in your Makefiles? I know that qt scripts change output if sh is in PATH. We need to handle both cases if you confirm that you see \.

Mine are with \ indeed!
I am using this MinGW: https://github.com/niXman/mingw-builds-binaries/releases/tag/12.2.0-rt_v10-rev0

@dg0yt
Copy link
Contributor

dg0yt commented Feb 12, 2023

You are using a mingw toolchain with less extra tools. mingw32-make is for this.
With MSYS2, I use a more complete unixish enviroment. vcpkg already uses msys2 to provide such an environment for building ports based on the autotools build system, using make. I would prefer to use the same make environment for qt5, to limit variations. We download these packages anyways. But first I want to test if I see a significant difference in build time.

@koprok
Copy link
Contributor Author

koprok commented Feb 12, 2023

I would prefer to use the same make environment for qt5, to limit variations. We download these packages anyways.

Ok, I don't mind as long as msys2's make works with niXman compiler. Please, let me know if I can help with something so that Qt 5 MinGW support gets merged sooner.

Windows-shared needs different options. Patch obsolete.
github-actions[bot]
github-actions bot previously approved these changes Feb 12, 2023
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/qt5-base/portfile.cmake

@dg0yt
Copy link
Contributor

dg0yt commented Feb 13, 2023

The remaing issue is a little bit tricky, but a serious source of trouble which we must resolve:

  • Qt's configure.bat calls mingw32-make.
  • When sh is present, Qt generates unixish makefiles with /.
  • This behaviour is related to mingw32-make which uses sh instead of cmd if present.

I can control all this towards mingw32-make with \separators. But then then there is the next surprise:

  • Qt wants to run a perl script which wants to read from a command which uses < for input...
    Now if msys (unixish) perl is in the PATH, it wants to run msys sh ... and in this step, the path separators hit the wall again.

So the alternatives are:

  • accept both msys and non-msys environments, modify install location accordingly,
  • force \ separators and non-msys perl.
  • force / separators and msys build.

@koprok
Copy link
Contributor Author

koprok commented Feb 13, 2023

I haven't used msys gcc to build Qt, can you please clarify the following for me to understand better:

  • When sh is present, Qt generates unixish makefiles with /.

Vcpkg itself does not put sh in path, right? So sh will be present if the user has sh in path beforehand, for example if the user uses msys gcc to build Qt, correct?

I can control all this towards mingw32-make with \separators.

How can you do this? How will you remove sh from path?

Now if msys (unixish) perl is in the PATH, it wants to run msys sh ... and in this step, the path separators hit the wall again.

Again - Vcpkg itself does not put msys perl in path, i.e. msys perl could be in path only if the user has it beforehand, right?

So the alternatives are:

  • accept both msys and non-msys environments, modify install location accordingly,

Maybe this won't be that difficult. It won't hurt if we try to replace both variants. Only one will get actually replaced.

  • force \ separators and non-msys perl.

I am not sure if this variant is possible at all, see above questions. How can you (selectively) remove msys sh and perl from path...

  • force / separators and msys build.

Maybe this will be ok too - if Vcpkg itself, intentionally, puts msys sh and perl in path.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/qt5-base/portfile.cmake

@dg0yt
Copy link
Contributor

dg0yt commented Feb 16, 2023

@FrankXie05 Ready for review.

@FrankXie05 FrankXie05 added info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. and removed requires:author-response labels Feb 17, 2023
@JavierMatosD JavierMatosD merged commit 82e0390 into microsoft:master Feb 22, 2023
@koprok koprok deleted the qt5-mingw branch February 23, 2023 15:47
@dg0yt dg0yt mentioned this pull request Mar 5, 2023
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 info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants