include_directories(public)
add_subdirectory(public)
set(KRAKEN_PUBLIC_HEADERS "${KRAKEN_PUBLIC_HEADERS}" PARENT_SCOPE)

# Private Implementation
add_sources(kraken.cpp)
add_sources(KRAmbientZone.cpp)
add_sources(KRAnimation.cpp)
add_sources(KRAnimationAttribute.cpp)
add_sources(KRAnimationCurve.cpp)
add_sources(KRAnimationCurveManager.cpp)
add_sources(KRAnimationLayer.cpp)
add_sources(KRAnimationManager.cpp)
add_sources(KRAudioBuffer.cpp)
add_sources(KRAudioManager.cpp)
add_sources(KRAudioSample.cpp)
add_sources(KRAudioSource.cpp)
add_sources(KRBehavior.cpp)
add_sources(KRBone.cpp)
add_sources(KRBundle.cpp)
add_sources(KRBundleManager.cpp)
add_sources(KRCamera.cpp)
add_sources(KRCollider.cpp)
add_sources(KRContext.cpp)
add_sources(KRStreamer.cpp)
IF(APPLE)
  add_sources(KREngine.mm)
  
  IF(IOS)
    add_sources(KRContext_ios.mm)
  ELSE()
    add_sources(KRContext_osx.mm)
  ENDIF()
ENDIF (APPLE)
add_sources(KRContextObject.cpp)
add_sources(KRDataBlock.cpp)
add_sources(KRDirectionalLight.cpp)
IF(APPLE)
  add_sources(KRDSP_vDSP.cpp)
ELSE()
  add_sources(KRDSP_slow.cpp)
ENDIF()
add_sources(KRHelpers.cpp)
add_sources(KRLight.cpp)
add_sources(KRLocator.cpp)
add_sources(KRLODGroup.cpp)
add_sources(KRLODSet.cpp)
add_sources(KRMaterial.cpp)
add_sources(KRMaterialManager.cpp)
add_sources(KRMesh.cpp)
add_sources(KRMeshCube.cpp)
add_sources(KRMeshManager.cpp)
add_sources(KRMeshQuad.cpp)
add_sources(KRMeshSphere.cpp)
add_sources(KRModel.cpp)
add_sources(KRNode.cpp)
add_sources(KROctree.cpp)
add_sources(KROctreeNode.cpp)
add_sources(KRParticleSystem.cpp)
add_sources(KRParticleSystemNewtonian.cpp)
add_sources(KRPointLight.cpp)
add_sources(KRRenderSettings.cpp)
add_sources(KRResource+blend.cpp)
# add_sources(KRResource+fbx.cpp) # TODO - Locate FBX SDK dependencies
add_sources(KRResource+obj.cpp)
add_sources(KRResource.cpp)
add_sources(KRResourceManager.cpp)
add_sources(KRReverbZone.cpp)
add_sources(KRScene.cpp)
add_sources(KRSceneManager.cpp)
add_sources(KRShader.cpp)
add_sources(KRShaderManager.cpp)
add_sources(KRSource.cpp)
add_sources(KRSourceManager.cpp)
add_sources(KRPipeline.cpp)
add_sources(KRPipelineManager.cpp)
add_sources(KRSpotLight.cpp)
add_sources(KRSprite.cpp)
add_sources(KRTexture.cpp)
add_sources(KRTexture2D.cpp)
add_sources(KRTextureAnimated.cpp)
add_sources(KRTextureCube.cpp)
add_sources(KRTextureKTX.cpp)
add_sources(KRTextureManager.cpp)
add_sources(KRTexturePVR.cpp)
add_sources(KRTextureTGA.cpp)
add_sources(KRUnknown.cpp)
add_sources(KRUnknownManager.cpp)
add_sources(KRViewport.cpp)
add_sources(../3rdparty/tinyxml2/tinyxml2.cpp)
add_sources(../3rdparty/forsyth/forsyth.cpp)
