123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- <?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 ( T3D_Generator::$platform != "360" && T3D_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 ( T3D_Generator::$platform == "mac" )
- $ext = "Bundle";
-
- //some platforms will not want a shared config
- if ( T3D_Generator::$platform == "360" || T3D_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 ( T3D_Generator::$platform != "360" && T3D_Generator::$platform != "ps3" )
- {
- addLibIncludePath( "libvorbis/include" );
- addLibIncludePath( "libogg/include" );
- addLibIncludePath( "libtheora/include" );
- }
-
- // Modules
- includeModule( 'core' );
- includeModule( 'dsound' );
- includeModule( 'fmod');
- includeModule( 'T3D' );
- includeModule( 'advancedLighting' );
- includeModule( 'basicLighting' );
- includeModule( 'collada' );
-
- if ( T3D_Generator::$platform != "360" && T3D_Generator::$platform != "ps3" )
- {
- includeModule( 'vorbis' );
- includeModule( 'theora' );
- }
-
- if(T3D_Generator::$platform == "mac" || T3D_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 ( T3D_Generator::$platform != "360" && T3D_Generator::$platform != "ps3" )
- {
- addProjectDependency( 'libvorbis' );
- addProjectDependency( 'libogg' );
- addProjectDependency( 'libtheora' );
- }
-
- if ( T3D_Generator::$platform == "mac" )
- {
- addProjectDefine( '__MACOSX__' );
- addProjectDefine( 'LTM_DESC' );
- }
- if (T3D_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('WS2_32.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 (T3D_Generator::$platform == "win32")
- {
- addProjectDefine( 'WIN32' );
- addProjectDependency( getGameProjectName() . ' DLL' );
- }
- if (T3D_Generator::$platform == "mac")
- {
- addProjectDefine( '__MACOSX__' );
- addProjectDependency( getGameProjectName() . ' Bundle' );
- addProjectDependency( getGameProjectName() . ' Plugin' );
- }
- endSharedAppConfig();
- }
-
- // Add solution references for Visual Studio projects
- if (T3D_Generator::$platform == "win32" || T3D_Generator::$platform == "360" || T3D_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 (T3D_Generator::$platform == "win32")
- {
- addSolutionProjectRef( 'libogg' );
- addSolutionProjectRef( 'libvorbis' );
- addSolutionProjectRef( 'libtheora' );
- }
-
- if ( !self::$sharedConfig )
- endSolutionConfig();
- }
-
- endProject(self::$sharedConfig);
-
- }
-
- }
- ?>
|