From: "Philip Oakley via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>, Philip Oakley <philipoakley@iee.org>
Subject: [PATCH 02/24] Vcproj.pm: list git.exe first to be startup project
Date: Thu, 18 Jul 2019 06:19:02 -0700 (PDT) [thread overview]
Message-ID: <a7898b002590adcfb103e6851d84267715ee05b0.1563455939.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.287.git.gitgitgadget@gmail.com>
From: Philip Oakley <philipoakley@iee.org>
Visual Studio takes the first listed application/library as the default
startup project [1].
Detect the 'git' project and place it at the head of the project list,
rather than at the tail.
Export the apps list before libs list for both the projects and global
structures of the .sln file.
[1] http://stackoverflow.com/questions/1238553/
vs2008-where-is-the-startup-project-setting-stored-for-a-solution
"In the solution file, there are a list of pseudo-XML "Project"
entries. It turns out that whatever is the first one ends up as
the Startup Project, unless it’s overridden in the suo file. Argh.
I just rearranged the order in the file and it’s good."
"just moving the pseudo-xml isn't enough. You also have to move the
group of entries in the "GlobalSection(ProjectConfigurationPlatforms)
= postSolution" group that has the GUID of the project you moved to
the top. So there are two places to move lines."
Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
contrib/buildsystems/Generators/Vcproj.pm | 33 +++++++++++++----------
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/contrib/buildsystems/Generators/Vcproj.pm b/contrib/buildsystems/Generators/Vcproj.pm
index c79b706bc8..d862cae503 100644
--- a/contrib/buildsystems/Generators/Vcproj.pm
+++ b/contrib/buildsystems/Generators/Vcproj.pm
@@ -513,20 +513,18 @@ sub createGlueProject {
foreach (@apps) {
$_ =~ s/\//_/g;
$_ =~ s/\.exe//;
- push(@tmp, $_);
+ if ($_ eq "git" ) {
+ unshift(@tmp, $_);
+ } else {
+ push(@tmp, $_);
+ }
}
@apps = @tmp;
open F, ">git.sln" || die "Could not open git.sln for writing!\n";
binmode F, ":crlf";
print F "$SLN_HEAD";
- foreach (@libs) {
- my $libname = $_;
- my $uuid = $build_structure{"LIBS_${libname}_GUID"};
- print F "$SLN_PRE";
- print F "\"${libname}\", \"${libname}\\${libname}.vcproj\", \"${uuid}\"";
- print F "$SLN_POST";
- }
+
my $uuid_libgit = $build_structure{"LIBS_libgit_GUID"};
my $uuid_xdiff_lib = $build_structure{"LIBS_xdiff_lib_GUID"};
foreach (@apps) {
@@ -540,6 +538,13 @@ sub createGlueProject {
print F " EndProjectSection";
print F "$SLN_POST";
}
+ foreach (@libs) {
+ my $libname = $_;
+ my $uuid = $build_structure{"LIBS_${libname}_GUID"};
+ print F "$SLN_PRE";
+ print F "\"${libname}\", \"${libname}\\${libname}.vcproj\", \"${uuid}\"";
+ print F "$SLN_POST";
+ }
print F << "EOM";
Global
@@ -551,17 +556,17 @@ sub createGlueProject {
print F << "EOM";
GlobalSection(ProjectConfigurationPlatforms) = postSolution
EOM
- foreach (@libs) {
- my $libname = $_;
- my $uuid = $build_structure{"LIBS_${libname}_GUID"};
+ foreach (@apps) {
+ my $appname = $_;
+ my $uuid = $build_structure{"APPS_${appname}_GUID"};
print F "\t\t${uuid}.Debug|Win32.ActiveCfg = Debug|Win32\n";
print F "\t\t${uuid}.Debug|Win32.Build.0 = Debug|Win32\n";
print F "\t\t${uuid}.Release|Win32.ActiveCfg = Release|Win32\n";
print F "\t\t${uuid}.Release|Win32.Build.0 = Release|Win32\n";
}
- foreach (@apps) {
- my $appname = $_;
- my $uuid = $build_structure{"APPS_${appname}_GUID"};
+ foreach (@libs) {
+ my $libname = $_;
+ my $uuid = $build_structure{"LIBS_${libname}_GUID"};
print F "\t\t${uuid}.Debug|Win32.ActiveCfg = Debug|Win32\n";
print F "\t\t${uuid}.Debug|Win32.Build.0 = Debug|Win32\n";
print F "\t\t${uuid}.Release|Win32.ActiveCfg = Release|Win32\n";
--
gitgitgadget
next prev parent reply other threads:[~2019-07-18 13:19 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-18 13:19 [PATCH 00/24] Reinstate support for Visual Studio Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 01/24] Vcproj.pm: auto-generate GUIDs Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` Philip Oakley via GitGitGadget [this message]
2019-07-18 13:19 ` [PATCH 03/24] Vcproj.pm: do not configure VCWebServiceProxyGeneratorTool Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 04/24] Vcproj.pm: urlencode '<' and '>' when generating VC projects Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 06/24] contrib/buildsystems: ignore irrelevant files in Generators/ Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 05/24] contrib/buildsystems: ignore invalidcontinue.obj Philip Oakley via GitGitGadget
2019-07-18 13:19 ` [PATCH 07/24] contrib/buildsystems: fix misleading error message Philip Oakley via GitGitGadget
2019-07-18 13:19 ` [PATCH 09/24] contrib/buildsystems: ignore gettext stuff Philip Oakley via GitGitGadget
2019-07-18 13:19 ` [PATCH 08/24] contrib/buildsystems: handle quoted spaces in filenames Philip Oakley via GitGitGadget
2019-07-18 13:19 ` [PATCH 10/24] contrib/buildsystems: redirect errors of the dry run into a log file Philip Oakley via GitGitGadget
2019-07-18 13:19 ` [PATCH 11/24] contrib/buildsystems: optionally capture the dry-run in a file Philip Oakley via GitGitGadget
2019-07-18 13:19 ` [PATCH 12/24] contrib/buildsystems: error out on unknown option Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 13/24] contrib/buildsystems: handle the curl library option Philip Oakley via GitGitGadget
2019-07-18 13:19 ` [PATCH 14/24] contrib/buildsystems: handle libiconv, too Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 15/24] contrib/buildsystems: also handle -lexpat Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 16/24] contrib/buildsystems: handle options starting with a slash Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 18/24] msvc: add a Makefile target to pre-generate the Visual Studio solution Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 17/24] contrib/buildsystems: add a backend for modern Visual Studio versions Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 19/24] vcxproj: also link-or-copy builtins Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 20/24] .gitignore: touch up the entries regarding Visual Studio Philip Oakley via GitGitGadget
2019-07-18 13:19 ` [PATCH 21/24] .gitignore: ignore Visual Studio's temporary/generated files Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 22/24] bin-wrappers: append `.exe` to target paths if necessary Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 24/24] git: avoid calling aliased builtins via their dashed form Johannes Schindelin via GitGitGadget
2019-07-18 13:19 ` [PATCH 23/24] t5505,t5516: create .git/branches/ when needed Johannes Schindelin via GitGitGadget
2019-07-18 20:34 ` Junio C Hamano
2019-07-19 14:52 ` Johannes Schindelin
2019-07-19 15:07 ` Junio C Hamano
2019-07-19 15:36 ` Junio C Hamano
2019-07-19 16:30 ` Junio C Hamano
2019-07-29 20:08 ` [PATCH v2 00/23] Reinstate support for Visual Studio Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 02/23] Vcproj.pm: list git.exe first to be startup project Philip Oakley via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 01/23] Vcproj.pm: auto-generate GUIDs Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 03/23] Vcproj.pm: do not configure VCWebServiceProxyGeneratorTool Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 05/23] contrib/buildsystems: ignore invalidcontinue.obj Philip Oakley via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 04/23] Vcproj.pm: urlencode '<' and '>' when generating VC projects Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 06/23] contrib/buildsystems: ignore irrelevant files in Generators/ Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 08/23] contrib/buildsystems: handle quoted spaces in filenames Philip Oakley via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 07/23] contrib/buildsystems: fix misleading error message Philip Oakley via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 09/23] contrib/buildsystems: ignore gettext stuff Philip Oakley via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 11/23] contrib/buildsystems: optionally capture the dry-run in a file Philip Oakley via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 10/23] contrib/buildsystems: redirect errors of the dry run into a log file Philip Oakley via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 12/23] contrib/buildsystems: error out on unknown option Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 13/23] contrib/buildsystems: handle the curl library option Philip Oakley via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 14/23] contrib/buildsystems: handle libiconv, too Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 15/23] contrib/buildsystems: also handle -lexpat Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 16/23] contrib/buildsystems: handle options starting with a slash Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 17/23] contrib/buildsystems: add a backend for modern Visual Studio versions Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 18/23] msvc: add a Makefile target to pre-generate the Visual Studio solution Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 19/23] vcxproj: also link-or-copy builtins Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 20/23] .gitignore: touch up the entries regarding Visual Studio Philip Oakley via GitGitGadget
2019-08-25 12:07 ` SZEDER Gábor
2019-08-25 13:20 ` Philip Oakley
2019-08-25 19:09 ` SZEDER Gábor
2019-08-25 22:21 ` Philip Oakley
2019-08-26 9:10 ` SZEDER Gábor
2019-08-28 11:34 ` Johannes Schindelin
2019-08-26 14:57 ` Johannes Schindelin
2019-08-26 15:49 ` Junio C Hamano
2019-07-29 20:08 ` [PATCH v2 21/23] .gitignore: ignore Visual Studio's temporary/generated files Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 22/23] bin-wrappers: append `.exe` to target paths if necessary Johannes Schindelin via GitGitGadget
2019-07-29 20:08 ` [PATCH v2 23/23] git: avoid calling aliased builtins via their dashed form Johannes Schindelin via GitGitGadget
2019-07-29 21:56 ` [PATCH v2 00/23] Reinstate support for Visual Studio Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a7898b002590adcfb103e6851d84267715ee05b0.1563455939.git.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=philipoakley@iee.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).