Game Development Community

TeamCity + CMake, anyone got it building?

by Joshua Leeming · in Torque 3D Professional · 12/05/2014 (2:32 pm) · 6 replies

I am new to CMake so am looking for a bit of a sanity check.

My goal is to setup TeamCity and a CMake build runner to configure and build t3d-bones template. Essentially I am going to grab the build artifacts and include them in my own .NET project (via nuget)

My configure build step is passing:

-DTORQUE_APP_NAME:STRING=Stock -DTORQUE_TEMPLATE:STRING=T3dBones

And the configuration looks to be correct. If I open up CMake gui I get pretty much exactly as described in this link

My build step however is hanging... build target is INSTALL and configuration is Release. I am using INSTALL because I want to have every script etc copied to My Pojects/Stock directory.

Can anyone point my in a direction of where to look? My next step is to run CMake on the generated config from the command line and make sure that is working

Edit:

Example config/instructions for setting up TeamCity + CMake can be found HERE

TeamCity is also handy for setting up local NuGet feeds for folks dabbling with .NET

#1
12/05/2014 (2:36 pm)
Btw this is a relatively useful article on setting up TeamCity for anyone who might be looking at CI or CD www.mehdi-khalili.com/continuous-integration-delivery-github-teamcity]linky
#2
12/05/2014 (3:29 pm)
Cannot open include file: 'd3dx9.h'

*facepalm*

#3
02/21/2015 (4:23 am)
updated with link to example config of Torque3D development branch with T3DBones template
#4
02/21/2015 (9:01 am)
Always build by hand first, then make a script and use that, then once that all works have TeamCity call your build script. Bonus points if you configure a VM to pick up build scripts on boot, then build, then shut down automatically and set up a TeamCity on the host to run your VMs (now you're able to set up various flavors of Windows and Linux builds to run using the same agent).

Extra bonus - set up a Xen Server and do all that shit....
#5
02/22/2015 (4:02 am)
Good point Richard. I might have to do a follow up howto for toque with docker/vagrant build runners as well as I still need to set up CI to test my own engine changes cross platform.

In this instance my use case was simply to pull down various community member's branches to do quick tests on my own template project, and adding config items is kinda a bit easier.
#6
02/23/2015 (6:04 am)
Well then, you just need smarter scripts! Bash is very nice, especially compared to DOS batch scripts, but I use Lua most of the time. I just like Lua - you could use Python or Perl or whatever as long as it's cross-platform. There is nothing worse than having a system in LanguageA on one system, LanguageB on another, and LanguageC on the third, all performing the same basic task. A maintenance nightmare - I know this first-hand, it's how the system ended up looking at work (10 years of aggregated batch, Bash, C# Windows command line utilities, Python, some *nix utilities under Windows, just a Frankenstein meets Rube Goldberg collection of stuff).