4 ms·
I'm curious is it using MSBuild as the build system on a Linux machine, or does it integrate with existing makefile, CMake, autotools, etc. style projects? It
by tdicola 11y ago
I'm curious is it using MSBuild as the build system on a Linux machine, or does it integrate with existing makefile, CMake, autotools, etc. style projects? It seems like a total nonstarter to expect Linux developers to switch to MSBuild.
- giancarlostoro 11y agoI think it builds it on the system since they have you install g++ and gdb probably for debugging. That's the impression I get, not entirely sure though. So it probably transfers your code via SSH and then runs it.
- tdicola 11y agoIt's not super clear but I think that step is actually installing g++, etc. on the Linux host (and in reality they probably mean you should apt-get install build-essential and not just g++, gdb, etc. individually). It's having you install openssh-server which wouldn't really make sense on the client/development PC. Also for ARM you'd need a gcc cross compiler installed and I didn't see any mention of that.
- iontodirel 11y agothe ssh server is indeed for the remote machine/Linux only, we are working on a prerequisites check with possible automatic acquisition of those tools on Linux if you do not have them installed; ARM on x86 or x64 and x86 on x64 it's not a sscenario we currently support, but x86 on x64 would be the first thing we look at
- robotdad 11y agoThe dependencies mentioned are for the remote Linux machine you connect to from VS. We use ssh from within VS to copy files across and issue the compilation commands with gcc. There isn't any cross compilation right now even for ARM. Most of our testing here has been on Raspberry Pis.
- giancarlostoro 11y agoI meant exactly what you said, they install the compiler and tool set on the Linux host, the Windows end just SSH's into it and sends the code / commands. That is my speculation at least.
- robotdad 11y agoThat's it exactly
- deleted 11y ago[deleted]
- tomyws 11y agoIt wasn't clear to me either. Unfortunately, the extension seems to have a dependency on the Android NDK which I don't plan to install: Today we do have a dependency on the Android Tools for Visual Studio
- tdicola 11y agoOh weird, huh this must be more fallout from the canceling of Astoria that they're spinning off into a standalone thing.
- robotdad 11y agoThe NDK dependency is actually to get the MIEngine that provides the machine interface to hook up GDB with the VS debugger. We're looking at making the MIEngine a separate component so the Android, iOS and Linux tools don't have a dependency on each other.
- voltagex_ 11y agoHad to boot Linux to expand my NTFS partition to have enough space to install it all - hoping it's something for Update 3 or before.
- robotdad 11y agoWe are using msbuild to drive running the compile on the remote Linux machine. Today that is being emitted as straight commands for gcc on Linux. We're interested in what we should do around make, cmake, etc. This is just a start.
- zaphar 11y agoPlease tell me that msbuild has a replacement in the wings? Something capable of hermetic reproducible builds. PLEASE???
- apaprocki 11y agoI'd highly recommend contributing back "build features" to projects like cmake if it doesn't already exist so that you can simply enable a feature rather than hard-coding gcc-specific flags. Even something like clang takes a little work to shoehorn into a project that is enabling many gcc specific features. Abstracting the feature out means compiler front-ends don't have to mimic gcc to have a chance of working, and even allows more easily adapting to other POSIX platforms where gcc/clang are not the default compilers. E.g. if cmake doesn't support a robust enough way to specify LTO the way you need to in a project, consider helping add it. (Just picked some random feature)
- robotdad 11y agoGood point, if needed I'm sure we will.