Razish / japp

JA++ server and client modification for Jedi Academy
GNU General Public License v2.0
44 stars 30 forks source link

Create standalone msvc (2013/2015) project #348

Closed Exmirai closed 7 years ago

Razish commented 9 years ago

Why standalone? You can still use MSVC as your IDE but use either gcc or MSVC as your compiler. Compiler choice is up to SCons. Why maintain two (or more) separate project files?

Exmirai commented 9 years ago

if you can setup msvc to use gcc||msvc then...

ensiform commented 9 years ago

Proper preprocessor intellisense would be nice regardless of how you "feel" about it. Its pain in the ass when it shows 90% of the project as not valid.

Razish commented 9 years ago

MSVC's approach to intellisense has always derped out when a file is included in multiple projects. You can hint which tokens are defined but it will won't behave great. A ctags/contextual completion engine used by most IDEs works great.

MSVC's build environment is a much bigger pain in the pass, especially moving on to 64 bit.

ensiform commented 9 years ago

Uhm, there's a pulldown that helps with that. Still you've made it worse by not even allowing that to work.

Razish commented 9 years ago

I haven't changed the behavior of the IDE at all. My recent changes only involve gcc being the default toolset. All the IDE knows is to invoke SCons as the build command.

My working copy has better support for building with MSVC's toolset, but the ugliness of the MSVC build environment is getting in the way WRT 32/64 bit. We also have to sort out library compatibility.

gcc will still be the default toolset - it's easier to obtain and run (also much smaller) and I want my upcoming Windows builder to produce 32 and 64 bit binaries with ease. I also don't want to have to maintain two separate configurations of compiler switches. Again, this has nothing to do with using MSVC as the IDE, only the toolset (compiler, librarian, linker, assembler) In my WC, MSVC's toolset can be selected by passing tools=default to SCons. If no tools argument is provided, it will default to gcc, g++, ar, as, gnulink from %PATH%. Furthermore, these toolset changes allow me to easily swap out for Clang/LLVM and ICC (which I now have) - and these are almost entirely compatible with gcc's switches.

there's a pulldown that helps with that.

Yeah.

You can hint which tokens are defined but it will won't behave great.

ensiform commented 9 years ago

Yes I got that part, its stupid as all hell and you have to keep changing it.

Razish commented 8 years ago

Related: Upcoming VS version allows adding a folder to project, rather than adding each file separately

Exmirai commented 7 years ago

Closed due to 9f1ad9b7566d5cc0bb676406ff02a6e0d951cb96.