Hi Junio
On 01/12/2022 23:00, Junio C Hamano wrote:
Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes:
Junio please drop this series when you rebuild next as it breaks
manually running individual test scripts when building with Visual
Studio.
I think the issue you've spotted is easily fixed on top. See below.
Smells more like papering over than fixed, but let's see how folks
who need cmake/ctest feel about it.
As MSVC uses different directories for debug and release builds there
can be more than one build directory. I don't think selecting one of
them at random using 'find' is a good idea.
Let's mark the series never to graduate to 'master' for now,
optionally revert it out of 'next'.
Phillip, you asked about rebuilding 'next', which would not
happen until 2.39.0 final---did you mean reverting the topic out
of 'next'? Do you need 'next' without this topic, not just
'master'?
I don't mind waiting but I'm not a Windows user. I only tested this
topic under Windows because I knew Ævar had not and a quick web search
for "MSVC CMake" made me worry it was broken.
I'm afraid I wont be spending anymore time on this topic. I had hoped
that having the CMake build work under Linux would help developers avoid
breaking it. However I'm concerned that if developers do not appreciate
that there are differences between the Linux and Windows builds it will
actually create a false sense of security and be used as an excuse not
to properly test under Windows[1]. Recent events have confirmed my view
that changes like this need the attention of someone with experience of
Windows development and given that yesterday was the first time I'd used
MSVC since about 1994 I do not fit that description.
In addition to the breakage I reported yesterday 623fde1438 (cmake:
chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4, 2022-11-03)
causes CMake older that 3.19 to error out when run from MSVC because
chmod does not exist on Windows. Also when running 'ctest' on "next" I
see tests failing because they cannot find 'test-tool' (I haven't tried
running the failing tests manually)
Best Wishes
Phillip
[1] While our CI helps the MSVC job runs CMake manually, performs an
in-tree build and does not use ctest. In contrast a user running the
MSVC GUI does not run CMake themselves, ends up with an out-of-tree
build and runs the tests with ctest.
I'll then wait for something both camps (you and folks on Visual
Studio?) can agree on to requeue.
Thanks.