← Back to team overview

kicad-developers team mailing list archive

Re: Using Visual Studio 2017 CE for KiCad development

 

This sounds like a workable solution.

On 08/21/2018 05:05 PM, Andrew Lutsenko wrote:
> Because these settings have to be tweaked manually for each dev I don't
> think
> committing them in root makes sense. 
> 
> We could just add example and some docs in Documentation/development/ide
> 
> On Tue, Aug 21, 2018 at 11:52 AM Nick Østergaard <oe.nick@xxxxxxxxx
> <mailto:oe.nick@xxxxxxxxx>> wrote:
> 
>     Alternatively, we could provide them in a dedicated repository on the
>     kicad org on github. Then they are decoupled from the normal source
>     and the wild west for IDE confs are self contained. This is just a
>     suggestion if you think this would be useful.
>     Den tir. 21. aug. 2018 kl. 19.49 skrev Wayne Stambaugh
>     <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>:
>     >
>     > If we consider adding this, we open ourselves up to including
>     > configuration files for every IDE not just VS so it's a Pandora's box.
>     > If we do decide to allow this, please do not put it in the source root
>     > path.  Personally, I'm not a big fan but as long as it doesn't get
>     in my
>     > way then I'm not completely opposed to it.
>     >
>     > Cheers,
>     >
>     > Wayne
>     >
>     > On 8/19/2018 9:17 AM, Mark Roszko wrote:
>     > > Nice. I tried using the VS Cmake support a long time ago when it was
>     > > initially released but still buggy. Great you got it fully working!
>     > > Honestly as nice as CLion can be, VS completely blows it away.
>     > >
>     > > Personally I would consider using a build and install root of
>     > >
>     > >
>     > >       "buildRoot": "${workspaceRoot}\\build\\${name}",
>     > >       "installRoot": "${workspaceRoot}\\install\\${name}",
>     > >
>     > > so it doesn't get buried in your user root and you end up wondering,
>     > > months later, where all your disk space went.
>     > >
>     > > This should be considered for commiting into the source tree. It
>     doesn't
>     > > alter the source and still builds under msys.
>     > >
>     > >
>     > > On Sun, Aug 19, 2018 at 6:05 AM Andrew Lutsenko
>     <anlutsenko@xxxxxxxxx <mailto:anlutsenko@xxxxxxxxx>
>     > > <mailto:anlutsenko@xxxxxxxxx <mailto:anlutsenko@xxxxxxxxx>>> wrote:
>     > >
>     > >     Hi all,
>     > >
>     > >     I've managed to get KiCad code base to build in VS 2017 and more
>     > >     importantly be parsed
>     > >     by intellisense. Thought I'd share the config for other
>     windows devs.
>     > >
>     > >     I've been using Atom so far with relative success but it's not
>     > >     great. Decided to try if KiCad can
>     > >     be worked on in real IDE with contextual autocomplete that
>     works.
>     > >
>     > >     MS has been investing in building support in Visual Studio
>     for non
>     > >     ms build systems. GCC,
>     > >     clang, cmake, non x86 targets, all of this has been coming
>     along in
>     > >     recent releases.
>     > >     Not everything works like in ms build projects, but it's
>     still miles
>     > >     ahead of generic text editors.
>     > >
>     > >     Prerequisite: have msys2 windows environment with working
>     KiCad build.
>     > >
>     > >     Get VS 15.8.0 or later. I've tested this on 15.8.1 community
>     edition
>     > >     preview. (It's free).
>     > >
>     > >     Install additional components:
>     > >     Linux development with C++
>     > >     Visual C++ tools for CMake and Linux
>     > >
>     > >     Then open VS and go to File -> Open... -> CMake...
>     > >     select CMakeLists.txt in KiCad src root.
>     > >
>     > >     Next go to CMake -> Change CMake Settings -> CMakeLists.txt
>     > >     In popup window choose Mingw64 Release (or Debug)
>     > >     A file named CMakeSettings.json will be created and you have to
>     > >     tweak a few things.
>     > >     I've attached my CMakeSettings.json for reference but the
>     important
>     > >     bits are:
>     > >
>     > >     configurations.environments.MINGW64_ROOT - this is path to your
>     > >     mingw64 folder
>     > >     configurations.environments.FLAVOR - mingw flavor, I use
>     > >     x86_64-w64-mingw32
>     > >     configurations.environments.TOOLSET_VERSION should be
>     autodetected,
>     > >     if not check
>     > >         mingw64\lib\gcc\x86_64-w64-mingw32 folder for version. It's
>     > >     7.3.0 for me
>     > >     configurations.environments.INCLUDE -
>     > >     add ${env.MINGW64_ROOT}\\include to the list
>     > >     configurations.generator - I set it to "MSYS Makefiles" and VS
>     > >     frowns on it but it works.
>     > >         Maybe "Unix Makefiles" work too, I didn't check.
>     > >     configurations.cmakeCommandArgs - this is the tricky one
>     that I had
>     > >     to do trial and error
>     > >        dance with a lot and also read cmake find rules that
>     don't always
>     > >     work. I found this
>     > >        combination to do the job:
>     > >        "-DCMAKE_PREFIX_PATH=${env.MINGW64_ROOT} -DMINGW:STRING=TRUE
>     > >         -DMSYS:STRING=TRUE -DCYGWIN:STRING=TRUE
>     > >         -DOPENGL_INCLUDE_DIR=${env.MINGW64_ROOT}\\include",
>     > >     configurations.buildCommandArgs - remove the "-v" that VS puts
>     > >     there, it just prints version
>     > >         for make. I put "-j6" instead to speed up the build.
>     > >     configurations.intelliSenseMode - VS should auto fill this to
>     > >     "linux-gcc-x64"
>     > >
>     > >     Remaining configs can be left default, or you can tweak them
>     to your
>     > >     taste.
>     > >
>     > >     After you save the CMakeSettings.json VS will automatically
>     > >     regenerate CMake cache.
>     > >     Go to CMake menu and you can build all targets or specific
>     ones from
>     > >     there.
>     > >     In my case intellisense only picked up cache after I did
>     full build,
>     > >     so maybe it is required
>     > >     to do at least once.
>     > >
>     > >     But result is so worth it:
>     > >
>     > >     intellisense.png
>     > >
>     > >     Hope this helps!
>     > >
>     > >     Regards,
>     > >     Andrew
>     > >     _______________________________________________
>     > >     Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     > >     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     > >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     > >     Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     > >     More help   : https://help.launchpad.net/ListHelp
>     > >
>     > >
>     > >
>     > > --
>     > > Mark
>     > >
>     > > _______________________________________________
>     > > Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     > > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     > > Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     > > More help   : https://help.launchpad.net/ListHelp
>     > >
>     >
>     > _______________________________________________
>     > Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     > Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     > More help   : https://help.launchpad.net/ListHelp
> 
>     _______________________________________________
>     Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     More help   : https://help.launchpad.net/ListHelp
> 


References