Winbuild doc#2459
Conversation
Due to the check in Makefile.vc and MakefileBuild.vc, no make call can be invoked unless a build-type was specified. However, a clean target only existed when a build type was specified. As a result, the clean target was unreachable. Made clean target unconditional.
In modern Windows versions and/or more recent Visual Studio compilers, no setenv command exists. The way to open a CMD prompt with right settings is either done by vcvarsall.bat or VsDevCmd.bat. Also updated URLs to more recent SDK versions. The SDK is no longer called "platform SDK" but "Windows SDK" (by Microsoft).
This reverts commit d01d6e3.
Neither the Visual Studio command prompts nor the SDK CMD shell provide a setenv command i.e. it seems to appear that the Windows SDK v7.1 was the last one that contained a compiler (cl.exe) and provided this command. Added other (more recent) alternatives.
This reverts commit 0dc3d24.
Updated information with more recent alternatives. Newer SDKs do not have a compiler anymore. Use a (free) version of Visual Studio instead.
Need to manually call vcvarsall.bat in a Developer Command Prompt, otherwise x86 is the default mode. To build x64, vcvarsall amd64 need to be called. Additionally: the VS Command prompt exists for Visual Studio 2015, but not for Visual Studio 2017. Only the Developer command prompt exists in VS2017.
|
Thanks for your work, but this PR is a bit broken. It is much better if you create a new dedicated branch for each separate PR you make so that they don't intermix, In this case it looks like this PR has commits from #2455 that I just merged. Can you rebase/squash this to only contain the relevant changes you want to change in this PR? |
|
@badger: I will try to do so, but next week... (I've to leave now) |
|
I'm lost. When I clone a fresh repository from master (using the instructions from https://ec.haxx.se/sourcecode-contributing.html, running git clone https://github.com/curl/curl.git) I don't see any change I made on one of the files in winbuild. So I'm in doubt what has been committed now? Or do I lack knowledge in where commit #2455 resides. Is it not on the master branch? What I expected is that this #2459 PR became visible, but it is not. I was also expecting that switching the default branch in GitHub deskop + a new pull should update all source files to exactly the same state as on the (remote) source repository. And finally: I see that some pieces of my changes got inserts like '<<<<<<< HEAD' and >>>>>>> parent of d01d6e3 (which were not added by me). I don't know why these exist, and whether I need to keep them. This is IMO something from git... Can you please help me in how to proceed? |
|
When you clone a fresh copy now, you should find commit 8585026 in there (which is where #2455 ended up). That was merged in the master branch a few days ago. When you have a fresh clone, create a new local branch for each new thing you want to work on (and send pull requests for). Then you can do them independently of each other and from other things that happen on the master branch. Once your PRs have been merged, you can delete your corresponding local branch as then the stuff will trickle into the master branch when you update that. The |
|
@badger: even if I create a new clone and create a new branch (and only change one file), a check on this website shows multiple changed files. See e.g. https://github.com/curl/curl/compare/master...kdekker:windbuild-windoc?expand=1. I only changed BUILD.WINDOWS.txt and don't like to get the other changes in this diff. Otherwise I can't create a PR with just changing as less as possible. |
|
(I'm not @badger) It looks like your master branch and the curl/curl master branch are different. Then of course added changes will add to that... |
|
That happened when you created #2455 from your master branch. Just create a new master branch from romotes/origin/master again, overwriting the old one. |
|
If I revert all changes on the master branch in my clone, am I done then? Or is there a simple 'overwrite all command'? I've stored my changes in a different place, so it is ok for me to revert all and become in sync with the curl repository. Or do I need to remove my clone on github, and start with a fresh clone? I tried to revert all, but still see some changes.... Excuse me my innocence with git. |
|
You can do while you're on your master branch. This resets your local master branch to the curl github repo's master branch. |
|
Hopefully, I did al in the right way, and now created first PR from a (hopefully in sync-repo): I will create another PR for the Windows makefiles. |
Updated documention:
Not updated: if a visual studio command prompt is used, the cl.exe PATH has been setup, and setting the VC variable is actually of no sense (you may like to use the VisualStudioVersion for that purpose).
Yuo may even consider drop support for ancient Visual Studio 6, resulting in the possibility to cleanup more.