-
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_configure_make] Correct parameter SKIP_CONFIGURE #14402
Conversation
cc @Neumann-A for review this PR. |
Co-authored-by: Alexander Neumann <[email protected]>
Maybe we should skip all the AUTOCONF_REQUIRED etc. checks if SKIP_CONFIGURE is used? Something like:
|
@BillyONeal If the source contains |
Even if the portfile says |
@BillyONeal Yep, configure is always paired with makefile.in. So when using if exists configure/configure.ac -> use |
Isn't that up to
That's the existing behavior, but I don't necessarily think that it's correct behavior. |
@Neumann-A what's your suggestion? |
The following should be true: If SKIP_CONFIGURE exists and configure and/or configure.ac exists -> be highly suspicious. It is expected that the portfile deletes the files manually and documents why they are not necessary. In general. Why are you even using SKIP_CONFIGURE with vcpkg_configure_make? Maybe SKIP_CONFIGURE should just be removed. |
@BillyONeal @Neumann-A |
Seeing how this was started by a issue opened by me and how no existing port seems to use My opinion may be based on wrong assumptions or a lack of understanding of how vcpkg works, but I hope it can help you in making a decision. I have a project that uses make in a pretty standard way and I want to write a port for it. I provided https://github.com/ianichitei/test as an example. I ended up on the vcpkg_build_make docs, which state:
This is where things started to become unclear. It is not implied that I should use it, but it also seems like it is needed. It is not made entirely clear what happens if I don't set However, I tried using directly CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:50 (file):
file failed to open for reading (No such file or directory):
/mnt/c/work/public/2/vcpkg/buildtrees/test/build-x64-linux-dbg-out.log Trying to debug the issue I manually created that file and tried again. I got a similar error for $ ./vcpkg install test
Computing installation plan...
The following packages will be built and installed:
test[core]:x64-linux
Detecting compiler hash for triplet x64-linux...
Starting package 1/1: test:x64-linux
Building package test[core]:x64-linux...
Could not locate cached archive: /home/ianichitei-lx/.cache/vcpkg/archives/34/3426704dc566cb043e5e7d12835eb806e5a88651.zip
-- Using cached /mnt/c/work/public/2/vcpkg/downloads/ianichitei-test-c2b1eafd43d66099fdfd27a634d75020a216ca7b.tar.gz
-- Cleaning sources at /mnt/c/work/public/2/vcpkg/buildtrees/test/src/20a216ca7b-d186164bf6.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /mnt/c/work/public/2/vcpkg/downloads/ianichitei-test-c2b1eafd43d66099fdfd27a634d75020a216ca7b.tar.gz
-- Using source at /mnt/c/work/public/2/vcpkg/buildtrees/test/src/20a216ca7b-d186164bf6.clean
-- SOURCE_PATH: /mnt/c/work/public/2/vcpkg/buildtrees/test/src/20a216ca7b-d186164bf6.clean
-- Building x64-linux-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:136 (message):
Command failed: /usr/bin/make V=1 -j 13 -f Makefile test
Working Directory: /mnt/c/work/public/2/vcpkg/buildtrees/test/x64-linux-dbg
See logs for more information:
Call Stack (most recent call first):
scripts/cmake/vcpkg_build_make.cmake:200 (vcpkg_execute_build_process)
ports/test/portfile.cmake:10 (vcpkg_build_make)
scripts/ports.cmake:79 (include)
Error: Building package test:x64-linux failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
Package: test:x64-linux
Vcpkg version: 2020.06.15-unknownhash
Additionally, attach any relevant sections from the log files above. So it turns out that the working directory is not created. I managed to fix this with: vcpkg_configure_make(
SOURCE_PATH ${SOURCE_PATH}
COPY_SOURCE
SKIP_CONFIGURE
) Using only The above examples are with an older vcpkg version on which |
So you should be using only |
Can you point me to the part of the docs that talks about this? The current documentation doesn't really explain the proper way of doing this. Copying the files manually seemed like a hack to me so I tried to not do that. |
Closing this as "we should just remove SKIP_CONFIGURE". @JackBoosY could you do that? |
To be honest, using only |
So is doing a manual copy the only solution? It looks like a hack. |
@ianichitei I think we need more discuss here. |
Hi, I am currently facing the same issue with a GitHub project providing a Makefile but no configure script. Please, could you provide more details about the commands to call in the portfile to copy the source in the working dir before calling Thanks a lot, |
@uvr-jra I have another solution to solve that, let's wait for my next PR. |
Ignore autogen and autoconfig judgment when using
SKIP_CONFIGURE
.Fixes #14389.