-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
[vcpkg/scripts/make] trying to iron out some issues #11836
Conversation
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
|
add port -
|
Is this PR ready for review? |
remove WINDOWS support from the ports, because it doesn't work |
@voskrese: It probably works with a MinGW community triplet and as such failing on Windows would be too restrictive |
on MINGW, 80% of the ports do not work, the main goal of MSVC under WINDOWS. I think we should stick to priorities or delineate https://github.com/microsoft/vcpkg/blob/master/docs/maintainers/control-files.md
add VCPKG_CMAKE_SYSTEM_NAME = MSYS2 or CYGWIN |
@Neumann-A |
Any update? |
Waiting for the pkgconfig PR to get merged first. I mean the one rewriting fixup_pkgconfig |
Waiting for PR #11550 merged first, right? |
add quotes around restoring of ENV add LIB and LIBPATH correctly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this PR lasts too long, please open a new PR to update the vcpkg_configure_make
document after this PR merges.
Thanks for your hard work! |
- LIBWANDIO_LIBS="$LIBWANDIO_LIBS -lcurl" | ||
+ if test "$ac_cv_search_curl_easy_pause" != "none required"; then | ||
+ LIBWANDIO_LIBS="$LIBWANDIO_LIBS $ac_cv_search_curl_easy_pause -lssl -lcrypto $ac_cv_search_pthread_create -ldl" | ||
+ LIBS="$LIBS -lssl -lcrypto $ac_cv_search_pthread_create -ldl" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be fixed instead by producing .pc
files for curl and using
PKG_CHECK_MODULES([CURL], [curl])
LIBS="$LIBS $CURL_LIBS"
Based on my reading of https://autotools.io/pkgconfig/pkg_check_modules.html, the default action-if-not-found is to error out.
Otherwise, we should Build-Depends: openssl
in libwandio
because it's directly expressing a dependency on openssl
(e.g. imagine a case of building curl without openssl and thus this would fail).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be a proper fix but I did not want to touch this port any more than necessary. Because every dependency in libwandio would need that fix. If you want I can back out the patches to libwandio.
set(REQUIRES_AUTOGEN TRUE) | ||
set(REQUIRES_AUTOCONFIG FALSE) | ||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND NOT PKGCONFIG STREQUAL "--static") | ||
set(PKGCONFIG "${PKGCONFIG} --static") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Based on my reading of https://people.freedesktop.org/~dbn/pkg-config-guide.html, I think we should never pass --static
. Instead, the producer side should always generate .pc
files that can be used without --static
; if the producer build is being built statically, it should list its dependencies as direct Requires:
instead of Requires.private:
.
Having the consumer predict how the producer was built seems fundamentally broken.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having the consumer predict how the producer was built seems fundamentally broken.
I agree with that. Would probably be a job for vcpkg_fixup_pkgconfig
to correct the fields. But that is probably something for a different PR.
We could also always pass --static
without any problems/corrections since the only thing we would be doing is overlinking all the time which decreases performance but should not yield a build link error due to missing symbols.
endif() | ||
|
||
if (CMAKE_HOST_WIN32) | ||
set(TMP_CFLAGS "${C_FLAGS_GLOBAL} ${VCPKG_C_FLAGS_${CMAKE_BUILDTYPE}}") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's enabling all this regex machinery to be removed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything is setup while configuring and not while building. Which means the flags get embedded into the makefile on configure.
E.g. from one Makefile:
CFLAGS = -MT -O2 -Oi -Gy -DNDEBUG
CONFIGDIR = ${BASECONFIGDIR}/conf.d
CPP = compile cl.exe -nologo -E
CPPFLAGS = -IE:/qt/installed/x64-windows-static/include -D_WIN32_WINNT=0x0601 -DWIN32_LEAN_AND_MEAN -DWIN32 -D_WINDOWS
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
- remove mingw make - add doc for missing options - introduce two new macros for backup/restore of env vars
@JackBoosY: I assume you are trying to fix the regression seen in this PR. It also seems like you qt retry fix does not work correctly. |
@Neumann-A |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
* take changes from fontconfig pr * [farmhash] add autoconf * [freexl] add autoconf * [healpix] add autoconf * [libb2] add autoconf * [libwandio] add autoconf and patch * more autoconf * [x264] fix windows build issues * minimal cleanup * [libwandio] some fixes * [vcpkg/scripts/make] add include to C/CXX flags correctly set machine flags for linker * remove unnecessary comments part 1 * cleanup part 2 * cleanup * remove unnecessary code * [pbc] fix osx regressions * [lzokay] format manifest * try to copy sources to fix build issues * add autoconfig to force updated configure scripts * bump port versions of openmpi and ocilib * added lib paths back into vcpkg_build_make because they are probably required * Use CPP flags add quotes around restoring of ENV add LIB and LIBPATH correctly * Apply suggestions from code review Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com> * Apply more changes forom CR - remove mingw make - add doc for missing options - introduce two new macros for backup/restore of env vars * fix wrong variables. * use the list macro instead of the single var macro * also use it at the top Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com> Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
includes #11810closes #11765
make all make dependent ports depend onvcpkg-make
for easier testing and rebuilding.Fix some script errors in
vcpkg_configure_make
Removed a lot of unnecessary stuff in
vcpkg_build_make