mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-11 06:34:36 +00:00
Tools directory for ticket #1
This commit is contained in:
parent
ecfd936095
commit
8337cad7ee
207 changed files with 25761 additions and 0 deletions
267
Tools/projectGenerator/classes/Torque3D.php
Normal file
267
Tools/projectGenerator/classes/Torque3D.php
Normal file
|
|
@ -0,0 +1,267 @@
|
|||
<?php
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// This class wraps up some project generator specific stuff for the Torque 3D project itself
|
||||
// simplifying the per project setup, while still allowing the engine to have modules plugged in
|
||||
|
||||
class Torque3D
|
||||
{
|
||||
static $sharedConfig = true;
|
||||
static $projectName = "";
|
||||
|
||||
static function includeDefaultLibs()
|
||||
{
|
||||
// Libs
|
||||
includeLib( 'mng' );
|
||||
includeLib( 'png' );
|
||||
includeLib( 'ungif' );
|
||||
includeLib( 'zlib' );
|
||||
includeLib( 'jpeg' );
|
||||
includeLib( 'tinyxml' );
|
||||
includeLib( 'opcode' );
|
||||
includeLib( 'squish' );
|
||||
includeLib( 'collada_dom' );
|
||||
includeLib( 'pcre' );
|
||||
includeLib( 'convexDecomp' );
|
||||
|
||||
// Use FMOD on consoles
|
||||
if ( Generator::$platform != "360" && Generator::$platform != "ps3" )
|
||||
{
|
||||
includeLib( 'libvorbis' );
|
||||
includeLib( 'libogg' );
|
||||
includeLib( 'libtheora' );
|
||||
}
|
||||
}
|
||||
|
||||
static function beginConfig( $platform, $projectName )
|
||||
{
|
||||
|
||||
setPlatform( $platform );
|
||||
|
||||
beginProject( $projectName, self::$sharedConfig );
|
||||
|
||||
self::includeDefaultLibs();
|
||||
|
||||
$ext = "DLL";
|
||||
if ( Generator::$platform == "mac" )
|
||||
$ext = "Bundle";
|
||||
|
||||
|
||||
//some platforms will not want a shared config
|
||||
if ( Generator::$platform == "360" || Generator::$platform == "ps3" )
|
||||
self::$sharedConfig = false;
|
||||
|
||||
//begin either a shared lib config, or a static app config
|
||||
if ( self::$sharedConfig )
|
||||
beginSharedLibConfig( getGameProjectName().' '.$ext, '{C0FCDFF9-E125-412E-87BC-2D89DB971CAB}', 'game', getGameProjectName() );
|
||||
else
|
||||
beginAppConfig( getGameProjectName(), '{C0FCDFF9-E125-412E-87BC-2D89DB971CAB}', 'game', getGameProjectName() );
|
||||
|
||||
/// Prefs
|
||||
addProjectDefine( 'TORQUE_SHADERGEN' );
|
||||
addProjectDefine( 'TORQUE_UNICODE' );
|
||||
|
||||
if ( self::$sharedConfig )
|
||||
addProjectDefine( 'TORQUE_SHARED' );
|
||||
|
||||
/// For OPCODE
|
||||
addProjectDefine( 'BAN_OPCODE_AUTOLINK' );
|
||||
addProjectDefine( 'ICE_NO_DLL' );
|
||||
addProjectDefine( 'TORQUE_OPCODE' );
|
||||
|
||||
// For libTomCrypt
|
||||
addProjectDefine( 'LTC_NO_PROTOTYPES' );
|
||||
|
||||
// Additional includes
|
||||
addIncludePath( "../../game/shaders" );
|
||||
|
||||
addLibIncludePath( "lmng" );
|
||||
addLibIncludePath( "lpng" );
|
||||
addLibIncludePath( "ljpeg" );
|
||||
addLibIncludePath( "lungif" );
|
||||
addLibIncludePath( "zlib" );
|
||||
addLibIncludePath( "tinyxml" );
|
||||
addLibIncludePath( "opcode" );
|
||||
addLibIncludePath( "squish" );
|
||||
addLibIncludePath( 'convexDecomp' );
|
||||
|
||||
if ( Generator::$platform != "360" && Generator::$platform != "ps3" )
|
||||
{
|
||||
addLibIncludePath( "libvorbis/include" );
|
||||
addLibIncludePath( "libogg/include" );
|
||||
addLibIncludePath( "libtheora/include" );
|
||||
}
|
||||
|
||||
// Modules
|
||||
includeModule( 'core' );
|
||||
includeModule( 'dsound' );
|
||||
//includeModule( 'fmod'); // FMOD support removed until made as a 3rd party library
|
||||
includeModule( 'T3D' );
|
||||
includeModule( 'advancedLighting' );
|
||||
includeModule( 'basicLighting' );
|
||||
includeModule( 'collada' );
|
||||
|
||||
if ( Generator::$platform != "360" && Generator::$platform != "ps3" )
|
||||
{
|
||||
includeModule( 'vorbis' );
|
||||
includeModule( 'theora' );
|
||||
}
|
||||
|
||||
if(Generator::$platform == "mac" || Generator::$platform == "win32")
|
||||
includeModule( 'openal' );
|
||||
|
||||
|
||||
// Dependencies
|
||||
|
||||
addProjectDependency( 'lmng' );
|
||||
addProjectDependency( 'lpng' );
|
||||
addProjectDependency( 'lungif' );
|
||||
addProjectDependency( 'ljpeg' );
|
||||
addProjectDependency( 'zlib' );
|
||||
addProjectDependency( 'tinyxml' );
|
||||
addProjectDependency( 'opcode' );
|
||||
addProjectDependency( 'squish' );
|
||||
addProjectDependency( 'collada_dom' );
|
||||
addProjectDependency( 'pcre' );
|
||||
addProjectDependency( 'convexDecomp' );
|
||||
|
||||
if ( Generator::$platform != "360" && Generator::$platform != "ps3" )
|
||||
{
|
||||
addProjectDependency( 'libvorbis' );
|
||||
addProjectDependency( 'libogg' );
|
||||
addProjectDependency( 'libtheora' );
|
||||
}
|
||||
|
||||
if ( Generator::$platform == "mac" )
|
||||
{
|
||||
addProjectDefine( '__MACOSX__' );
|
||||
addProjectDefine( 'LTM_DESC' );
|
||||
}
|
||||
|
||||
if (Generator::$platform == "win32")
|
||||
{
|
||||
setProjectModuleDefinitionFile('../../' . getLibSrcDir() . 'Torque3D/msvc/torque3d.def');
|
||||
|
||||
addProjectDefine( 'UNICODE' );
|
||||
addProjectDefine( 'INITGUID' );
|
||||
addProjectDefine( '_CRT_SECURE_NO_DEPRECATE' );
|
||||
|
||||
|
||||
addProjectLibInput('COMCTL32.LIB');
|
||||
addProjectLibInput('COMDLG32.LIB');
|
||||
addProjectLibInput('USER32.LIB');
|
||||
addProjectLibInput('ADVAPI32.LIB');
|
||||
addProjectLibInput('GDI32.LIB');
|
||||
addProjectLibInput('WINMM.LIB');
|
||||
addProjectLibInput('WSOCK32.LIB');
|
||||
addProjectLibInput('vfw32.lib');
|
||||
addProjectLibInput('Imm32.lib');
|
||||
addProjectLibInput('d3d9.lib');
|
||||
addProjectLibInput('d3dx9.lib');
|
||||
addProjectLibInput('DxErr.lib');
|
||||
addProjectLibInput('ole32.lib');
|
||||
addProjectLibInput('shell32.lib');
|
||||
addProjectLibInput('oleaut32.lib');
|
||||
addProjectLibInput('version.lib');
|
||||
}
|
||||
|
||||
// Include project specific sources in the project/buildFiles/config/projectCode.conf
|
||||
$projectCode = realpath($argv[1])."/buildFiles/config/projectCode.conf";
|
||||
echo( "\n - Loading project code configuration from ".$projectCode."\n");
|
||||
include $projectCode;
|
||||
}
|
||||
|
||||
static function endConfig()
|
||||
{
|
||||
//end shared/static config
|
||||
if ( self::$sharedConfig )
|
||||
endSharedLibConfig();
|
||||
else
|
||||
endAppConfig();
|
||||
|
||||
//add the shared application only if this is a shared config
|
||||
if ( self::$sharedConfig )
|
||||
{
|
||||
/////// Application Config
|
||||
beginSharedAppConfig( getGameProjectName(), '{CDECDFF9-E125-523F-87BC-2D89DB971CAB}' );
|
||||
|
||||
addProjectDefine( 'TORQUE_SHARED' );
|
||||
|
||||
addEngineSrcDir( 'main' );
|
||||
|
||||
if (Generator::$platform == "win32")
|
||||
{
|
||||
addProjectDefine( 'WIN32' );
|
||||
addProjectDependency( getGameProjectName() . ' DLL' );
|
||||
}
|
||||
|
||||
if (Generator::$platform == "mac")
|
||||
{
|
||||
addProjectDefine( '__MACOSX__' );
|
||||
addProjectDependency( getGameProjectName() . ' Bundle' );
|
||||
addProjectDependency( getGameProjectName() . ' Plugin' );
|
||||
}
|
||||
|
||||
endSharedAppConfig();
|
||||
}
|
||||
|
||||
// Add solution references for Visual Studio projects
|
||||
if (Generator::$platform == "win32" || Generator::$platform == "360" || Generator::$platform == "ps3")
|
||||
{
|
||||
if ( !self::$sharedConfig )
|
||||
beginSolutionConfig( getGameProjectName(), '{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}' );
|
||||
|
||||
addSolutionProjectRef( getGameProjectName() );
|
||||
if ( self::$sharedConfig )
|
||||
addSolutionProjectRef( getGameProjectName() . ' DLL' );
|
||||
|
||||
addSolutionProjectRef( 'collada_dom' );
|
||||
addSolutionProjectRef( 'ljpeg' );
|
||||
addSolutionProjectRef( 'lmng' );
|
||||
addSolutionProjectRef( 'lpng' );
|
||||
addSolutionProjectRef( 'lungif' );
|
||||
addSolutionProjectRef( 'opcode' );
|
||||
addSolutionProjectRef( 'pcre' );
|
||||
addSolutionProjectRef( 'squish' );
|
||||
addSolutionProjectRef( 'tinyxml' );
|
||||
addSolutionProjectRef( 'zlib' );
|
||||
addSolutionProjectRef( 'convexDecomp' );
|
||||
|
||||
if (Generator::$platform == "win32")
|
||||
{
|
||||
addSolutionProjectRef( 'libogg' );
|
||||
addSolutionProjectRef( 'libvorbis' );
|
||||
addSolutionProjectRef( 'libtheora' );
|
||||
}
|
||||
|
||||
if ( !self::$sharedConfig )
|
||||
endSolutionConfig();
|
||||
}
|
||||
|
||||
endProject(self::$sharedConfig);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue