cmake_minimum_required(VERSION 2.8.3)

Project(Torque2D)

# Set required paths
set(BASE_OUTPUT_DIR ${CMAKE_BINARY_DIR})
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/../cmake-modules")

# Add modules
INCLUDE(CheckCCompilerFlag)
INCLUDE(CopyFiles)
INCLUDE(CMakeParseArguments)

# Add assets script
add_subdirectory(assets)

INCLUDE_DIRECTORIES(
	../../source
    ../../lib/zlib
    ../../lib/lpng
    ../../lib/ljpeg
    ../../source/persistence/rapidjson/include
    ../../source/testing/googleTest
    ../../source/testing/googleTest/include
)

ADD_DEFINITIONS(-DEMSCRIPTEN=1)
ADD_DEFINITIONS(-DUNICODE=1)
ADD_DEFINITIONS(-w)

SET(T2D_SRCS
    ../../lib/lpng/png.c
    ../../lib/lpng/pngerror.c
    ../../lib/lpng/pngget.c
    ../../lib/lpng/pngmem.c
    ../../lib/lpng/pngpread.c
    ../../lib/lpng/pngread.c
    ../../lib/lpng/pngrio.c
    ../../lib/lpng/pngrtran.c
    ../../lib/lpng/pngrutil.c
    ../../lib/lpng/pngset.c
    ../../lib/lpng/pngtrans.c
    ../../lib/lpng/pngwio.c
    ../../lib/lpng/pngwrite.c
    ../../lib/lpng/pngwtran.c
    ../../lib/lpng/pngwutil.c
    ../../lib/zlib/adler32.c
    ../../lib/zlib/crc32.c
    ../../lib/zlib/compress.c
    ../../lib/zlib/deflate.c
    ../../lib/zlib/infback.c
    ../../lib/zlib/inffast.c
    ../../lib/zlib/inflate.c
    ../../lib/zlib/inftrees.c
    ../../lib/zlib/trees.c
    ../../lib/zlib/uncompr.c
    ../../lib/zlib/zutil.c
    ../../lib/ljpeg/jdapistd.c
    ../../lib/ljpeg/jdmaster.c
    ../../lib/ljpeg/jdapimin.c
    ../../lib/ljpeg/jcapimin.c
    ../../lib/ljpeg/jdmerge.c
    ../../lib/ljpeg/jdatasrc.c
    ../../lib/ljpeg/jdatadst.c
    ../../lib/ljpeg/jdcoefct.c
    ../../lib/ljpeg/jdcolor.c
    ../../lib/ljpeg/jddctmgr.c
    ../../lib/ljpeg/jdhuff.c
    ../../lib/ljpeg/jdinput.c
    ../../lib/ljpeg/jdmainct.c
    ../../lib/ljpeg/jdmarker.c
    ../../lib/ljpeg/jdpostct.c
    ../../lib/ljpeg/jdsample.c
    ../../lib/ljpeg/jdtrans.c
    ../../lib/ljpeg/jerror.c
    ../../lib/ljpeg/jidctflt.c
    ../../lib/ljpeg/jidctfst.c
    ../../lib/ljpeg/jidctint.c
    ../../lib/ljpeg/jmemmgr.c
    ../../lib/ljpeg/jutils.c
    ../../lib/ljpeg/jmemnobs.c
    ../../lib/ljpeg/jquant1.c
    ../../lib/ljpeg/jquant2.c
    ../../lib/ljpeg/jcomapi.c
    ../../lib/ljpeg/jcmarker.c
    ../../lib/ljpeg/jcapistd.c
    ../../lib/ljpeg/jcparam.c
    ../../lib/ljpeg/jcinit.c
    ../../lib/ljpeg/jcdctmgr.c
    ../../lib/ljpeg/jccoefct.c
    ../../lib/ljpeg/jcmainct.c
    ../../lib/ljpeg/jfdctflt.c
    ../../lib/ljpeg/jfdctint.c
    ../../lib/ljpeg/jfdctfst.c
    ../../lib/ljpeg/jchuff.c
    ../../lib/ljpeg/jcsample.c
    ../../lib/ljpeg/jcmaster.c
    ../../lib/ljpeg/jccolor.c
    ../../lib/ljpeg/jcprepct.c
    ../../lib/ljpeg/jdphuff.c
    ../../lib/ljpeg/jcphuff.c
    ../../lib/ljpeg/jidctred.c
    ../../source/2d/scene/SceneRenderFactories.cpp
	../../source/2d/scene/SceneRenderQueue.cpp
	../../source/Box2D/Collision/b2BroadPhase.cpp
	../../source/Box2D/Collision/b2CollideCircle.cpp
	../../source/Box2D/Collision/b2CollideEdge.cpp
	../../source/Box2D/Collision/b2CollidePolygon.cpp
	../../source/Box2D/Collision/b2Collision.cpp
	../../source/Box2D/Collision/b2Distance.cpp
	../../source/Box2D/Collision/b2DynamicTree.cpp
	../../source/Box2D/Collision/b2TimeOfImpact.cpp
	../../source/Box2D/Collision/Shapes/b2ChainShape.cpp
	../../source/Box2D/Collision/Shapes/b2CircleShape.cpp
	../../source/Box2D/Collision/Shapes/b2EdgeShape.cpp
	../../source/Box2D/Collision/Shapes/b2PolygonShape.cpp
	../../source/Box2D/Common/b2BlockAllocator.cpp
	../../source/Box2D/Common/b2Draw.cpp
	../../source/Box2D/Common/b2Math.cpp
	../../source/Box2D/Common/b2Settings.cpp
	../../source/Box2D/Common/b2StackAllocator.cpp
	../../source/Box2D/Common/b2Timer.cpp
	../../source/Box2D/Dynamics/b2Body.cpp
	../../source/Box2D/Dynamics/b2ContactManager.cpp
	../../source/Box2D/Dynamics/b2Fixture.cpp
	../../source/Box2D/Dynamics/b2Island.cpp
	../../source/Box2D/Dynamics/b2World.cpp
	../../source/Box2D/Dynamics/b2WorldCallbacks.cpp
	../../source/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp
	../../source/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp
	../../source/Box2D/Dynamics/Contacts/b2CircleContact.cpp
	../../source/Box2D/Dynamics/Contacts/b2Contact.cpp
	../../source/Box2D/Dynamics/Contacts/b2ContactSolver.cpp
	../../source/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp
	../../source/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp
	../../source/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
	../../source/Box2D/Dynamics/Contacts/b2PolygonContact.cpp
	../../source/Box2D/Dynamics/Joints/b2DistanceJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2FrictionJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2GearJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2Joint.cpp
	../../source/Box2D/Dynamics/Joints/b2MotorJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2MouseJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2PulleyJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2RopeJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2WeldJoint.cpp
	../../source/Box2D/Dynamics/Joints/b2WheelJoint.cpp
	../../source/Box2D/Rope/b2Rope.cpp
	../../source/collection/nameTags.cpp
	../../source/component/behaviors/behaviorComponent.cpp
	../../source/component/behaviors/behaviorInstance.cpp
	../../source/component/behaviors/behaviorTemplate.cpp
	../../source/component/dynamicConsoleMethodComponent.cpp
	../../source/component/simComponent.cpp
	../../source/delegates/delegateSignal.cpp
	../../source/graphics/PNGImage.cpp
	../../source/math/rectClipper.cpp
	../../source/persistence/SimXMLDocument.cpp
	../../source/persistence/tinyXML/tinystr.cpp
	../../source/persistence/tinyXML/tinyxml.cpp
	../../source/persistence/tinyXML/tinyxmlerror.cpp
	../../source/persistence/tinyXML/tinyxmlparser.cpp
	../../source/platform/nativeDialogs/msgBox.cpp
	../../source/sim/simSerialize.cpp
	../../source/string/stringUnit.cpp
	../../source/2d/assets/AnimationAsset.cc
	../../source/2d/assets/ImageAsset.cc
	../../source/2d/assets/ParticleAsset.cc
	../../source/2d/assets/ParticleAssetEmitter.cc
	../../source/2d/assets/ParticleAssetField.cc
	../../source/2d/assets/ParticleAssetFieldCollection.cc
	../../source/2d/assets/SkeletonAsset.cc
	../../source/2d/controllers/AmbientForceController.cc
	../../source/2d/controllers/BuoyancyController.cc
	../../source/2d/controllers/core/GroupedSceneController.cc
	../../source/2d/controllers/core/PickingSceneController.cc
	../../source/2d/controllers/PointForceController.cc
	../../source/2d/core/BatchRender.cc
	../../source/2d/core/CoreMath.cc
	../../source/2d/core/ImageFrameProvider.cc
	../../source/2d/core/ImageFrameProviderCore.cc
	../../source/2d/core/ParticleSystem.cc
	../../source/2d/core/RenderProxy.cc
	../../source/2d/core/SpriteBase.cc
	../../source/2d/core/SpriteBatch.cc
	../../source/2d/core/SpriteBatchItem.cc
	../../source/2d/core/SpriteBatchQuery.cc
	../../source/2d/core/Utility.cc
	../../source/2d/core/Vector2.cc
	../../source/2d/experimental/composites/WaveComposite.cc
	../../source/2d/gui/guiImageButtonCtrl.cc
	../../source/2d/gui/guiSceneObjectCtrl.cc
	../../source/2d/gui/guiSpriteCtrl.cc
	../../source/2d/gui/SceneWindow.cc
	../../source/2d/scene/ContactFilter.cc
	../../source/2d/scene/DebugDraw.cc
	../../source/2d/scene/Scene.cc
	../../source/2d/scene/WorldQuery.cc
	../../source/2d/sceneobject/CompositeSprite.cc
	../../source/2d/sceneobject/ImageFont.cc
	../../source/2d/sceneobject/ParticlePlayer.cc
	../../source/2d/sceneobject/SceneObject.cc
	../../source/2d/sceneobject/SceneObjectList.cc
	../../source/2d/sceneobject/SceneObjectSet.cc
	../../source/2d/sceneobject/Scroller.cc
	../../source/2d/sceneobject/ShapeVector.cc
	../../source/2d/sceneobject/SkeletonObject.cc
	../../source/2d/sceneobject/Sprite.cc
	../../source/2d/sceneobject/Trigger.cc
	../../source/algorithm/crc.cc
	../../source/algorithm/hashFunction.cc
	../../source/assets/assetBase.cc
	../../source/assets/assetFieldTypes.cc
	../../source/assets/assetManager.cc
	../../source/assets/assetQuery.cc
	../../source/assets/assetTagsManifest.cc
	../../source/assets/declaredAssets.cc
	../../source/assets/referencedAssets.cc
	../../source/audio/audio.cc
	../../source/audio/audio_ScriptBinding.cc
	../../source/audio/AudioAsset.cc
	../../source/audio/audioBuffer.cc
	../../source/audio/audioDataBlock.cc
	../../source/audio/audioStreamSourceFactory.cc
	../../source/audio/wavStreamSource.cc
	../../source/collection/bitTables.cc
	../../source/collection/hashTable.cc
	../../source/collection/undo.cc
	../../source/collection/vector.cc
	../../source/console/astAlloc.cc
	../../source/console/astNodes.cc
	../../source/console/cmdgram.cc
	../../source/console/CMDscan.cc
	../../source/console/codeBlock.cc
	../../source/console/compiledEval.cc
	../../source/console/compiler.cc
	../../source/console/console.cc
	../../source/console/consoleBaseType.cc
	../../source/console/consoleDictionary.cc
	../../source/console/consoleDoc.cc
	../../source/console/consoleExprEvalState.cc
	../../source/console/consoleFunctions.cc
	../../source/console/consoleLogger.cc
	../../source/console/consoleNamespace.cc
	../../source/console/consoleObject.cc
	../../source/console/consoleParser.cc
	../../source/console/consoleTypes.cc
	../../source/console/ConsoleTypeValidators.cc
	../../source/console/metaScripting_ScriptBinding.cc
	../../source/console/Package.cc
	../../source/debug/profiler.cc
	../../source/debug/remote/RemoteDebugger1.cc
	../../source/debug/remote/RemoteDebuggerBase.cc
	../../source/debug/remote/RemoteDebuggerBridge.cc
	../../source/debug/telnetDebugger.cc
	../../source/game/defaultGame.cc
	../../source/game/gameConnection.cc
	../../source/game/gameInterface.cc
	../../source/game/version.cc
	../../source/graphics/bitmapBmp.cc
	../../source/graphics/bitmapJpeg.cc
	../../source/graphics/bitmapPng.cc
	../../source/graphics/color.cc
	../../source/graphics/dgl.cc
	../../source/graphics/dglMatrix.cc
	../../source/graphics/DynamicTexture.cc
	../../source/graphics/gBitmap.cc
	../../source/graphics/gFont.cc
	../../source/graphics/gPalette.cc
	../../source/graphics/splineUtil.cc
	../../source/graphics/TextureDictionary.cc
	../../source/graphics/TextureHandle.cc
	../../source/graphics/TextureManager.cc
	../../source/gui/buttons/guiBitmapButtonCtrl.cc
	../../source/gui/buttons/guiBorderButton.cc
	../../source/gui/buttons/guiButtonBaseCtrl.cc
	../../source/gui/buttons/guiButtonCtrl.cc
	../../source/gui/buttons/guiCheckBoxCtrl.cc
	../../source/gui/buttons/guiIconButtonCtrl.cc
	../../source/gui/buttons/guiRadioCtrl.cc
	../../source/gui/buttons/guiToolboxButtonCtrl.cc
	../../source/gui/containers/guiAutoScrollCtrl.cc
	../../source/gui/containers/guiCtrlArrayCtrl.cc
	../../source/gui/containers/guiDragAndDropCtrl.cc
	../../source/gui/containers/guiDynamicCtrlArrayCtrl.cc
	../../source/gui/containers/guiFormCtrl.cc
	../../source/gui/containers/guiFrameCtrl.cc
	../../source/gui/containers/guiPaneCtrl.cc
	../../source/gui/containers/guiRolloutCtrl.cc
	../../source/gui/containers/guiScrollCtrl.cc
	../../source/gui/containers/guiStackCtrl.cc
	../../source/gui/containers/guiTabBookCtrl.cc
	../../source/gui/containers/guiWindowCtrl.cc
	../../source/gui/editor/guiControlListPopup.cc
	../../source/gui/editor/guiDebugger.cc
	../../source/gui/editor/guiEditCtrl.cc
	../../source/gui/editor/guiFilterCtrl.cc
	../../source/gui/editor/guiGraphCtrl.cc
	../../source/gui/editor/guiImageList.cc
	../../source/gui/editor/guiInspector.cc
	../../source/gui/editor/guiInspectorTypes.cc
	../../source/gui/editor/guiMenuBar.cc
	../../source/gui/editor/guiSeparatorCtrl.cc
	../../source/gui/guiArrayCtrl.cc
	../../source/gui/guiBackgroundCtrl.cc
	../../source/gui/guiBitmapBorderCtrl.cc
	../../source/gui/guiBitmapCtrl.cc
	../../source/gui/guiCanvas.cc
	../../source/gui/guiColorPicker.cc
	../../source/gui/guiConsole.cc
	../../source/gui/guiConsoleEditCtrl.cc
	../../source/gui/guiConsoleTextCtrl.cc
	../../source/gui/guiControl.cc
	../../source/gui/guiDefaultControlRender.cc
	../../source/gui/guiFadeinBitmapCtrl.cc
	../../source/gui/guiInputCtrl.cc
	../../source/gui/guiListBoxCtrl.cc
	../../source/gui/guiMessageVectorCtrl.cc
	../../source/gui/guiMLTextCtrl.cc
	../../source/gui/guiMLTextEditCtrl.cc
	../../source/gui/guiPopUpCtrl.cc
	../../source/gui/guiPopUpCtrlEx.cc
	../../source/gui/guiProgressCtrl.cc
	../../source/gui/guiScriptNotifyControl.cc
	../../source/gui/guiSliderCtrl.cc
	../../source/gui/guiTabPageCtrl.cc
	../../source/gui/guiTextCtrl.cc
	../../source/gui/guiTextEditCtrl.cc
	../../source/gui/guiTextEditSliderCtrl.cc
	../../source/gui/guiTextListCtrl.cc
	../../source/gui/guiTickCtrl.cc
	../../source/gui/guiTypes.cc
	../../source/gui/language/lang.cc
	../../source/gui/messageVector.cc
	../../source/input/actionMap.cc
	../../source/io/bitStream.cc
	../../source/io/bufferStream.cc
	../../source/io/fileObject.cc
	../../source/io/fileStream.cc
	../../source/io/fileStreamObject.cc
	../../source/io/fileSystem_ScriptBinding.cc
	../../source/io/filterStream.cc
	../../source/io/memStream.cc
	../../source/io/nStream.cc
	../../source/io/resizeStream.cc
	../../source/io/resource/resourceDictionary.cc
	../../source/io/resource/resourceManager.cc
	../../source/io/streamObject.cc
	../../source/io/zip/centralDir.cc
	../../source/io/zip/compressor.cc
	../../source/io/zip/deflate.cc
	../../source/io/zip/extraField.cc
	../../source/io/zip/fileHeader.cc
	../../source/io/zip/stored.cc
	../../source/io/zip/zipArchive.cc
	../../source/io/zip/zipCryptStream.cc
	../../source/io/zip/zipObject.cc
	../../source/io/zip/zipSubStream.cc
	../../source/io/zip/zipTempStream.cc
	../../source/math/math_ScriptBinding.cc
	../../source/math/mathTypes.cc
	../../source/math/mathUtils.cc
	../../source/math/mBox.cc
	../../source/math/mMath_C.cc
	../../source/math/mMathAltivec.cc
	../../source/math/mMathAMD.cc
	../../source/math/mMathFn.cc
	../../source/math/mMathSSE.cc
	../../source/math/mMatrix.cc
	../../source/math/mPlaneTransformer.cc
	../../source/math/mQuadPatch.cc
	../../source/math/mQuat.cc
	../../source/math/mRandom.cc
	../../source/math/mSolver.cc
	../../source/math/mSplinePatch.cc
	../../source/memory/dataChunker.cc
	../../source/memory/frameAllocator_ScriptBinding.cc
	../../source/messaging/dispatcher.cc
	../../source/messaging/eventManager.cc
	../../source/messaging/message.cc
	../../source/messaging/messageForwarder.cc
	../../source/messaging/scriptMsgListener.cc
	../../source/module/moduleDefinition.cc
	../../source/module/moduleManager.cc
	../../source/module/moduleMergeDefinition.cc
	../../source/network/connectionProtocol.cc
	../../source/network/connectionStringTable.cc
	../../source/network/httpObject.cc
	../../source/network/netConnection.cc
	../../source/network/netDownload.cc
	../../source/network/netEvent.cc
	../../source/network/netGhost.cc
	../../source/network/netInterface.cc
	../../source/network/netObject.cc
	../../source/network/netStringTable.cc
	../../source/network/netTest.cc
	../../source/network/networkProcessList.cc
	../../source/network/RemoteCommandEvent.cc
	../../source/network/serverQuery.cc
	../../source/network/tcpObject.cc
	../../source/network/telnetConsole.cc
	../../source/persistence/taml/binary/tamlBinaryReader.cc
	../../source/persistence/taml/binary/tamlBinaryWriter.cc
	../../source/persistence/taml/json/tamlJSONParser.cc
	../../source/persistence/taml/json/tamlJSONReader.cc
	../../source/persistence/taml/json/tamlJSONWriter.cc
	../../source/persistence/taml/taml.cc
	../../source/persistence/taml/tamlCustom.cc
	../../source/persistence/taml/tamlWriteNode.cc
	../../source/persistence/taml/xml/tamlXmlParser.cc
	../../source/persistence/taml/xml/tamlXmlReader.cc
	../../source/persistence/taml/xml/tamlXmlWriter.cc
	../../source/platform/CursorManager.cc
	../../source/platform/menus/popupMenu.cc
	../../source/platform/nativeDialogs/fileDialog.cc
	../../source/platform/platform.cc
	../../source/platform/platformAssert.cc
	../../source/platform/platformCPU.cc
	../../source/platform/platformFileIO.cc
	../../source/platform/platformFont.cc
	../../source/platform/platformMemory.cc
	../../source/platform/platformNetwork_ScriptBinding.cc
	../../source/platform/platformString.cc
	../../source/platform/platformVideo.cc
	../../source/platform/Tickable.cc
	../../source/sim/scriptGroup.cc
	../../source/sim/scriptObject.cc
	../../source/sim/simBase.cc
	../../source/sim/simConsoleEvent.cc
	../../source/sim/simConsoleThreadExecEvent.cc
	../../source/sim/simDatablock.cc
	../../source/sim/simDictionary.cc
	../../source/sim/simFieldDictionary.cc
	../../source/sim/simManager.cc
	../../source/sim/simObject.cc
	../../source/sim/SimObjectList.cc
	../../source/sim/simSet.cc
	../../source/spine/Animation.c
	../../source/spine/AnimationState.c
	../../source/spine/AnimationStateData.c
	../../source/spine/Atlas.c
	../../source/spine/AtlasAttachmentLoader.c
	../../source/spine/Attachment.c
	../../source/spine/AttachmentLoader.c
	../../source/spine/Bone.c
	../../source/spine/BoneData.c
	../../source/spine/BoundingBoxAttachment.c
	../../source/spine/Event.c
	../../source/spine/EventData.c
	../../source/spine/extension.c
	../../source/spine/Json.c
	../../source/spine/RegionAttachment.c
	../../source/spine/Skeleton.c
	../../source/spine/SkeletonBounds.c
	../../source/spine/SkeletonData.c
	../../source/spine/SkeletonJson.c
	../../source/spine/Skin.c
	../../source/spine/Slot.c
	../../source/spine/SlotData.c
	../../source/string/findMatch.cc
	../../source/string/stringBuffer.cc
	../../source/string/stringStack.cc
	../../source/string/stringTable.cc
	../../source/string/unicode.cc
	../../source/platformEmscripten/EmscriptenAlerts.cpp
	../../source/platformEmscripten/EmscriptenAudio.cpp
	../../source/platformEmscripten/EmscriptenConsole.cpp
	../../source/platformEmscripten/EmscriptenCPUInfo.cpp
	../../source/platformEmscripten/EmscriptenDialogs.cpp
	../../source/platformEmscripten/EmscriptenEvents.cpp
	../../source/platformEmscripten/EmscriptenFileio.cpp
	../../source/platformEmscripten/EmscriptenFont.cpp
	../../source/platformEmscripten/EmscriptenGL.cpp
	../../source/platformEmscripten/EmscriptenInput.cpp
	../../source/platformEmscripten/EmscriptenInputManager.cpp
	../../source/platformEmscripten/EmscriptenMath.cpp
	../../source/platformEmscripten/EmscriptenMemory.cpp
	../../source/platformEmscripten/EmscriptenMutex.cpp
	../../source/platformEmscripten/EmscriptenNet.cpp
	../../source/platformEmscripten/EmscriptenOGLVideo.cpp
	../../source/platformEmscripten/EmscriptenOutlineGL.cpp
	../../source/platformEmscripten/EmscriptenPlatform.cpp
	../../source/platformEmscripten/EmscriptenProcessControl.cpp
	../../source/platformEmscripten/EmscriptenSemaphore.cpp
	../../source/platformEmscripten/EmscriptenStrings.cpp
	../../source/platformEmscripten/EmscriptenThread.cpp
	../../source/platformEmscripten/EmscriptenTime.cpp
	../../source/platformEmscripten/EmscriptenWindow.cpp
	../../source/platformEmscripten/main.cpp
	../../source/platformEmscripten/menus/popupMenu.cpp
)

IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
	set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} --js-library ../../source/platformEmscripten/platform.js --preload-file ${BASE_OUTPUT_DIR}/data@/ -s TOTAL_MEMORY=134217728 -O0 -s LEGACY_GL_EMULATION=1")#" -s TOTAL_MEMORY=134217728)
	set(CMAKE_CXX__FLAGS "${CMAKE_CXX_LINK_FLAGS} -O0")
ELSEIF(CMAKE_BUILD_TYPE STREQUAL "Release")
	set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} --js-library ../../source/platformEmscripten/platform.js --preload-file ${BASE_OUTPUT_DIR}/data@/ -s TOTAL_MEMORY=134217728 -O2 -s LEGACY_GL_EMULATION=1")#" -s TOTAL_MEMORY=134217728)
	set(CMAKE_CXX__FLAGS "${CMAKE_CXX_LINK_FLAGS} -O2")
ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug")

ADD_EXECUTABLE(Torque2D.html
${T2D_SRCS})
add_dependencies(Torque2D.html Assets)

#em_link_js_library

