-
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-make] Add new port #39050
base: master
Are you sure you want to change the base?
[vcpkg-make] Add new port #39050
Conversation
…vcpkg-make # Conflicts: # ports/vcpkg-make/vcpkg-make-common.cmake # ports/vcpkg-make/vcpkg-make.cmake
scripts/test_ports/vcpkg-make-tests/test-z_vcpkg_make_determine_arch.cmake
Outdated
Show resolved
Hide resolved
scripts/test_ports/vcpkg-make-tests/test-z_vcpkg_make_prepare_compile_flags.cmake
Outdated
Show resolved
Hide resolved
scripts/test_ports/vcpkg-make-tests/test-z_vcpkg_make_prepare_compile_flags.cmake
Outdated
Show resolved
Hide resolved
@dg0yt, mind offering an example? I see a lot of places where we are passing boolean-like options such as I took your previous comment to mean "don't compare cmake variables to any particular literal" |
message(FATAL_ERROR "${PORT} currently requires the following programs from the system package manager: | ||
autoconf automake autoconf-archive | ||
On Debian and Ubuntu derivatives: | ||
sudo apt-get install autoconf automake autoconf-archive | ||
On recent Red Hat and Fedora derivatives: | ||
sudo dnf install autoconf automake autoconf-archive | ||
On Arch Linux and derivatives: | ||
sudo pacman -S autoconf automake autoconf-archive | ||
On Alpine: | ||
apk add autoconf automake autoconf-archive | ||
On macOS: | ||
brew install autoconf automake autoconf-archive\n") | ||
endif() |
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.
@BillyONeal, are we ok with this messaging?
This was the must-have. And there still is: But this should not be needed at all with a zero-option keyword.
I see how this is initialized in the calling spots. But I am not convinced that this is a sufficient justification. |
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.
Zero-value VCPKG_TRANSFORM_LIBS option.
scripts/test_ports/vcpkg-make-tests/test-z_adapt_lib_link_names.cmake
Outdated
Show resolved
Hide resolved
scripts/test_ports/vcpkg-make-tests/test-z_adapt_lib_link_names.cmake
Outdated
Show resolved
Hide resolved
scripts/test_ports/vcpkg-make-tests/test-z_adapt_lib_link_names.cmake
Outdated
Show resolved
Hide resolved
scripts/test_ports/vcpkg-make-tests/test-z_adapt_lib_link_names.cmake
Outdated
Show resolved
Hide resolved
Hmmm, I wasn't able to reproduce the windows failures locally... |
You probably tested the head of your branch (before the msys2 update), |
if(VCPKG_HOST_IS_WINDOWS) | ||
# dumpbin detection fails with autoconf 2.72 | ||
set(ENV{WANT_AUTOCONF} 2.71) | ||
endif() | ||
vcpkg_configure_make( | ||
SOURCE_PATH "${SOURCE_PATH}" | ||
AUTOCONFIG | ||
ADDITIONAL_MSYS_PACKAGES | ||
vcpkg_acquire_msys(MSYS_ROOT | ||
PACKAGES | ||
autoconf2.71 | ||
DIRECT_PACKAGES | ||
"https://mirror.msys2.org/msys/x86_64/autoconf2.71-2.71-3-any.pkg.tar.zst" | ||
dd312c428b2e19afd00899eb53ea4255794dea4c19d1d6dea2419cb6a54209ea2130d48abbc20af12196b9f628143436f736fbf889809c2c2291be0c69c0e306 | ||
"dd312c428b2e19afd00899eb53ea4255794dea4c19d1d6dea2419cb6a54209ea2130d48abbc20af12196b9f628143436f736fbf889809c2c2291be0c69c0e306" | ||
) | ||
endif() |
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.
I doubt this will work like this. dumpbin detection is still failing.
./libtool: eval: line 10827: syntax error near unexpected token `|'
./libtool: eval: line 10827: `dumpbin.exe -symbols -headers .libs/libgmp.la-2.obj | | /usr/bin/sed -e '/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/' | /usr/bin/sed -e '/^[AITW][ ]/s/.*[ ]//' | sort | uniq > .libs/gmp.exp'
make[2]: *** [Makefile:890: libgmp.la] Error 2
make[1]: *** [Makefile:1005: all-recursive] Error 1
make: *** [Makefile:797: all] Error 2
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.
This is another issue, cf. #41510.
With 2.72, the error was during configure.
This error is during make.
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.
Between | |
, there should be the expansion of $global_symbol_pipe
.
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.
dumpbin detection is still failing.
Indeed:
checking for BSD- or MS-compatible name lister (nm)... dumpbin.exe -symbols -headers
checking the name lister (dumpbin.exe -symbols -headers) interface... BSD nm
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.
configure
has (with another autoconf version):
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
fi
GREP
is (in current config.log):
GREP='/usr/bin/grep'
conftest.out has (in current config.log):
009 00000000 SECT3 notype External | some_variable
The question is: Why doesn't it reach lt_cv_nm_interface="MS dumpbin"
?
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.
Ah, wait, config.log says:
It was created by GNU MP configure 6.3.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
This is the incompatible version.
|
||
if(VCPKG_CROSSCOMPILING) | ||
set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") | ||
endif() | ||
|
||
if(VCPKG_HOST_IS_WINDOWS) | ||
# dumpbin detection fails with autoconf 2.72 |
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.
Please leave the comment.
SOURCE_PATH "${SOURCE_PATH}" | ||
AUTOCONFIG | ||
ADDITIONAL_MSYS_PACKAGES | ||
vcpkg_acquire_msys(MSYS_ROOT |
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.
How is this passed to / used in vcpkg_make_configure
?
Testing to see what happens when various options are on/off. Added a test port and cleaned up some of the code.