Which version of VisualStudio to use?

First : Congratulation for this very promising tool.

Question: which version of Visual Studio to use ? Express is ok ?

I tried express 2013, in cocosIde: build win32 runtime: and got (CocosIde console panel)
running: ‘“C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv” “F:\ledevhtml\cocos_ide_projects\CocosJSGame1\frameworks\runtime-src\proj.win32\CocosJSGame1.sln” /Upgrade’

Error running command, return code: 1

I looked into VStudio install folder and there is no devenv exe.

Thanks in advance

Should be totally OK,

devenv.exe is only part of the VC versions.
In the express 2013 it should be WDExpress.exe. Just rename it to devenv.exe or change it to the correct executable in Cocos Code IDE, if it has support for that.

K cool thx for the idea of renaming.

Meanwhile I tested various version, and yes for now CocosIDE wants Visual Studio not express.
(Also I noted that having installed several versions of Visual Studio that CocosIDE got lost in finding the version it needs. Looks like the way it checks in the windows registry is not super safe and probably stops at the first versions found if it is not the right one.)

Will try the renaming trick with an express and report back.

Nick

That’s pretty bad, if Cocos Code IDE does not rely on a path variable but the registry.
As long as nobody explains to me, why it should need VS instead of Express, I can’t see a forcing factor to rely on it.

You could always use some of the VS trial versions.

Forcing to use a compiler is never a good idea. gcc/clang is used on OS X/iOS and Android. So why forcing VS 2012 on Windows instead of having the option to use gcc/clang? Beats me :wink:

There was someone that was working on Mingw instead of VS. http://www.cocos2d-x.org/wiki/User_Tutorial-mingw32_and_QtCreator_on_Windows

Cool, thanks. Do you know about the status of CMake regarding cocos2d-x? The project is on hiatus since two years now.

I want to utilize CMake in combination with ninja to compile, build, test, package and publish the game for multiple platforms. Just like a cocos console which plays all things.

If no one works on it any more, I will look into it myself if I have the time.

I know CMake works on Linux. I assume that it does on the other platforms as well. I guess I should check that out. I’ve never tried it on anything other than Linux.

Yeah, but the interesting thing would be, how far the scripts are developed?
Do they just support compiling or also building combined with ninja, regression tests and so on.
The things I mentioned.

It seems that the developers are not that interested in using CMake and ninja :smile:

We will try to use CMake for cocos2d-x if it can work for all platforms.
Now we just use it for linux.
We will continue to use CMake for more platforms.

I am not familiar with ninja. But i think we should choose just one.

That’s great to hear.

Ninja is like an assembler. It can be seen as a replacement for make. It takes input from a higher level build system like CMake.
Criticism may could be made to the fact, that it is written in python, so you have to add another software package to your system.

If you are interest, you can take a look here: http://martine.github.io/ninja/

Just what Cocos2d-x needs … another dependency and more complex tools that are difficult/impossible to edit by hand.

Riiiiiiiiight?

1 Like

Yeah, but on the other hand cocos2d-x is using python itself for the android build scripts and cocos console.

CMake and Ninja is pretty easy and uncomplicated to edit by hand. They also come with GUI frontends.

I was just quoting the page from Ninja

"Ninja build files are human-readable but not especially convenient to write by hand. "

I was more referring to CMake regarding hand editing.
Editing Ninja files by hand is just subjective. Some users like the Autotools, some are shrieking about it. Nevertheless they form a great build system.

Anyway. Ninja is like an assembler, an alternative to make. Ninja is fed with the output of CMake, so you have to touch the Ninja build files very rarely. In fact you only have to touch them, if you are integrating it into some meta-buildsystem(like the Ninja generator for CMake).

But speaking about another dependency and tools or whatnot. When it comes to Android, it takes the crown for “just another buildtool”. As you might be aware, they introduced Gradle to replace the build tools inside ADT and Ant.
It can also be used for C/C++ builds, but the heart of Gradle is based on Groovey. Another dependency.

No matter, which build system cocos2d-x will utilize in the future, all of them will introduce another dependency. More or less, so to speak.

I just want to make sure I understand. You are saying that with CMake and Ninja, this replaces make?

I think that I could try it and see how it works together.

Ninja itself replaces make.

CMake is just a meta-build system, which can generate the makefiles for different build systems. One of it is the Ninja generator.

E.g. I’m using CMake to generate MSYS/MinGW makefiles for building cocos2d-x with gcc/clang on Windows.

The Ninja generator is experimental in it’s current version.

From the CMake help:
Ninja = Generates build.ninja files (experimental).

I’m sorry for bumping an ancient thread but … did someone finally tried Ninja with cocos2d-x ? :smile:

i really want to bring some build-accelerator to my toolchain. Precompiled headers are not enough :stuck_out_tongue: , recompiling the engine code is sloooooooooow

maybe @martell could help here?

Back to answer the original question – the best version of Visual Studio at this time is …

Visual Studio 2015 Community Edition