Upgrade and fix clang-format-vs

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 1 09:22:33 PST 2016


Looks good to me!

Do you have commit access, or would you like me to commit it for you?

Thanks,
Hans

On Wed, Nov 30, 2016 at 8:10 PM, Antonio Maiorano <amaiorano at gmail.com> wrote:
> Updated version of patch attached with the changes you suggested. Let me
> know if there's anything else you'd like.
>
>
> On Tue, 29 Nov 2016 at 15:38 Hans Wennborg <hans at chromium.org> wrote:
>>
>> On Tue, Nov 29, 2016 at 12:01 PM, Antonio Maiorano <amaiorano at gmail.com>
>> wrote:
>> > On Tue, 29 Nov 2016 at 13:42 Hans Wennborg <hans at chromium.org> wrote:
>> >>
>> >> Very nice! I've tried this out and confirmed that the built plugin
>> >> also works with older Visual Studio versions.
>> >>
>> >> Some comments below:
>> >>
>> >> > --- /dev/null
>> >> > +++ b/tools/clang-format-vs/.gitignore
>> >> > @@ -0,0 +1,11 @@
>> >> > +# Visual Studio files
>> >> > +.vs/
>> >> > +/packages/
>> >> > +/ClangFormat/obj/
>> >> > +/ClangFormat/bin/
>> >>
>> >> Should there really be a leading slash in these paths? Same below.
>> >
>> >
>> > Without the leading slash, then it would match "ClangFormat/obj"
>> > anywhere in
>> > the tree, rather than explicitly the one and only folder from the root.
>> > In
>> > this case, it wouldn't matter much. If you prefer, I could just ignore
>> > "obj/" and "bin/", etc, although I'd rather be explicit for Key.snk,
>> > license.txt, etc.
>>
>> Interesting. I was just comparing with LLVM's root .gitignore, which
>> doesn't have leading slashes for many dirs. Checking the gitignore
>> doc, it sounds like you've got it right :-)
>>
>>
>> >> > +# Generated and copied files
>> >> > +/ClangFormat/Key.snk
>> >> > +/ClangFormat/license.txt
>> >> > +/ClangFormat/clang-format.exe
>> >> > +/ClangFormat/source.extension.vsixmanifest
>> >> > diff --git a/tools/clang-format-vs/CMakeLists.txt
>> >> > b/tools/clang-format-vs/CMakeLists.txt
>> >> > index fd0d6b0..90f89d8 100644
>> >> > --- a/tools/clang-format-vs/CMakeLists.txt
>> >> > +++ b/tools/clang-format-vs/CMakeLists.txt
>> >> > @@ -18,8 +18,13 @@ if (BUILD_CLANG_FORMAT_VS_PLUGIN)
>> >> >    configure_file("source.extension.vsixmanifest.in"
>> >> >
>> >> >
>> >> > "${CMAKE_CURRENT_SOURCE_DIR}/ClangFormat/source.extension.vsixmanifest")
>> >> >
>> >> > -  add_custom_target(clang_format_vsix ALL
>> >> > -      devenv "${CMAKE_CURRENT_SOURCE_DIR}/ClangFormat.sln" /Build
>> >> > Release
>> >> > +  find_program(NUGET_EXE nuget PATHS ${NUGET_EXE_PATH})
>> >> > +  if (NOT NUGET_EXE)
>> >> > + message(FATAL_ERROR "Could not find nuget.exe. Download from
>> >> > https://www.nuget.org/nuget.exe and add to PATH or pass path via
>> >> > NUGET_EXE_PATH var")
>> >>
>> >> Can you break this string over multiple lines? I know there are pretty
>> >> long lines in this file already, but it would be good to not make it
>> >> worse.
>> >
>> >
>> > Sure thing, I'll see what I can do :)
>> >
>> >>
>> >>
>> >> Maybe it could be clarified that NUGET_EXE_PATH is the path to a
>> >> directory containing nuget.exe, not to the file itself (I ran into
>> >> this). Maybe NUGET_EXE_DIR would be a better name?
>> >
>> >
>> > That would be a better name, will make that change.
>> >
>> >>
>> >>
>> >> > +  endif()
>> >> > +
>> >> > +  add_custom_target(clang_format_vsix ALL
>> >> > +  ${NUGET_EXE} restore "${CMAKE_CURRENT_SOURCE_DIR}/ClangFormat.sln"
>> >> > &
>> >> > devenv "${CMAKE_CURRENT_SOURCE_DIR}/ClangFormat.sln" /Build Release
>> >>
>> >> Is '&' a CMake thing, or should that be '&&'? Also, any chance of
>> >> breaking these long lines?
>> >
>> >
>> > '&' is a cmd.exe thing, but I can use '&&' - in fact, the latter only
>> > runs
>> > the 2nd command if the first succeeds, while using '&' always runs both.
>> > I'll make the change, and will try to shorten this line as well.
>> >
>> >>
>> >>
>> >> >        DEPENDS clang_format_exe_for_vsix
>> >> >
>> >> > "${CMAKE_CURRENT_SOURCE_DIR}/ClangFormat/source.extension.vsixmanifest"
>> >> >        COMMAND ${CMAKE_COMMAND} -E copy_if_different
>> >> >
>> >> >
>> >> > "${CMAKE_CURRENT_SOURCE_DIR}/ClangFormat/bin/Release/ClangFormat.vsix"
>> >> > diff --git a/tools/clang-format-vs/README.txt
>> >> > b/tools/clang-format-vs/README.txt
>> >> > index b23355d..44a071b 100644
>> >> > --- a/tools/clang-format-vs/README.txt
>> >> > +++ b/tools/clang-format-vs/README.txt
>> >> > @@ -2,13 +2,23 @@ This directory contains a VSPackage project to
>> >> > generate a Visual Studio extensio
>> >> >  for clang-format.
>> >> >
>> >> >  Build prerequisites are:
>> >> > -- Visual Studio 2013 Professional
>> >> > -- Visual Studio 2013 SDK
>> >> > -- Visual Studio 2010 Professional (?)
>> >> > -- Visual Studio 2010 SDK (?)
>> >> > +- Visual Studio 2015
>> >> > +- Extensions SDK (you'll be prompted to install it if you open
>> >> > ClangFormat.sln)
>> >>
>> >> A very nice simplification :-)
>> >
>> >
>> > Thanks :)
>> >
>> >>
>> >>
>> >> >
>> >> > -The extension is built using CMake by setting
>> >> > BUILD_CLANG_FORMAT_VS_PLUGIN=ON
>> >> > -when configuring a Clang build, and building the clang_format_vsix
>> >> > target.
>> >> > +The extension is built using CMake to generate the usual LLLVM.sln
>> >> > by
>> >> > setting
>> >>
>> >> An L too much in LLLVM.sln?
>> >
>> >
>> > You know, that extra L in 'L'egendary LLVM? ;) Will remove!
>> >
>> > Will update patch soon!
>> >
>> >>
>> >>
>> >> On Mon, Nov 28, 2016 at 8:00 PM, Antonio Maiorano <amaiorano at gmail.com>
>> >> wrote:
>> >> > I've attached a patch that works as discussed. When running CMake
>> >> > with
>> >> > -DBUILD_CLANG_FORMAT_VS_PLUGIN=ON, it will look for nuget.exe in
>> >> > PATH,
>> >> > or
>> >> > you can pass in DNUGET_EXE_PATH=C:\nuget, for e.g.
>> >> >
>> >> >
>> >> > On Mon, 28 Nov 2016 at 14:31 Antonio Maiorano <amaiorano at gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> Great, I'll get this working soon and attach a new patch :)
>> >> >>
>> >> >> On Mon, 28 Nov 2016 at 14:27 Hans Wennborg <hans at chromium.org>
>> >> >> wrote:
>> >> >>>
>> >> >>> On Mon, Nov 28, 2016 at 11:11 AM, Antonio Maiorano
>> >> >>> <amaiorano at gmail.com>
>> >> >>> wrote:
>> >> >>> >> It's built with the script in
>> >> >>> >> utils/release/build_llvm_package.bat
>> >> >>> > which I run manually on my machine once every few weeks.
>> >> >>> >
>> >> >>> > Okay, that's good news. So the simplest path to success would be
>> >> >>> > to
>> >> >>> > require
>> >> >>> > the user to either pass the path to CMake via an arg like
>> >> >>> > -DNUGET_EXE_PATH,
>> >> >>> > or if it's not defined, to assume it's already in PATH. This is
>> >> >>> > the
>> >> >>> > most
>> >> >>> > future-proof solution as it will work with future versions of VS
>> >> >>> > (2017
>> >> >>> > RC
>> >> >>> > just came out).
>> >> >>> >
>> >> >>> > I can still look into whether a vsix built with VS 2015
>> >> >>> > references
>> >> >>> > will
>> >> >>> > continue to work in older versions of VS, but even if this works,
>> >> >>> > I
>> >> >>> > feel
>> >> >>> > like it's a temporary solution at best. There are other
>> >> >>> > advantages
>> >> >>> > to
>> >> >>> > using
>> >> >>> > NuGet here: it would allow us to more easily pin/upgrade which
>> >> >>> > assemblies we
>> >> >>> > want to use over time.
>> >> >>> >
>> >> >>> > If you're okay with it, I'll make the changes necessary to use
>> >> >>> > -DNUGET_EXE_PATH, if defined, otherwise assume it's on PATH. This
>> >> >>> > should be
>> >> >>> > a simple change at this point.
>> >> >>>
>> >> >>> That sounds good to me. There are already a bunch of prerequisites
>> >> >>> for
>> >> >>> building the plugin, so adding this one doesn't seem unreasonable.
>> >> >>> Especially since it seems it will simplify things to the point that
>> >> >>> they might even work elsewhere than my own machine :-)
>> >> >>>
>> >> >>>
>> >> >>> > On Mon, 28 Nov 2016 at 13:59 Hans Wennborg <hans at chromium.org>
>> >> >>> > wrote:
>> >> >>> >>
>> >> >>> >> On Mon, Nov 28, 2016 at 10:46 AM, Antonio Maiorano
>> >> >>> >> <amaiorano at gmail.com>
>> >> >>> >> wrote:
>> >> >>> >> > Okay, I'll see if upgrading to the 2015 assemblies would allow
>> >> >>> >> > the
>> >> >>> >> > VSIX
>> >> >>> >> > to
>> >> >>> >> > keep working in older versions of VS.
>> >> >>> >> >
>> >> >>> >> > Still waiting on an answer to this question:
>> >> >>> >> >
>> >> >>> >> >> In either case, though, I must ask: how is the offical vsix
>> >> >>> >> >> that's
>> >> >>> >> >> available on http://llvm.org/builds/ get built? Is it part of
>> >> >>> >> >> an
>> >> >>> >> >> automated
>> >> >>> >> >> Clang build, or is it built and uploaded manually? If it's
>> >> >>> >> >> automated,
>> >> >>> >> >> then
>> >> >>> >> >> having to download and point to nuget.exe won't work.
>> >> >>> >>
>> >> >>> >> It's built with the script in
>> >> >>> >> utils/release/build_llvm_package.bat
>> >> >>> >> which I run manually on my machine once every few weeks.
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> > On Mon, 28 Nov 2016 at 13:04 Hans Wennborg <hans at chromium.org>
>> >> >>> >> > wrote:
>> >> >>> >> >>
>> >> >>> >> >> On Fri, Nov 25, 2016 at 6:58 PM, Antonio Maiorano
>> >> >>> >> >> <amaiorano at gmail.com>
>> >> >>> >> >> wrote:
>> >> >>> >> >> > Ah, no, that's not what I meant. The required referenced
>> >> >>> >> >> > assemblies
>> >> >>> >> >> > are
>> >> >>> >> >> > versions that are normally installed with VS 2010.
>> >> >>> >> >> >
>> >> >>> >> >> > The first time I worked on this, I had upgraded the
>> >> >>> >> >> > referenced
>> >> >>> >> >> > assemblies to
>> >> >>> >> >> > the ones that ship with VS 2015, but then there was
>> >> >>> >> >> > question
>> >> >>> >> >> > of
>> >> >>> >> >> > whether
>> >> >>> >> >> > or
>> >> >>> >> >> > not the VSIX would continue to work with VS 2010/2012/2013.
>> >> >>> >> >> > I'm
>> >> >>> >> >> > not
>> >> >>> >> >> > sure
>> >> >>> >> >> > if
>> >> >>> >> >> > it would work, but I guess I can try to figure that out.
>> >> >>> >> >>
>> >> >>> >> >> Let me know if you figure this one out. It sounds like it
>> >> >>> >> >> would
>> >> >>> >> >> simplify things a lot.
>> >> >>> >> >>
>> >> >>> >> >> > In any case, what I discovered is that the "right" way to
>> >> >>> >> >> > do
>> >> >>> >> >> > things
>> >> >>> >> >> > to
>> >> >>> >> >> > make
>> >> >>> >> >> > sure your extension compiles in future versions of VS is to
>> >> >>> >> >> > use
>> >> >>> >> >> > NuGet
>> >> >>> >> >> > to
>> >> >>> >> >> > automatically pull in the required assemblies, or to check
>> >> >>> >> >> > them
>> >> >>> >> >> > in
>> >> >>> >> >> > and
>> >> >>> >> >> > reference them directly. The former would be better except
>> >> >>> >> >> > for
>> >> >>> >> >> > the
>> >> >>> >> >> > problem
>> >> >>> >> >> > of CLI builds as I described in my earlier email.
>> >> >>> >> >> >
>> >> >>> >> >> >
>> >> >>> >> >> >
>> >> >>> >> >> > On Fri, 25 Nov 2016 at 21:47 Zachary Turner
>> >> >>> >> >> > <zturner at google.com>
>> >> >>> >> >> > wrote:
>> >> >>> >> >> >>
>> >> >>> >> >> >> Sorry, i think I misunderstood the original option 1. I
>> >> >>> >> >> >> interpreted
>> >> >>> >> >> >> it
>> >> >>> >> >> >> as
>> >> >>> >> >> >> just committing changes to the vsix manifest to reference
>> >> >>> >> >> >> a
>> >> >>> >> >> >> specific
>> >> >>> >> >> >> version
>> >> >>> >> >> >> of the assembly which we assume to be present since it
>> >> >>> >> >> >> should
>> >> >>> >> >> >> be
>> >> >>> >> >> >> automatically installed with vs 2015. Is this not
>> >> >>> >> >> >> possible?
>> >> >>> >> >> >> Can't we
>> >> >>> >> >> >> just
>> >> >>> >> >> >> point the manifest to the version installed with vs?
>> >> >>> >> >> >> On Fri, Nov 25, 2016 at 6:20 PM Antonio Maiorano
>> >> >>> >> >> >> <amaiorano at gmail.com>
>> >> >>> >> >> >> wrote:
>> >> >>> >> >> >>>
>> >> >>> >> >> >>> Hi again,
>> >> >>> >> >> >>>
>> >> >>> >> >> >>> I've made the changes so that the required assemblies are
>> >> >>> >> >> >>> committed,
>> >> >>> >> >> >>> so
>> >> >>> >> >> >>> now we can build the clang-format-vsix with just VS 2015.
>> >> >>> >> >> >>> Since
>> >> >>> >> >> >>> the
>> >> >>> >> >> >>> patch
>> >> >>> >> >> >>> set is around 9 mb, I'm providing a link to it on my
>> >> >>> >> >> >>> Dropbox
>> >> >>> >> >> >>> (if
>> >> >>> >> >> >>> you'd
>> >> >>> >> >> >>> rather I attach it, let me know):
>> >> >>> >> >> >>>
>> >> >>> >> >> >>>
>> >> >>> >> >> >>>
>> >> >>> >> >> >>>
>> >> >>> >> >> >>>
>> >> >>> >> >> >>>
>> >> >>> >> >> >>>
>> >> >>> >> >> >>> https://dl.dropboxusercontent.com/u/10504225/llvm-patches/0001-Fix-VS2015-build-of-clang-format-vsix-by-committing-.patch
>> >> >>> >> >> >>>
>> >> >>> >> >> >>> Note that it's a git patch set, for which I followed the
>> >> >>> >> >> >>> instructions
>> >> >>> >> >> >>> here.
>> >> >>> >> >> >>>
>> >> >>> >> >> >>> Thanks.
>> >> >>> >> >> >>>
>> >> >>> >> >> >>> On Thu, 24 Nov 2016 at 15:45 Antonio Maiorano
>> >> >>> >> >> >>> <amaiorano at gmail.com>
>> >> >>> >> >> >>> wrote:
>> >> >>> >> >> >>>>
>> >> >>> >> >> >>>> Okay, that's fine, I'll go for that and if all looks
>> >> >>> >> >> >>>> good,
>> >> >>> >> >> >>>> will
>> >> >>> >> >> >>>> attach a
>> >> >>> >> >> >>>> patch.
>> >> >>> >> >> >>>>
>> >> >>> >> >> >>>> Thanks.
>> >> >>> >> >> >>>>
>> >> >>> >> >> >>>> On Thu, 24 Nov 2016 at 15:09 Zachary Turner
>> >> >>> >> >> >>>> <zturner at google.com>
>> >> >>> >> >> >>>> wrote:
>> >> >>> >> >> >>>>>
>> >> >>> >> >> >>>>> I would use the first solution. We lock ourselves to
>> >> >>> >> >> >>>>> specific
>> >> >>> >> >> >>>>> versions
>> >> >>> >> >> >>>>> of vs, so i think it's fine to do the same with the
>> >> >>> >> >> >>>>> assemblies
>> >> >>> >> >> >>>>> and
>> >> >>> >> >> >>>>> deal with
>> >> >>> >> >> >>>>> it only when we upgrade
>> >> >>> >> >> >>>>> On Thu, Nov 24, 2016 at 11:29 AM Antonio Maiorano
>> >> >>> >> >> >>>>> <amaiorano at gmail.com>
>> >> >>> >> >> >>>>> wrote:
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> Hi Hans,
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> I saw that on September 15th, you checked in a change:
>> >> >>> >> >> >>>>>> clang-format
>> >> >>> >> >> >>>>>> VS
>> >> >>> >> >> >>>>>> plugin: upgrade the project files to VS2015.
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> When I open the latest version of ClangFormat.sln on a
>> >> >>> >> >> >>>>>> machine
>> >> >>> >> >> >>>>>> that
>> >> >>> >> >> >>>>>> has only VS 2015, it doesn't build. The reason is that
>> >> >>> >> >> >>>>>> some
>> >> >>> >> >> >>>>>> of
>> >> >>> >> >> >>>>>> the
>> >> >>> >> >> >>>>>> referenced assemblies are from VS 2010.
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> <Reference
>> >> >>> >> >> >>>>>> Include="Microsoft.VisualStudio.CoreUtility,
>> >> >>> >> >> >>>>>> Version=10.0.0.0, Culture=neutral,
>> >> >>> >> >> >>>>>> PublicKeyToken=b03f5f7f11d50a3a,
>> >> >>> >> >> >>>>>> processorArchitecture=MSIL" /> <Reference
>> >> >>> >> >> >>>>>> Include="Microsoft.VisualStudio.Editor,
>> >> >>> >> >> >>>>>> Version=10.0.0.0,
>> >> >>> >> >> >>>>>> Culture=neutral,
>> >> >>> >> >> >>>>>> PublicKeyToken=b03f5f7f11d50a3a,
>> >> >>> >> >> >>>>>> processorArchitecture=MSIL"
>> >> >>> >> >> >>>>>> />
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> What happens is that when building, these specific
>> >> >>> >> >> >>>>>> assemblies
>> >> >>> >> >> >>>>>> are
>> >> >>> >> >> >>>>>> not
>> >> >>> >> >> >>>>>> found. I suspect you have VS 2010 installed on your
>> >> >>> >> >> >>>>>> machine,
>> >> >>> >> >> >>>>>> which
>> >> >>> >> >> >>>>>> is why
>> >> >>> >> >> >>>>>> you don't get these build errors.
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> The recommended way to handle this is to make use of
>> >> >>> >> >> >>>>>> NuGet
>> >> >>> >> >> >>>>>> to
>> >> >>> >> >> >>>>>> have
>> >> >>> >> >> >>>>>> it
>> >> >>> >> >> >>>>>> automatically download the required assemblies. I have
>> >> >>> >> >> >>>>>> made
>> >> >>> >> >> >>>>>> the
>> >> >>> >> >> >>>>>> changes
>> >> >>> >> >> >>>>>> locally to get this working, and it works great when
>> >> >>> >> >> >>>>>> building
>> >> >>> >> >> >>>>>> ClangFormat.sln from within Visual Studio; however,
>> >> >>> >> >> >>>>>> building
>> >> >>> >> >> >>>>>> from
>> >> >>> >> >> >>>>>> the CLI
>> >> >>> >> >> >>>>>> doesn't work out of the box because you must
>> >> >>> >> >> >>>>>> explicitly
>> >> >>> >> >> >>>>>> run
>> >> >>> >> >> >>>>>> 'nuget.exe
>> >> >>> >> >> >>>>>> restore ClangFormat.sln' before running msbuild (or
>> >> >>> >> >> >>>>>> devenv.exe
>> >> >>> >> >> >>>>>> in
>> >> >>> >> >> >>>>>> our case).
>> >> >>> >> >> >>>>>> The problem is that nuget.exe isn't something that's
>> >> >>> >> >> >>>>>> easily
>> >> >>> >> >> >>>>>> found/accessible
>> >> >>> >> >> >>>>>> on Windows, even once installed as an extension in VS.
>> >> >>> >> >> >>>>>> This
>> >> >>> >> >> >>>>>> is a
>> >> >>> >> >> >>>>>> known
>> >> >>> >> >> >>>>>> problem and the current best solution requires
>> >> >>> >> >> >>>>>> downloading
>> >> >>> >> >> >>>>>> and
>> >> >>> >> >> >>>>>> making
>> >> >>> >> >> >>>>>> nuget.exe available in PATH.
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> So now i'm faced with figuring out how best to solve
>> >> >>> >> >> >>>>>> this
>> >> >>> >> >> >>>>>> so
>> >> >>> >> >> >>>>>> that
>> >> >>> >> >> >>>>>> the
>> >> >>> >> >> >>>>>> custom build step in this CMakeLists.txt that runs
>> >> >>> >> >> >>>>>> devenv
>> >> >>> >> >> >>>>>> doesn't
>> >> >>> >> >> >>>>>> fail:
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> devenv "${CMAKE_CURRENT_SOURCE_DIR}/ClangFormat.sln"
>> >> >>> >> >> >>>>>> /Build
>> >> >>> >> >> >>>>>> Release
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> There are a few options:
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> 1) Forget NuGet and just commit the referenced
>> >> >>> >> >> >>>>>> assemblies.
>> >> >>> >> >> >>>>>> This
>> >> >>> >> >> >>>>>> is
>> >> >>> >> >> >>>>>> the
>> >> >>> >> >> >>>>>> simplest solution, but is more annoying to manage if
>> >> >>> >> >> >>>>>> we
>> >> >>> >> >> >>>>>> want
>> >> >>> >> >> >>>>>> to
>> >> >>> >> >> >>>>>> upgrade the
>> >> >>> >> >> >>>>>> versions of these assemblies later.
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> 2) Commit nuget.exe to the repo and just use it. This
>> >> >>> >> >> >>>>>> is
>> >> >>> >> >> >>>>>> simple
>> >> >>> >> >> >>>>>> enough, but I'm not sure how people feel about
>> >> >>> >> >> >>>>>> committing
>> >> >>> >> >> >>>>>> binaries,
>> >> >>> >> >> >>>>>> and it
>> >> >>> >> >> >>>>>> would be frozen at whatever version we commit.
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> 3) Do some form of wget to grab the latest nuget.exe
>> >> >>> >> >> >>>>>> from
>> >> >>> >> >> >>>>>> "https://nuget.org/nuget.exe" in CMake and invoke it.
>> >> >>> >> >> >>>>>> I'm
>> >> >>> >> >> >>>>>> not
>> >> >>> >> >> >>>>>> yet
>> >> >>> >> >> >>>>>> sure
>> >> >>> >> >> >>>>>> what's the simplest way to do this. Powershell could
>> >> >>> >> >> >>>>>> be
>> >> >>> >> >> >>>>>> used,
>> >> >>> >> >> >>>>>> but
>> >> >>> >> >> >>>>>> there are
>> >> >>> >> >> >>>>>> security annoyances to deal with.
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> That's all I can come up with so far. Would love to
>> >> >>> >> >> >>>>>> hear
>> >> >>> >> >> >>>>>> from
>> >> >>> >> >> >>>>>> you
>> >> >>> >> >> >>>>>> guys
>> >> >>> >> >> >>>>>> if you have any ideas or opinions on this. If you want
>> >> >>> >> >> >>>>>> I
>> >> >>> >> >> >>>>>> can
>> >> >>> >> >> >>>>>> send
>> >> >>> >> >> >>>>>> you a
>> >> >>> >> >> >>>>>> patch of what I've got so far if that helps.
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> Thanks,
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> Antonio Maiorano
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>>
>> >> >>> >> >> >>>>>> On Thu, 15 Sep 2016 at 19:35 Antonio Maiorano
>> >> >>> >> >> >>>>>> <amaiorano at gmail.com>
>> >> >>> >> >> >>>>>> wrote:
>> >> >>> >> >> >>>>>>>
>> >> >>> >> >> >>>>>>> Sorry I haven't had a chance to get back to this.
>> >> >>> >> >> >>>>>>> Things
>> >> >>> >> >> >>>>>>> got
>> >> >>> >> >> >>>>>>> busy
>> >> >>> >> >> >>>>>>> at
>> >> >>> >> >> >>>>>>> work. I do plan to get back to this as I'm hoping to
>> >> >>> >> >> >>>>>>> add
>> >> >>> >> >> >>>>>>> some
>> >> >>> >> >> >>>>>>> features to
>> >> >>> >> >> >>>>>>> this extension :)
>> >> >>> >> >> >>>>>>> On Thu, Sep 15, 2016 at 7:31 PM Zachary Turner
>> >> >>> >> >> >>>>>>> <zturner at google.com>
>> >> >>> >> >> >>>>>>> wrote:
>> >> >>> >> >> >>>>>>>>
>> >> >>> >> >> >>>>>>>> Strange.  FWIW you can dump all the variables that
>> >> >>> >> >> >>>>>>>> are
>> >> >>> >> >> >>>>>>>> present
>> >> >>> >> >> >>>>>>>> in
>> >> >>> >> >> >>>>>>>> your environment.  You need to go to Tools ->
>> >> >>> >> >> >>>>>>>> Options
>> >> >>> >> >> >>>>>>>> ->
>> >> >>> >> >> >>>>>>>> Projects
>> >> >>> >> >> >>>>>>>> and
>> >> >>> >> >> >>>>>>>> Solutions -> Build and Run and choose either Normal,
>> >> >>> >> >> >>>>>>>> Detailed,
>> >> >>> >> >> >>>>>>>> or
>> >> >>> >> >> >>>>>>>> Diagnostic
>> >> >>> >> >> >>>>>>>> for the MSBuild project build output verbosity.
>> >> >>> >> >> >>>>>>>> Then
>> >> >>> >> >> >>>>>>>> in
>> >> >>> >> >> >>>>>>>> the
>> >> >>> >> >> >>>>>>>> output window
>> >> >>> >> >> >>>>>>>> you will get a ton of spam, some of which is the set
>> >> >>> >> >> >>>>>>>> of
>> >> >>> >> >> >>>>>>>> all
>> >> >>> >> >> >>>>>>>> MSBuild
>> >> >>> >> >> >>>>>>>> variables you can take advantage of.
>> >> >>> >> >> >>>>>>>>
>> >> >>> >> >> >>>>>>>> On Thu, Sep 15, 2016 at 4:25 PM Hans Wennborg
>> >> >>> >> >> >>>>>>>> <hans at chromium.org>
>> >> >>> >> >> >>>>>>>> wrote:
>> >> >>> >> >> >>>>>>>>>
>> >> >>> >> >> >>>>>>>>> When I first opened the solution in VS it prompted
>> >> >>> >> >> >>>>>>>>> me
>> >> >>> >> >> >>>>>>>>> to
>> >> >>> >> >> >>>>>>>>> install
>> >> >>> >> >> >>>>>>>>> it
>> >> >>> >> >> >>>>>>>>> and I did.
>> >> >>> >> >> >>>>>>>>>
>> >> >>> >> >> >>>>>>>>> On Thu, Sep 15, 2016 at 4:17 PM, Zachary Turner
>> >> >>> >> >> >>>>>>>>> <zturner at google.com> wrote:
>> >> >>> >> >> >>>>>>>>> > You may need to install the Visual Studio SDK.
>> >> >>> >> >> >>>>>>>>> > Did
>> >> >>> >> >> >>>>>>>>> > you
>> >> >>> >> >> >>>>>>>>> > do
>> >> >>> >> >> >>>>>>>>> > that
>> >> >>> >> >> >>>>>>>>> > when you
>> >> >>> >> >> >>>>>>>>> > initially installed VS 2015?
>> >> >>> >> >> >>>>>>>>> >
>> >> >>> >> >> >>>>>>>>> > On Thu, Sep 15, 2016 at 4:15 PM Hans Wennborg
>> >> >>> >> >> >>>>>>>>> > <hans at chromium.org>
>> >> >>> >> >> >>>>>>>>> > wrote:
>> >> >>> >> >> >>>>>>>>> >>
>> >> >>> >> >> >>>>>>>>> >> Well, on my machine $(SDKToolsDir) doesn't work
>> >> >>> >> >> >>>>>>>>> >> :-(
>> >> >>> >> >> >>>>>>>>> >> I
>> >> >>> >> >> >>>>>>>>> >> suspect
>> >> >>> >> >> >>>>>>>>> >> the file
>> >> >>> >> >> >>>>>>>>> >> will need manual tweaking by whoever is trying
>> >> >>> >> >> >>>>>>>>> >> to
>> >> >>> >> >> >>>>>>>>> >> build
>> >> >>> >> >> >>>>>>>>> >> the
>> >> >>> >> >> >>>>>>>>> >> plugin.
>> >> >>> >> >> >>>>>>>>> >>
>> >> >>> >> >> >>>>>>>>> >> Anyway, I've updated the solution to build with
>> >> >>> >> >> >>>>>>>>> >> VS2015
>> >> >>> >> >> >>>>>>>>> >> in
>> >> >>> >> >> >>>>>>>>> >> r281648 and
>> >> >>> >> >> >>>>>>>>> >> confirmed that it can still be used with older
>> >> >>> >> >> >>>>>>>>> >> VS
>> >> >>> >> >> >>>>>>>>> >> versions
>> >> >>> >> >> >>>>>>>>> >> too.
>> >> >>> >> >> >>>>>>>>> >>
>> >> >>> >> >> >>>>>>>>> >> Cheers,
>> >> >>> >> >> >>>>>>>>> >> Hans
>> >> >>> >> >> >>>>>>>>> >>
>> >> >>> >> >> >>>>>>>>> >> On Thu, Aug 18, 2016 at 7:11 PM, Zachary Turner
>> >> >>> >> >> >>>>>>>>> >> <zturner at google.com>
>> >> >>> >> >> >>>>>>>>> >> wrote:
>> >> >>> >> >> >>>>>>>>> >> > The key.snk is generated when you build, the
>> >> >>> >> >> >>>>>>>>> >> > problem
>> >> >>> >> >> >>>>>>>>> >> > is
>> >> >>> >> >> >>>>>>>>> >> > the
>> >> >>> >> >> >>>>>>>>> >> > csproj file
>> >> >>> >> >> >>>>>>>>> >> > hardcodes the directory to the sdk instead of
>> >> >>> >> >> >>>>>>>>> >> > using
>> >> >>> >> >> >>>>>>>>> >> > the
>> >> >>> >> >> >>>>>>>>> >> > appropriate
>> >> >>> >> >> >>>>>>>>> >> > project
>> >> >>> >> >> >>>>>>>>> >> > system variable like $(SDKToolsDir)
>> >> >>> >> >> >>>>>>>>> >> >
>> >> >>> >> >> >>>>>>>>> >> > On Thu, Aug 18, 2016 at 7:09 PM Zachary Turner
>> >> >>> >> >> >>>>>>>>> >> > <zturner at google.com>
>> >> >>> >> >> >>>>>>>>> >> > wrote:
>> >> >>> >> >> >>>>>>>>> >> >>
>> >> >>> >> >> >>>>>>>>> >> >> Llvm doesn't support vs2012 anymore, as long
>> >> >>> >> >> >>>>>>>>> >> >> as
>> >> >>> >> >> >>>>>>>>> >> >> it
>> >> >>> >> >> >>>>>>>>> >> >> supports
>> >> >>> >> >> >>>>>>>>> >> >> vs2013 it's
>> >> >>> >> >> >>>>>>>>> >> >> fine
>> >> >>> >> >> >>>>>>>>> >> >> On Thu, Aug 18, 2016 at 7:07 PM Antonio
>> >> >>> >> >> >>>>>>>>> >> >> Maiorano
>> >> >>> >> >> >>>>>>>>> >> >> <amaiorano at gmail.com>
>> >> >>> >> >> >>>>>>>>> >> >> wrote:
>> >> >>> >> >> >>>>>>>>> >> >>>
>> >> >>> >> >> >>>>>>>>> >> >>> Hi,
>> >> >>> >> >> >>>>>>>>> >> >>>
>> >> >>> >> >> >>>>>>>>> >> >>> What I meant by upgrade was simply making it
>> >> >>> >> >> >>>>>>>>> >> >>> build
>> >> >>> >> >> >>>>>>>>> >> >>> in
>> >> >>> >> >> >>>>>>>>> >> >>> VS
>> >> >>> >> >> >>>>>>>>> >> >>> 2015.
>> >> >>> >> >> >>>>>>>>> >> >>> However,
>> >> >>> >> >> >>>>>>>>> >> >>> you bring up a valid point about making sure
>> >> >>> >> >> >>>>>>>>> >> >>> the
>> >> >>> >> >> >>>>>>>>> >> >>> extension
>> >> >>> >> >> >>>>>>>>> >> >>> will
>> >> >>> >> >> >>>>>>>>> >> >>> continue to
>> >> >>> >> >> >>>>>>>>> >> >>> work in VS 2012. I will look into that. Like
>> >> >>> >> >> >>>>>>>>> >> >>> those
>> >> >>> >> >> >>>>>>>>> >> >>> references that go
>> >> >>> >> >> >>>>>>>>> >> >>> from
>> >> >>> >> >> >>>>>>>>> >> >>> 10 to 14 that point out; I wonder if instead
>> >> >>> >> >> >>>>>>>>> >> >>> I
>> >> >>> >> >> >>>>>>>>> >> >>> should
>> >> >>> >> >> >>>>>>>>> >> >>> be
>> >> >>> >> >> >>>>>>>>> >> >>> able to bring
>> >> >>> >> >> >>>>>>>>> >> >>> in
>> >> >>> >> >> >>>>>>>>> >> >>> those version 10 assemblies via NuGet. I'll
>> >> >>> >> >> >>>>>>>>> >> >>> take a
>> >> >>> >> >> >>>>>>>>> >> >>> closer
>> >> >>> >> >> >>>>>>>>> >> >>> look.
>> >> >>> >> >> >>>>>>>>> >> >>>
>> >> >>> >> >> >>>>>>>>> >> >>> Part of my change, however, seems to imply
>> >> >>> >> >> >>>>>>>>> >> >>> that
>> >> >>> >> >> >>>>>>>>> >> >>> the
>> >> >>> >> >> >>>>>>>>> >> >>> extension (vsix)
>> >> >>> >> >> >>>>>>>>> >> >>> project would not build correctly even in VS
>> >> >>> >> >> >>>>>>>>> >> >>> 2012.
>> >> >>> >> >> >>>>>>>>> >> >>> For
>> >> >>> >> >> >>>>>>>>> >> >>> instance, the
>> >> >>> >> >> >>>>>>>>> >> >>> missing
>> >> >>> >> >> >>>>>>>>> >> >>> Key.snk file. I don't have VS 2012 installed
>> >> >>> >> >> >>>>>>>>> >> >>> at
>> >> >>> >> >> >>>>>>>>> >> >>> the
>> >> >>> >> >> >>>>>>>>> >> >>> moment,
>> >> >>> >> >> >>>>>>>>> >> >>> so I
>> >> >>> >> >> >>>>>>>>> >> >>> cannot
>> >> >>> >> >> >>>>>>>>> >> >>> validate.
>> >> >>> >> >> >>>>>>>>> >> >>>
>> >> >>> >> >> >>>>>>>>> >> >>> Thanks,
>> >> >>> >> >> >>>>>>>>> >> >>>
>> >> >>> >> >> >>>>>>>>> >> >>> Antonio
>> >> >>> >> >> >>>>>>>>> >> >>>
>> >> >>> >> >> >>>>>>>>> >> >>>
>> >> >>> >> >> >>>>>>>>> >> >>>
>> >> >>> >> >> >>>>>>>>> >> >>> On Thu, 18 Aug 2016 at 19:38 Hans Wennborg
>> >> >>> >> >> >>>>>>>>> >> >>> <hans at chromium.org> wrote:
>> >> >>> >> >> >>>>>>>>> >> >>>>
>> >> >>> >> >> >>>>>>>>> >> >>>> Hi Antonio,
>> >> >>> >> >> >>>>>>>>> >> >>>>
>> >> >>> >> >> >>>>>>>>> >> >>>> On Wed, Aug 17, 2016 at 8:15 AM, Antonio
>> >> >>> >> >> >>>>>>>>> >> >>>> Maiorano
>> >> >>> >> >> >>>>>>>>> >> >>>> via
>> >> >>> >> >> >>>>>>>>> >> >>>> cfe-commits
>> >> >>> >> >> >>>>>>>>> >> >>>> <cfe-commits at lists.llvm.org> wrote:
>> >> >>> >> >> >>>>>>>>> >> >>>> > This patch for clang-format-vs includes
>> >> >>> >> >> >>>>>>>>> >> >>>> > the
>> >> >>> >> >> >>>>>>>>> >> >>>> > following:
>> >> >>> >> >> >>>>>>>>> >> >>>> >
>> >> >>> >> >> >>>>>>>>> >> >>>> > - Upgrade to VS 2015, including .NET
>> >> >>> >> >> >>>>>>>>> >> >>>> > framework
>> >> >>> >> >> >>>>>>>>> >> >>>> > upgrade
>> >> >>> >> >> >>>>>>>>> >> >>>> > from 4.0 to
>> >> >>> >> >> >>>>>>>>> >> >>>> > 4.5, and
>> >> >>> >> >> >>>>>>>>> >> >>>> > upgrading Microsoft.VisualStudio
>> >> >>> >> >> >>>>>>>>> >> >>>> > references
>> >> >>> >> >> >>>>>>>>> >> >>>> > to
>> >> >>> >> >> >>>>>>>>> >> >>>> > v14
>> >> >>> >> >> >>>>>>>>> >> >>>> > versions
>> >> >>> >> >> >>>>>>>>> >> >>>> > - Fix build by removing dependency on
>> >> >>> >> >> >>>>>>>>> >> >>>> > "Key.snk"
>> >> >>> >> >> >>>>>>>>> >> >>>> > file
>> >> >>> >> >> >>>>>>>>> >> >>>> > which was
>> >> >>> >> >> >>>>>>>>> >> >>>> > never
>> >> >>> >> >> >>>>>>>>> >> >>>> > checked
>> >> >>> >> >> >>>>>>>>> >> >>>> > in (and not really required anyway)
>> >> >>> >> >> >>>>>>>>> >> >>>> > - Add ".vs" directory to svn ignore (new
>> >> >>> >> >> >>>>>>>>> >> >>>> > folder
>> >> >>> >> >> >>>>>>>>> >> >>>> > that
>> >> >>> >> >> >>>>>>>>> >> >>>> > VS
>> >> >>> >> >> >>>>>>>>> >> >>>> > 2015
>> >> >>> >> >> >>>>>>>>> >> >>>> > creates
>> >> >>> >> >> >>>>>>>>> >> >>>> > for
>> >> >>> >> >> >>>>>>>>> >> >>>> > user settings)
>> >> >>> >> >> >>>>>>>>> >> >>>>
>> >> >>> >> >> >>>>>>>>> >> >>>> "What does "Upgrade to VS 2015 mean? Adding
>> >> >>> >> >> >>>>>>>>> >> >>>> support
>> >> >>> >> >> >>>>>>>>> >> >>>> for
>> >> >>> >> >> >>>>>>>>> >> >>>> running the
>> >> >>> >> >> >>>>>>>>> >> >>>> plugin in VS2015, or does it mean requiring
>> >> >>> >> >> >>>>>>>>> >> >>>> VS2015
>> >> >>> >> >> >>>>>>>>> >> >>>> for
>> >> >>> >> >> >>>>>>>>> >> >>>> building?
>> >> >>> >> >> >>>>>>>>> >> >>>>
>> >> >>> >> >> >>>>>>>>> >> >>>> +zturner: I thought the plugin already
>> >> >>> >> >> >>>>>>>>> >> >>>> worked
>> >> >>> >> >> >>>>>>>>> >> >>>> in
>> >> >>> >> >> >>>>>>>>> >> >>>> VS
>> >> >>> >> >> >>>>>>>>> >> >>>> 2015?
>> >> >>> >> >> >>>>>>>>> >> >>>>
>> >> >>> >> >> >>>>>>>>> >> >>>> I mostly just build the plugin without
>> >> >>> >> >> >>>>>>>>> >> >>>> knowing
>> >> >>> >> >> >>>>>>>>> >> >>>> exactly
>> >> >>> >> >> >>>>>>>>> >> >>>> how
>> >> >>> >> >> >>>>>>>>> >> >>>> this stuff
>> >> >>> >> >> >>>>>>>>> >> >>>> works, but looking at the patch I'm worried
>> >> >>> >> >> >>>>>>>>> >> >>>> that
>> >> >>> >> >> >>>>>>>>> >> >>>> you're
>> >> >>> >> >> >>>>>>>>> >> >>>> increasing
>> >> >>> >> >> >>>>>>>>> >> >>>> the
>> >> >>> >> >> >>>>>>>>> >> >>>> required version for building it? I see a
>> >> >>> >> >> >>>>>>>>> >> >>>> bunch
>> >> >>> >> >> >>>>>>>>> >> >>>> of
>> >> >>> >> >> >>>>>>>>> >> >>>> values
>> >> >>> >> >> >>>>>>>>> >> >>>> going from
>> >> >>> >> >> >>>>>>>>> >> >>>> 10 (VS 2012) to 14 (VS 2015).
>> >> >>> >> >> >>>>>>>>> >> >>>>
>> >> >>> >> >> >>>>>>>>> >> >>>> Thanks,
>> >> >>> >> >> >>>>>>>>> >> >>>> Hans


More information about the cfe-commits mailing list