diff --git a/Engine/lib/convexDecomp/NvRemoveTjunctions.cpp b/Engine/lib/convexDecomp/NvRemoveTjunctions.cpp index 67ecd287c..f9ac21ce8 100644 --- a/Engine/lib/convexDecomp/NvRemoveTjunctions.cpp +++ b/Engine/lib/convexDecomp/NvRemoveTjunctions.cpp @@ -67,6 +67,9 @@ NvRemoveTjunctions.cpp : A code snippet to remove tjunctions from a triangle mes #include "NvHashMap.h" #include "NvRemoveTjunctions.h" #include "NvFloatMath.h" +#ifdef LINUX + #include +#endif #pragma warning(disable:4189) diff --git a/Engine/source/T3D/physics/bullet/btWorld.cpp b/Engine/source/T3D/physics/bullet/btWorld.cpp index 3ca43d793..9ef5d8a50 100644 --- a/Engine/source/T3D/physics/bullet/btWorld.cpp +++ b/Engine/source/T3D/physics/bullet/btWorld.cpp @@ -33,7 +33,11 @@ #include "console/consoleTypes.h" #include "scene/sceneRenderState.h" #include "T3D/gameBase/gameProcess.h" - +#ifdef _WIN32 +#include "BulletMultiThreaded/Win32ThreadSupport.h" +#elif defined (USE_PTHREADS) +#include "BulletMultiThreaded/PosixThreadSupport.h" +#endif BtWorld::BtWorld() : mProcessList( NULL ), diff --git a/Engine/source/console/dynamicTypes.h b/Engine/source/console/dynamicTypes.h index f03beead2..a10ab0def 100644 --- a/Engine/source/console/dynamicTypes.h +++ b/Engine/source/console/dynamicTypes.h @@ -252,7 +252,7 @@ const EngineTypeInfo* _MAPTYPE() { return TYPE< T >(); } extern S32 type; \ extern const char* castConsoleTypeToString( _ConsoleConstType< nativeType >::ConstType &arg ); \ extern bool castConsoleTypeFromString( nativeType &arg, const char *str ); \ - template<> extern S32 TYPEID< nativeType >(); + template<> S32 TYPEID< nativeType >(); #define DefineUnmappedConsoleType( type, nativeType ) \ DefineConsoleType( type, nativeType ) \ diff --git a/Engine/source/console/engineTypes.h b/Engine/source/console/engineTypes.h index 397d67c16..208a16322 100644 --- a/Engine/source/console/engineTypes.h +++ b/Engine/source/console/engineTypes.h @@ -416,7 +416,7 @@ namespace _Private { #define _DECLARE_TYPE( type ) \ - template<> extern const EngineTypeInfo* TYPE< type >(); \ + template<> const EngineTypeInfo* TYPE< type >(); \ template<> struct _SCOPE< type > { \ EngineExportScope& operator()() const { \ return *reinterpret_cast< EngineExportScope* >( \ diff --git a/Engine/source/gui/controls/guiTreeViewCtrl.cpp b/Engine/source/gui/controls/guiTreeViewCtrl.cpp index 4bd98b640..5e71b7188 100644 --- a/Engine/source/gui/controls/guiTreeViewCtrl.cpp +++ b/Engine/source/gui/controls/guiTreeViewCtrl.cpp @@ -33,7 +33,9 @@ #include "platform/event.h" #include "gfx/gfxDrawUtil.h" #include "gui/controls/guiTextEditCtrl.h" -#include "gui/editor/editorFunctions.h" +#ifdef TORQUE_TOOLS + #include "gui/editor/editorFunctions.h" +#endif #include "console/engineAPI.h" @@ -4042,7 +4044,10 @@ void GuiTreeViewCtrl::onRenderCell(Point2I offset, Point2I cell, bool, bool ) // If this item is a VirtualParent we can use the generic SimGroup123 icons. // However if there is already an icon in the EditorIconRegistry for this // exact class (not counting parent class icons) we want to use that instead. - bool hasClassIcon = gEditorIcons.hasIconNoRecurse( pObject ); + bool hasClassIcon = false; +#ifdef TORQUE_TOOLS + hasClassIcon = gEditorIcons.hasIconNoRecurse( pObject ); +#endif // draw the icon associated with the item if ( !hasClassIcon && item->mState.test(Item::VirtualParent)) @@ -5280,7 +5285,10 @@ void GuiTreeViewCtrl::onRenameValidate() if ( mRenameInternal ) obj->setInternalName( data ); - else if ( validateObjectName( data, obj ) ) + else +#ifdef TORQUE_TOOLS + if ( validateObjectName( data, obj ) ) +#endif obj->assignName( data ); } diff --git a/Engine/source/lighting/advanced/advancedLightingFeatures.cpp b/Engine/source/lighting/advanced/advancedLightingFeatures.cpp index 159eb113a..fb61494b5 100644 --- a/Engine/source/lighting/advanced/advancedLightingFeatures.cpp +++ b/Engine/source/lighting/advanced/advancedLightingFeatures.cpp @@ -31,7 +31,7 @@ #include "gfx/gfxDevice.h" #include "core/util/safeDelete.h" -#ifndef TORQUE_OS_MAC +#if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX ) # include "lighting/advanced/hlsl/gBufferConditionerHLSL.h" # include "lighting/advanced/hlsl/advancedLightingFeaturesHLSL.h" #else @@ -54,7 +54,7 @@ void AdvancedLightingFeatures::registerFeatures( const GFXFormat &prepassTargetF if(GFX->getAdapterType() == OpenGL) { -#ifdef TORQUE_OS_MAC +#if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX ) cond = new GBufferConditionerGLSL( prepassTargetFormat ); FEATUREMGR->registerFeature(MFT_PrePassConditioner, cond); FEATUREMGR->registerFeature(MFT_RTLighting, new DeferredRTLightingFeatGLSL()); @@ -66,7 +66,7 @@ void AdvancedLightingFeatures::registerFeatures( const GFXFormat &prepassTargetF } else { -#ifndef TORQUE_OS_MAC +#if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX ) cond = new GBufferConditionerHLSL( prepassTargetFormat, GBufferConditionerHLSL::ViewSpace ); FEATUREMGR->registerFeature(MFT_PrePassConditioner, cond); FEATUREMGR->registerFeature(MFT_RTLighting, new DeferredRTLightingFeatHLSL()); diff --git a/Engine/source/lighting/basic/basicLightManager.cpp b/Engine/source/lighting/basic/basicLightManager.cpp index 18db77cb6..0ca0e0bde 100644 --- a/Engine/source/lighting/basic/basicLightManager.cpp +++ b/Engine/source/lighting/basic/basicLightManager.cpp @@ -49,7 +49,7 @@ #include "lighting/common/projectedShadow.h" -#ifdef TORQUE_OS_MAC +#if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX ) #include "shaderGen/GLSL/shaderFeatureGLSL.h" #include "shaderGen/GLSL/bumpGLSL.h" #include "shaderGen/GLSL/pixSpecularGLSL.h" @@ -167,7 +167,7 @@ void BasicLightManager::activate( SceneManager *sceneManager ) if( GFX->getAdapterType() == OpenGL ) { - #ifdef TORQUE_OS_MAC + #if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX ) FEATUREMGR->registerFeature( MFT_LightMap, new LightmapFeatGLSL ); FEATUREMGR->registerFeature( MFT_ToneMap, new TonemapFeatGLSL ); FEATUREMGR->registerFeature( MFT_NormalMap, new BumpFeatGLSL ); @@ -177,7 +177,7 @@ void BasicLightManager::activate( SceneManager *sceneManager ) } else { - #ifndef TORQUE_OS_MAC + #if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX ) FEATUREMGR->registerFeature( MFT_LightMap, new LightmapFeatHLSL ); FEATUREMGR->registerFeature( MFT_ToneMap, new TonemapFeatHLSL ); FEATUREMGR->registerFeature( MFT_NormalMap, new BumpFeatHLSL ); diff --git a/Engine/source/lighting/common/lightMapParams.cpp b/Engine/source/lighting/common/lightMapParams.cpp index bc161cb32..e7c2f39de 100644 --- a/Engine/source/lighting/common/lightMapParams.cpp +++ b/Engine/source/lighting/common/lightMapParams.cpp @@ -22,8 +22,17 @@ #include "lighting/common/lightMapParams.h" #include "core/stream/bitStream.h" +#include "core/module.h" -const LightInfoExType LightMapParams::Type( "LightMapParams" ); +MODULE_BEGIN( LightMapParams ) +MODULE_INIT_AFTER( ShadowMapParams ) +MODULE_INIT +{ + LightMapParams::Type = "LightMapParams"; +} +MODULE_END; + +LightInfoExType LightMapParams::Type( "" ); LightMapParams::LightMapParams( LightInfo *light ) : representedInLightmap(false), diff --git a/Engine/source/lighting/common/lightMapParams.h b/Engine/source/lighting/common/lightMapParams.h index fa83c063c..7a1b2bcec 100644 --- a/Engine/source/lighting/common/lightMapParams.h +++ b/Engine/source/lighting/common/lightMapParams.h @@ -34,7 +34,7 @@ public: virtual ~LightMapParams(); /// The LightInfoEx hook type. - static const LightInfoExType Type; + static LightInfoExType Type; // LightInfoEx virtual void set( const LightInfoEx *ex ); diff --git a/Engine/source/lighting/lightManager.cpp b/Engine/source/lighting/lightManager.cpp index fb7660c04..c26ec3db4 100644 --- a/Engine/source/lighting/lightManager.cpp +++ b/Engine/source/lighting/lightManager.cpp @@ -314,7 +314,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData, // NOTE: We haven't ported the lighting shaders on OSX // to the optimized HLSL versions. - #ifdef TORQUE_OS_MAC + #if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX ) static AlignedArray lightPositions( 4, sizeof( Point4F ) ); #else static AlignedArray lightPositions( 3, sizeof( Point4F ) ); @@ -342,7 +342,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData, if ( !light ) break; - #ifdef TORQUE_OS_MAC + #if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX ) lightPositions[i] = light->getPosition(); @@ -381,7 +381,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData, shaderConsts->setSafe( lightDiffuseSC, lightColors ); shaderConsts->setSafe( lightInvRadiusSqSC, lightInvRadiusSq ); - #ifndef TORQUE_OS_MAC + #if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX ) shaderConsts->setSafe( lightSpotDirSC, lightSpotDirs ); shaderConsts->setSafe( lightSpotAngleSC, lightSpotAngle ); diff --git a/Engine/source/lighting/shadowMap/lightShadowMap.cpp b/Engine/source/lighting/shadowMap/lightShadowMap.cpp index 7e7e03242..a25b7e706 100644 --- a/Engine/source/lighting/shadowMap/lightShadowMap.cpp +++ b/Engine/source/lighting/shadowMap/lightShadowMap.cpp @@ -34,7 +34,7 @@ #include "materials/baseMatInstance.h" #include "scene/sceneManager.h" #include "scene/sceneRenderState.h" -#include "scene/zones/SceneZoneSpace.h" +#include "scene/zones/sceneZoneSpace.h" #include "lighting/lightManager.h" #include "math/mathUtils.h" #include "shaderGen/shaderGenVars.h" @@ -42,6 +42,7 @@ #include "core/stream/bitStream.h" #include "math/mathIO.h" #include "materials/shaderData.h" +#include "core/module.h" // Used for creation in ShadowMapParams::getOrCreateShadowMap() #include "lighting/shadowMap/singleLightShadowMap.h" @@ -545,8 +546,15 @@ void LightingShaderConstants::_onShaderReload() init( mShader ); } +MODULE_BEGIN( ShadowMapParams ) +MODULE_INIT_BEFORE( LightMapParams ) +MODULE_INIT +{ + ShadowMapParams::Type = "ShadowMapParams" ; +} +MODULE_END; -const LightInfoExType ShadowMapParams::Type( "ShadowMapParams" ); +LightInfoExType ShadowMapParams::Type( "" ); ShadowMapParams::ShadowMapParams( LightInfo *light ) : mLight( light ), diff --git a/Engine/source/lighting/shadowMap/lightShadowMap.h b/Engine/source/lighting/shadowMap/lightShadowMap.h index 1de278932..94746d806 100644 --- a/Engine/source/lighting/shadowMap/lightShadowMap.h +++ b/Engine/source/lighting/shadowMap/lightShadowMap.h @@ -287,7 +287,7 @@ public: virtual ~ShadowMapParams(); /// The LightInfoEx hook type. - static const LightInfoExType Type; + static LightInfoExType Type; // LightInfoEx virtual void set( const LightInfoEx *ex ); diff --git a/Engine/source/math/mSilhouetteExtractor.h b/Engine/source/math/mSilhouetteExtractor.h index a166000e0..e602c0ecc 100644 --- a/Engine/source/math/mSilhouetteExtractor.h +++ b/Engine/source/math/mSilhouetteExtractor.h @@ -92,14 +92,14 @@ struct SilhouetteExtractorBasePerspective : public SilhouetteExtractorBase< Poly // Determine orientation of each of the polygons. - const U32 numPolygons = mPolyhedron->getNumPlanes(); + const U32 numPolygons = this->mPolyhedron->getNumPlanes(); mPolygonOrientations = ( Orientation* ) FrameAllocator::alloc( sizeof( Orientation ) * numPolygons ); Point3F camPos = camView.getPosition(); for( U32 i = 0; i < numPolygons; ++ i ) { - if (mPolyhedron->getPlanes()[i].whichSide( camPos ) == PlaneF::Front) + if (this->mPolyhedron->getPlanes()[i].whichSide( camPos ) == PlaneF::Front) mPolygonOrientations[i] = FrontFacing; else mPolygonOrientations[i] = BackFacing; diff --git a/Engine/source/platform/platform.h b/Engine/source/platform/platform.h index 67b3a97a9..2ae100e0d 100644 --- a/Engine/source/platform/platform.h +++ b/Engine/source/platform/platform.h @@ -523,17 +523,17 @@ template void dCopyArray(T *dst, const S *src, dsize_t size) dst[i] = (T)src[i]; } +extern void* dMemcpy(void *dst, const void *src, dsize_t size); +extern void* dMemmove(void *dst, const void *src, dsize_t size); +extern void* dMemset(void *dst, int c, dsize_t size); +extern int dMemcmp(const void *ptr1, const void *ptr2, dsize_t size); + // Special case of the above function when the arrays are the same type (use memcpy) template void dCopyArray(T *dst, const T *src, dsize_t size) { dMemcpy(dst, src, size * sizeof(T)); } -extern void* dMemcpy(void *dst, const void *src, dsize_t size); -extern void* dMemmove(void *dst, const void *src, dsize_t size); -extern void* dMemset(void *dst, int c, dsize_t size); -extern int dMemcmp(const void *ptr1, const void *ptr2, dsize_t size); - /// The dALIGN macro ensures the passed declaration is /// data aligned at 16 byte boundaries. #if defined( TORQUE_COMPILER_VISUALC ) diff --git a/Engine/source/platform/platformCPUCount.cpp b/Engine/source/platform/platformCPUCount.cpp index 1a4b5b450..116251e08 100644 --- a/Engine/source/platform/platformCPUCount.cpp +++ b/Engine/source/platform/platformCPUCount.cpp @@ -522,9 +522,9 @@ next: // processors per core tblSMTID[j] = GetNzbSubID(apicID, MaxLPPerCore, 0); - tblCoreID[j] = GetNzbSubID(apicID, - MaxCorePerPhysicalProc(), - (unsigned char) find_maskwidth(MaxLPPerCore)); + unsigned char maxCorePPP = MaxCorePerPhysicalProc(); + unsigned char maskWidth = find_maskwidth(MaxLPPerCore); + tblCoreID[j] = GetNzbSubID(apicID, maxCorePPP, maskWidth); // Extract package ID, assume single cluster. // Shift value is the mask width for max Logical per package diff --git a/Engine/source/platformX86UNIX/threads/semaphore.cpp b/Engine/source/platformX86UNIX/threads/semaphore.cpp index 2bdaade06..64e73454f 100644 --- a/Engine/source/platformX86UNIX/threads/semaphore.cpp +++ b/Engine/source/platformX86UNIX/threads/semaphore.cpp @@ -55,13 +55,25 @@ Semaphore::~Semaphore() delete mData; } -bool Semaphore::acquire(bool block) +bool Semaphore::acquire(bool block, S32 timeoutMS) { - AssertFatal(mData, "Semaphore::acquire - Invalid semaphore."); + AssertFatal(mData && mData->semaphore, "Semaphore::acquire - Invalid semaphore."); if (block) { - if (SDL_SemWait(mData->semaphore) < 0) - AssertFatal(false, "Semaphore::acquie - Wait failed."); + // Semaphore acquiring is different from the MacOS/Win realization because SDL_SemWaitTimeout() with "infinite" timeout can be too heavy on some platforms. + // (see "man SDL_SemWaitTimeout(3)" for more info) + // "man" states to avoid the use of SDL_SemWaitTimeout at all, but at current stage this looks like a valid and working solution, so keeping it this way. + // [bank / Feb-2010] + if (timeoutMS == -1) + { + if (SDL_SemWait(mData->semaphore) < 0) + AssertFatal(false, "Semaphore::acquie - Wait failed."); + } + else + { + if (SDL_SemWaitTimeout(mData->semaphore, timeoutMS) < 0) + AssertFatal(false, "Semaphore::acquie - Wait with timeout failed."); + } return (true); } else diff --git a/Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp b/Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp index b9814862a..b13b72f3f 100644 --- a/Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp +++ b/Engine/source/platformX86UNIX/x86UNIXStub.dedicated.cpp @@ -81,6 +81,8 @@ void OpenALDLLShutdown() {} // Platform Stubs +bool Platform::excludeOtherInstances(const char*) { return true; } + // clipboard const char* Platform::getClipboard() { return ""; } bool Platform::setClipboard(const char *text) { return false; } diff --git a/Engine/source/renderInstance/renderPassManager.cpp b/Engine/source/renderInstance/renderPassManager.cpp index 95f8e4f71..8a2e44c11 100644 --- a/Engine/source/renderInstance/renderPassManager.cpp +++ b/Engine/source/renderInstance/renderPassManager.cpp @@ -42,7 +42,7 @@ #include "console/engineAPI.h" -const RenderInstType RenderInstType::Invalid( String::EmptyString ); +const RenderInstType RenderInstType::Invalid( "" ); const RenderInstType RenderPassManager::RIT_Interior("Interior"); const RenderInstType RenderPassManager::RIT_Mesh("Mesh"); diff --git a/Engine/source/ts/tsShapeConstruct.h b/Engine/source/ts/tsShapeConstruct.h index 7d7c94cec..79947450d 100644 --- a/Engine/source/ts/tsShapeConstruct.h +++ b/Engine/source/ts/tsShapeConstruct.h @@ -38,6 +38,9 @@ #ifndef _COLLADA_UTILS_H_ #include "ts/collada/colladaUtils.h" #endif +#ifndef _ENGINEAPI_H_ +#include "console/engineAPI.h" +#endif /// This class allows an artist to export their animations for the model /// into the .dsq format. This class in particular matches up the model diff --git a/Templates/Empty/DeleteCachedDTSs.command b/Templates/Empty/DeleteCachedDTSs.command old mode 100644 new mode 100755 diff --git a/Templates/Empty/DeleteDSOs.command b/Templates/Empty/DeleteDSOs.command old mode 100644 new mode 100755 diff --git a/Templates/Empty/DeletePrefs.command b/Templates/Empty/DeletePrefs.command old mode 100644 new mode 100755 diff --git a/Templates/Empty/buildFiles/config/project.linux.conf b/Templates/Empty/buildFiles/config/project.linux.conf new file mode 100644 index 000000000..ae266adda --- /dev/null +++ b/Templates/Empty/buildFiles/config/project.linux.conf @@ -0,0 +1,67 @@ + diff --git a/Templates/Empty/buildFiles/config/project.linux_ded.conf b/Templates/Empty/buildFiles/config/project.linux_ded.conf new file mode 100644 index 000000000..36ad788b4 --- /dev/null +++ b/Templates/Empty/buildFiles/config/project.linux_ded.conf @@ -0,0 +1,65 @@ + diff --git a/Templates/Empty/buildFiles/config/torque3D_dedicated.conf b/Templates/Empty/buildFiles/config/torque3D_dedicated.conf new file mode 100644 index 000000000..eecf2fc4f --- /dev/null +++ b/Templates/Empty/buildFiles/config/torque3D_dedicated.conf @@ -0,0 +1,96 @@ + diff --git a/Templates/Empty/cleanShaders.command b/Templates/Empty/cleanShaders.command old mode 100644 new mode 100755 diff --git a/Templates/Empty/generateProjects.command b/Templates/Empty/generateProjects.command old mode 100644 new mode 100755 index a1ee36056..2b980b6e0 --- a/Templates/Empty/generateProjects.command +++ b/Templates/Empty/generateProjects.command @@ -2,5 +2,11 @@ cd "`dirname "$0"`" -/usr/bin/php ../../Tools/projectGenerator/projectGenerator.php buildFiles/config/project.mac.conf +OS=`uname` +if [ "$OS" = "Darwin" ]; then + /usr/bin/php ../../Tools/projectGenerator/projectGenerator.php buildFiles/config/project.mac.conf +else + /usr/bin/php ../../Tools/projectGenerator/projectGenerator.php buildFiles/config/project.linux.conf + /usr/bin/php ../../Tools/projectGenerator/projectGenerator.php buildFiles/config/project.linux_ded.conf +fi diff --git a/Templates/Full/DeleteCachedDTSs.command b/Templates/Full/DeleteCachedDTSs.command old mode 100644 new mode 100755 diff --git a/Templates/Full/DeleteDSOs.command b/Templates/Full/DeleteDSOs.command old mode 100644 new mode 100755 diff --git a/Templates/Full/DeletePrefs.command b/Templates/Full/DeletePrefs.command old mode 100644 new mode 100755 diff --git a/Templates/Full/buildFiles/config/project.linux.conf b/Templates/Full/buildFiles/config/project.linux.conf new file mode 100644 index 000000000..6e3542c63 --- /dev/null +++ b/Templates/Full/buildFiles/config/project.linux.conf @@ -0,0 +1,67 @@ + diff --git a/Templates/Full/buildFiles/config/project.linux_ded.conf b/Templates/Full/buildFiles/config/project.linux_ded.conf new file mode 100644 index 000000000..f0e4fd3f1 --- /dev/null +++ b/Templates/Full/buildFiles/config/project.linux_ded.conf @@ -0,0 +1,65 @@ + diff --git a/Templates/Full/buildFiles/config/torque3D_dedicated.conf b/Templates/Full/buildFiles/config/torque3D_dedicated.conf new file mode 100644 index 000000000..eecf2fc4f --- /dev/null +++ b/Templates/Full/buildFiles/config/torque3D_dedicated.conf @@ -0,0 +1,96 @@ + diff --git a/Templates/Full/cleanShaders.command b/Templates/Full/cleanShaders.command old mode 100644 new mode 100755 diff --git a/Templates/Full/generateProjects.command b/Templates/Full/generateProjects.command old mode 100644 new mode 100755 diff --git a/Tools/projectGenerator/btargets/targets.inc b/Tools/projectGenerator/btargets/targets.inc index 248eba6d8..5637164aa 100644 --- a/Tools/projectGenerator/btargets/targets.inc +++ b/Tools/projectGenerator/btargets/targets.inc @@ -153,7 +153,7 @@ $c = BuildTarget::add( 'Make', // Name $c->setSolutionInfo( 'makeSolution.tpl', '', '' ); -$c->setFileExtensions( 'c', 'cc', 'h', 'cpp', 'inl', 'asm' ); +$c->setFileExtensions( 'c', 'cc', 'cpp', 'asm' ); $c->setPlatforms( "linux" ); @@ -175,7 +175,7 @@ $c = BuildTarget::add( 'Make Dedicated', // Name $c->setSolutionInfo( 'makeSolution.tpl', '', '' ); -$c->setFileExtensions( 'c', 'cc', 'h', 'cpp', 'inl', 'asm' ); +$c->setFileExtensions( 'c', 'cc', 'cpp', 'asm' ); $c->setPlatforms( "linux_dedicated" ); @@ -197,7 +197,7 @@ $c = BuildTarget::add( 'build', // Name '', // ActiveX Project Template '.txt' ); -$c->setFileExtensions( 'c', 'cc', 'h', 'cpp', 'inl', 'asm', 'm', 'mm' ); +$c->setFileExtensions( 'c', 'cc', 'cpp', 'asm', 'm', 'mm' ); // NO PLATFORMS - SO ALL OR NONE? $c->setPlatforms(""); diff --git a/Tools/projectGenerator/modules/T3D.inc b/Tools/projectGenerator/modules/T3D.inc index ae937dbaf..5ec6be1c5 100644 --- a/Tools/projectGenerator/modules/T3D.inc +++ b/Tools/projectGenerator/modules/T3D.inc @@ -38,7 +38,8 @@ addEngineSrcDir('environment'); addEngineSrcDir('forest'); addEngineSrcDir('forest/ts'); -addEngineSrcDir('forest/editor'); +if(getToolBuild()) + addEngineSrcDir('forest/editor'); addEngineSrcDir('ts'); addEngineSrcDir('ts/arch'); @@ -84,6 +85,8 @@ switch( Generator::$platform ) // Fall through case "mac": + case "linux": + case "linux_dedicated": addEngineSrcDir( 'terrain/glsl' ); addEngineSrcDir( 'forest/glsl' ); break; diff --git a/Tools/projectGenerator/modules/advancedLighting.inc b/Tools/projectGenerator/modules/advancedLighting.inc index 196dfabaa..9e013dc2d 100644 --- a/Tools/projectGenerator/modules/advancedLighting.inc +++ b/Tools/projectGenerator/modules/advancedLighting.inc @@ -37,6 +37,8 @@ beginModule( 'advancedLighting' ); addEngineSrcDir( 'lighting/advanced/hlsl' ); break; case "mac": + case "linux": + case "linux_dedicated": addEngineSrcDir( 'lighting/advanced/glsl' ); break; } diff --git a/Tools/projectGenerator/modules/bullet.inc b/Tools/projectGenerator/modules/bullet.inc index 1ee4de9d2..d748e0f5b 100644 --- a/Tools/projectGenerator/modules/bullet.inc +++ b/Tools/projectGenerator/modules/bullet.inc @@ -35,7 +35,7 @@ beginModule( 'bullet' ); { addProjectDependency( 'libbullet' ); - if (Generator::$platform != "mac") + if (Generator::$platform != "win32") addSolutionProjectRef( 'libbullet' ); } diff --git a/Tools/projectGenerator/modules/core.inc b/Tools/projectGenerator/modules/core.inc index 0fa0d5000..83d982e86 100644 --- a/Tools/projectGenerator/modules/core.inc +++ b/Tools/projectGenerator/modules/core.inc @@ -110,8 +110,10 @@ switch( Generator::$platform ) addEngineSrcDir('windowManager/ps3'); break; - case "linux": case "linux_dedicated": + addEngineSrcDir('windowManager/dedicated'); + + case "linux": addEngineSrcDir('platformX86UNIX'); addEngineSrcDir('platformX86UNIX/threads'); addEngineSrcDir('platformPOSIX'); @@ -135,12 +137,12 @@ switch( Generator::$platform ) addEngineSrcDir( 'gfx/D3D' ); addEngineSrcDir( 'gfx/D3D9' ); addEngineSrcDir( 'gfx/D3D9/pc' ); - addEngineSrcDir( 'shaderGen/hlsl' ); + addEngineSrcDir( 'shaderGen/HLSL' ); break; case "360": addEngineSrcDir( 'gfx/D3D9' ); addEngineSrcDir( 'gfx/D3D9/360' ); - addEngineSrcDir( 'shaderGen/hlsl' ); + addEngineSrcDir( 'shaderGen/HLSL' ); addEngineSrcDir( 'shaderGen/360' ); break; case "mac": @@ -150,7 +152,16 @@ switch( Generator::$platform ) addEngineSrcDir( 'gfx/gl' ); addEngineSrcDir( 'gfx/gl/ggl' ); addEngineSrcDir( 'gfx/gl/ggl/generated' ); - addEngineSrcDir( 'shaderGen/glsl' ); + addEngineSrcDir( 'shaderGen/GLSL' ); + break; + case "linux": + case "linux_dedicated": + //addEngineSrcDir( 'gfx/gl/ggl/x11' ); // This one is not yet implemented! + // GFX - GGL + addEngineSrcDir( 'gfx/gl' ); + addEngineSrcDir( 'gfx/gl/ggl' ); + addEngineSrcDir( 'gfx/gl/ggl/generated' ); + addEngineSrcDir( 'shaderGen/GLSL' ); break; case "ps3": addEngineSrcDir( 'gfx/gl/ggl/ps3' ); @@ -159,7 +170,7 @@ switch( Generator::$platform ) addEngineSrcDir( 'gfx/gl' ); addEngineSrcDir( 'gfx/gl/ggl' ); addEngineSrcDir( 'gfx/gl/ggl/generated' ); - addEngineSrcDir( 'shaderGen/glsl' ); + addEngineSrcDir( 'shaderGen/GLSL' ); break; } diff --git a/Tools/projectGenerator/templates/makeApp.tpl b/Tools/projectGenerator/templates/makeApp.tpl index 961357448..ae08a7c48 100644 --- a/Tools/projectGenerator/templates/makeApp.tpl +++ b/Tools/projectGenerator/templates/makeApp.tpl @@ -12,13 +12,17 @@ SOURCES := {foreach from=$dirWalk item=file key=key} {/foreach} LDFLAGS := -g -m32 -LDLIBS := -lstdc++ -CFLAGS := -MMD -I. -Wfatal-errors -m32 +LDLIBS := -lstdc++ -lm -lSDL -lpthread -lrt +{foreach item=def from=$projLibs}LDLIBS += -l{$def} +{/foreach} + +CFLAGS := -MMD -I. -Wfatal-errors -m32 -msse -mmmx -march=i686 -pipe {foreach item=def from=$projIncludes}CFLAGS += -I{$def} {/foreach} -CFLAGS += -DUNICODE; +CFLAGS += -DUNICODE +CFLAGS += -DLINUX {foreach item=def from=$projDefines}CFLAGS += -D{$def} {/foreach} @@ -28,9 +32,9 @@ CFLAGS_DEBUG += -DTORQUE_DEBUG CFLAGS_DEBUG += -DTORQUE_DEBUG_GUARD CFLAGS_DEBUG += -DTORQUE_NET_STATS -CFLAGS += -O3 +CFLAGS += -O0 -#CC := gcc +CC := gcc LD := gcc APP_TARGETS += $(APPNAME) diff --git a/Tools/projectGenerator/templates/makeAppShared.tpl b/Tools/projectGenerator/templates/makeAppShared.tpl index 2473723f9..9a59f8f31 100644 --- a/Tools/projectGenerator/templates/makeAppShared.tpl +++ b/Tools/projectGenerator/templates/makeAppShared.tpl @@ -13,12 +13,13 @@ SOURCES := {foreach from=$dirWalk item=file key=key} LDFLAGS := -g -m32 LDLIBS := -lstdc++ -CFLAGS := -MMD -I. -Wfatal-errors -m32 +CFLAGS := -MMD -I. -Wfatal-errors -m32 -msse -mmmx -march=i686 {foreach item=def from=$projIncludes}CFLAGS += -I{$def} {/foreach} CFLAGS += -DUNICODE +CFLAGS += -DLINUX {foreach item=def from=$projDefines}CFLAGS += -D{$def} {/foreach} @@ -30,7 +31,7 @@ CFLAGS_DEBUG += -DTORQUE_DEBUG_GUARD CFLAGS += -O3 -#CC := gcc +CC := gcc LD := gcc APP_TARGETS += $(APPNAME) diff --git a/Tools/projectGenerator/templates/makeLib.tpl b/Tools/projectGenerator/templates/makeLib.tpl index 01dc8988a..85aa22759 100644 --- a/Tools/projectGenerator/templates/makeLib.tpl +++ b/Tools/projectGenerator/templates/makeLib.tpl @@ -15,13 +15,14 @@ SOURCES := {foreach from=$dirWalk item=file key=key} {/foreach} LDFLAGS_{$projName} := -g -m32 -LDLIBS_{$projName} := -lstdc++ -CFLAGS_{$projName} := -MMD -I. -m32 +#LDLIBS_{$projName} := -lstdc++ +CFLAGS_{$projName} := -MMD -I. -m32 -msse -mmmx -march=i686 {foreach item=def from=$projIncludes}CFLAGS_{$projName} += -I{$def} {/foreach} CFLAGS_{$projName} += -DUNICODE +CFLAGS_{$projName} += -DLINUX {foreach item=def from=$projDefines}CFLAGS_{$projName} += -D{$def} {/foreach} @@ -33,7 +34,7 @@ CFLAGS_DEBUG_{$projName} += -DTORQUE_NET_STATS CFLAGS_{$projName} += -O3 -#CC := gcc +CC := gcc LD := gcc TARGET_{$projName} := {$libDir}/compiled/Make/{$projName}.a diff --git a/Tools/projectGenerator/templates/makeSo.tpl b/Tools/projectGenerator/templates/makeSo.tpl index 3534de380..647907e9b 100644 --- a/Tools/projectGenerator/templates/makeSo.tpl +++ b/Tools/projectGenerator/templates/makeSo.tpl @@ -22,6 +22,7 @@ CFLAGS_{$projName} := -MMD -I. -m32 -mmmx -msse -march=i686 {/foreach} CFLAGS_{$projName} += -DUNICODE +CFLAGS_{$projName} += -DLINUX {foreach item=def from=$projDefines}CFLAGS_{$projName} += -D{$def} {/foreach} @@ -31,9 +32,9 @@ CFLAGS_DEBUG_{$projName} += -DTORQUE_DEBUG CFLAGS_DEBUG_{$projName} += -DTORQUE_DEBUG_GUARD CFLAGS_DEBUG_{$projName} += -DTORQUE_NET_STATS -CFLAGS_{$projName} += -O3 +CFLAGS_{$projName} += -O0 -#CC := gcc +CC := gcc LD := gcc SHARED_LIB_TARGETS += {$projName}.so diff --git a/Tools/projectGenerator/templates/makeSolution.tpl b/Tools/projectGenerator/templates/makeSolution.tpl index 7c385a076..3675f928e 100644 --- a/Tools/projectGenerator/templates/makeSolution.tpl +++ b/Tools/projectGenerator/templates/makeSolution.tpl @@ -3,6 +3,11 @@ # copyright on the actual sources. # Copyright 2005 Jon Watte. +# This sets the option for how many instances of gcc we'll run at the +# same time, one per CPU core in this case. This speeds up build time. +# Adjust to your amount of cores. +OPTIONS := --jobs=4 + DEPS := LIB_TARGETS := LIB_TARGETS_DEBUG :=