Game Development Community

VS .NET

by Ron Yacketta · in Torque Game Engine · 06/28/2002 (1:54 pm) · 14 replies

I have scoured the forums, but yet to find a resolution.
I notice several issues when trying to compile TGE with the latest greatest (patched) VS .NET

Has any compiled TGE with VS .NET cleanly? fixed know errors etc? if so, could you post some info regarding it
to prevent the reinvent of the wheel syndrom?

Regards,
Ron

#1
06/28/2002 (3:18 pm)
The only issue I know about is the bug posted in the Torque project.
#2
06/28/2002 (6:17 pm)
Tim,

Would GG be open to accept a VS .NET project for addition to the CVS? as well as the required changes to the code?

-Ron
#3
06/28/2002 (8:32 pm)
I think we'd rather not, if we can get the VC6 project to load and run cleanly. The problem is that we already have VC6, CodeWarrior (Mac & PC), Mac PB and the makefiles to maintain. Anytime a file is added, removed, renamed or otherwise moved around, all the projects need to be update and tested... it's a real pain in the butt.
#4
06/29/2002 (6:40 am)
No prob :)
#5
06/29/2002 (9:19 am)
Ron, what we'd really like is a tool that takes a makefile as it's input (or XML file, basically something that describes the project) and produces the makefile, VC6, VC7, CW, and Mac PB, files automatically. This way we'd only have to maintain the one file, the rest would be generated. Adding a new platforms would mean writing a new "exporter" for that system/compiler combination. We've talked about doing this for a while, but just don't have the time :(
#6
06/29/2002 (10:31 am)
Tim,

Maybe something like ClanLib does?

they dynamicly generate the VS 6 workspace (.dsp and .dsw) during product install.

Only issue would be getting the different formats for each compiler.

-Ron
#7
06/29/2002 (1:13 pm)
I think a XSLT stylesheet (one for VS6, one for CW,..) applied on a XML input file would do the job. Only thing we need is a XSLT processor like Xalan. Maybe I could help for VS6.

Alex
#8
06/29/2002 (6:03 pm)
good

I have no clue wtf you speaking of ;) XSLT? barely know what XML is *snicker*

Time to whip out the cc and get me some books :)

-Ron
#9
06/29/2002 (9:44 pm)
Their is already a platform independant build tool that Java developers have been using for a while. It is called ant.
And it can build any kind of software project with the EXACT same build.xml file regardless of platform.

I have heard of C/C++ project using it.

I use it on every project, the larger the project the better it works!
#10
06/29/2002 (10:13 pm)
The XML->XSLT option would work, at least for the text based project files. I think the codewarrior files are binary. You could still sorta use XSLT for binary, but its designed for creating text output.

Another option is to use a templating engine...this would probably be less work than an xslt solution. Basically you would define a skeleton file that serves as the template for a particular project file. You would also define the file list, then run it and the template through the engine to create the completed project file.

My personal favorite template engine is www.cheetahtemplate.org/

As far as ant goes, I don't think it has good support for c++, which is too bad since I'd like to try using it with torque. However, it really wouldn't solve the problem of maintaining the same list of files in multiple formats. And I think forcing the IDEs to use it to build would be a step backwards.
#11
06/30/2002 (5:36 am)
I didn't know that CW project files are binary format. Yes, XSLT does only text output.

Alex
#12
06/30/2002 (8:20 am)
Ant isn't really what were looking for. We don't want something that will run on multiple platforms, but a tool that will generated the project files needed by each platform.

Some sort of template or filtering such as XSLT or cheetah are more along the lines of what we're looking for, except that it would have to output binary data.

I think CW is the only binary one, but maybe there's some other text format the CW will import cleanly which we could use? Not having to produce a binay project would simplify things :)
#13
06/30/2002 (9:38 am)
Anyone willing to pick this up and toss it on their plates?

I would offer to step up, but have no exp with ant/xml/xslt; which could cause a serious problem completing the project in a timely manor.

I would be willing to work with others in a learning mode to help knock this out and off of GG's plate.

-Ron
#14
06/30/2002 (11:52 am)
It is pretty easy and typical to discount Ant as a Java build tool only, at first glance. But . . .

Actually ANT is not just a build tool, it is an extensible processing tool also since all the "tasks" can be created in Java to do what ever you want, including writing out binary format files. I have ported countless shell scripts to ant for doing batch loading of data and other automated tasks that have lots of dependancies.

It comes with build in tasks to .exec() other external programs also but this is not encouraged for obvious reasons, it is much better to write a custom task.

Just because it was written in Java and is _mainly_ used to build Java projects does not mean it should be discounted as a "Java build tool".

It is also object oriented in that someone could write a "task" for each of the proprietary project formats, by usings its ability it easily iterate the source code tree.

Common "tasks" are

get from cvs
generate documentation /audits / metrics
do conditional compiles / builds
email results / problems
tag the build in cvs based on success or failure
compress the built files
ftp the compressed files somewhere

all the ant xml file does is call these "tasks" and define dependancies on these tasks using a depends task.

writing a custom task is not that hard and it would
just another target in the build.xml file to generate
the project files for each of the ide's.

since each "task" has dependancies all this is very easy to maintain.

I recommend ANYONE doing any batch processing to look at it as an infrastructure for managing the automation of tasks.

I have seen custom tasks on the internet for doing c/c++ builds to replace clunky make files, then with the rpm task create distributions for linux. So I know I am not the only person using in on non-Java projects.

there is specific support for c/c++ with this
Ant-Contrib project on SF

here is one example I found very quickly Visual C++ w/Ant

I found a doxygen task for ant

I am planning on integrating CruiseControl into my next project, all my projects are pretty big and require this kind of automation to function with the limited number of people on the teams I typically work with.

The main problem is "make" people don't like it because it is not "make" it is a completely different declaritive way of specifing a process instead of a literal way. Much better once you get your head around the idea.

I worked with Jesse Tilly one of the authors of the Orielly book Ant the Definative Guide and he taught me to see the light a couple of years ago when he had just discovered it also :)