Browse Source

Per platform binding generation

Josh Engebretson 10 years ago
parent
commit
ba53c172fc

+ 1 - 0
.gitignore

@@ -4,6 +4,7 @@ Bin/Atomic.d.ts
 Bin/Atomic.js
 Bin/Atomic.js
 Source/Atomic/Javascript/Modules/*
 Source/Atomic/Javascript/Modules/*
 Artifacts/*
 Artifacts/*
+Build/*
 Docs/out/*
 Docs/out/*
 Docs/node_modules/*
 Docs/node_modules/*
 Data/AtomicEditor/Deployment/Web/AtomicPlayer.js
 Data/AtomicEditor/Deployment/Web/AtomicPlayer.js

+ 0 - 0
Source/Atomic/Javascript/Modules/.gitkeep → Build/.gitkeep


+ 34 - 19
Rakefile

@@ -12,7 +12,10 @@ end
 
 
 $RAKE_ROOT = File.dirname(__FILE__)
 $RAKE_ROOT = File.dirname(__FILE__)
 
 
-ATOMICTILED_BUILD_DIR = "#{$RAKE_ROOT}/Artifacts/AtomicTiled_Build"
+ARTIFACTS_FOLDER = "#{$RAKE_ROOT}/Artifacts"
+BUILD_FOLDER = "#{$RAKE_ROOT}/Build"
+
+ATOMICTILED_BUILD_DIR = "#{ARTIFACTS_FOLDER}/AtomicTiled_Build"
 ATOMICTILED_SOURCE_DIR =  "#{$RAKE_ROOT}/../AtomicTiled"
 ATOMICTILED_SOURCE_DIR =  "#{$RAKE_ROOT}/../AtomicTiled"
 
 
 
 
@@ -25,17 +28,19 @@ else
 end
 end
 
 
 
 
-namespace :android do
+namespace :android  do
 
 
-  CMAKE_ANDROID_BUILD_FOLDER = "#{$RAKE_ROOT}/Artifacts/Android_Build"
+  CMAKE_ANDROID_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Android_Build"
 
 
-  task :player do
+  task :player => "macosx:jsbind" do
 
 
     if !Dir.exists?("#{CMAKE_ANDROID_BUILD_FOLDER}")
     if !Dir.exists?("#{CMAKE_ANDROID_BUILD_FOLDER}")
       FileUtils.mkdir_p(CMAKE_ANDROID_BUILD_FOLDER)
       FileUtils.mkdir_p(CMAKE_ANDROID_BUILD_FOLDER)
     end
     end
 
 
     Dir.chdir(CMAKE_ANDROID_BUILD_FOLDER) do
     Dir.chdir(CMAKE_ANDROID_BUILD_FOLDER) do
+
+      sh "#{BUILD_FOLDER}/JSBind #{$RAKE_ROOT} ANDROID"
       sh "cmake -DCMAKE_TOOLCHAIN_FILE=#{$RAKE_ROOT}/CMake/Toolchains/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../"
       sh "cmake -DCMAKE_TOOLCHAIN_FILE=#{$RAKE_ROOT}/CMake/Toolchains/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../"
       sh "make -j8"
       sh "make -j8"
     end 
     end 
@@ -46,7 +51,7 @@ end
 
 
 namespace :ios do
 namespace :ios do
 
 
-  CMAKE_IOS_BUILD_FOLDER = "#{$RAKE_ROOT}/Artifacts/IOS_Build"
+  CMAKE_IOS_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/IOS_Build"
 
 
   task :player do
   task :player do
 
 
@@ -55,6 +60,7 @@ namespace :ios do
     end
     end
 
 
     Dir.chdir(CMAKE_IOS_BUILD_FOLDER) do
     Dir.chdir(CMAKE_IOS_BUILD_FOLDER) do
+      sh "#{BUILD_FOLDER}/JSBind #{$RAKE_ROOT} IOS"
       sh "cmake -DIOS=1 -DCMAKE_BUILD_TYPE=Release -G Xcode ../../"
       sh "cmake -DIOS=1 -DCMAKE_BUILD_TYPE=Release -G Xcode ../../"
       sh "xcodebuild -configuration Release"
       sh "xcodebuild -configuration Release"
     end 
     end 
@@ -66,7 +72,7 @@ end
 
 
 namespace :web do
 namespace :web do
 
 
-  CMAKE_WEB_BUILD_FOLDER = "#{$RAKE_ROOT}/Artifacts/Web_Build"
+  CMAKE_WEB_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Web_Build"
 
 
   task :player do
   task :player do
 
 
@@ -75,6 +81,7 @@ namespace :web do
     end
     end
 
 
     Dir.chdir(CMAKE_WEB_BUILD_FOLDER) do
     Dir.chdir(CMAKE_WEB_BUILD_FOLDER) do
+      sh "#{BUILD_FOLDER}/JSBind #{$RAKE_ROOT} WEB"
       sh "cmake -DEMSCRIPTEN=1 -DCMAKE_TOOLCHAIN_FILE=#{$RAKE_ROOT}/CMake/Toolchains/emscripten.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../"
       sh "cmake -DEMSCRIPTEN=1 -DCMAKE_TOOLCHAIN_FILE=#{$RAKE_ROOT}/CMake/Toolchains/emscripten.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../"
       sh "make -j8"
       sh "make -j8"
     end 
     end 
@@ -91,9 +98,9 @@ end
 
 
 namespace :macosx do
 namespace :macosx do
 
 
-  ARTIFACTS_FOLDER = "#{$RAKE_ROOT}/Artifacts"
-  CMAKE_MACOSX_BUILD_FOLDER = "#{$RAKE_ROOT}/Artifacts/MacOSX_Build"
-  MACOSX_PACKAGE_FOLDER = "#{$RAKE_ROOT}/Artifacts/MacOSX_Package"
+  
+  CMAKE_MACOSX_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/MacOSX_Build"
+  MACOSX_PACKAGE_FOLDER = "#{ARTIFACTS_FOLDER}/MacOSX_Package"
 
 
   task :clean do
   task :clean do
 
 
@@ -128,11 +135,19 @@ namespace :macosx do
 
 
 	end
 	end
 
 
-	task :generate_javascript_bindings => "macosx:cmake" do
+  task :jsbind => "macosx:cmake" do
 
 
     Dir.chdir(CMAKE_MACOSX_BUILD_FOLDER) do
     Dir.chdir(CMAKE_MACOSX_BUILD_FOLDER) do
       sh "make -j8 JSBind"
       sh "make -j8 JSBind"
-      sh "./Source/Tools/JSBind/JSBind #{$RAKE_ROOT}"
+      sh "cp ./Source/Tools/JSBind/JSBind #{BUILD_FOLDER}/JSBind"
+    end
+
+  end 
+
+	task :generate_javascript_bindings => "macosx:jsbind" do
+
+    Dir.chdir(CMAKE_MACOSX_BUILD_FOLDER) do
+      sh "#{BUILD_FOLDER}/JSBind #{$RAKE_ROOT} MACOSX"
     end
     end
 
 
 	end
 	end
@@ -147,14 +162,14 @@ namespace :macosx do
 
 
       # add the generated JS bindings
       # add the generated JS bindings
       sh "./gendocs.sh"
       sh "./gendocs.sh"
-      sh "cp -r out #{$RAKE_ROOT}/Artifacts/Docs"
+      sh "cp -r out #{ARTIFACTS_FOLDER}/Docs"
     end
     end
 
 
   end  
   end  
 
 
   task :generate_examples do
   task :generate_examples do
 
 
-    Dir.chdir("#{$RAKE_ROOT}/Artifacts") do
+    Dir.chdir("#{ARTIFACTS_FOLDER}") do
 
 
       if Dir.exists?("AtomicExamples")
       if Dir.exists?("AtomicExamples")
         sh "rm -rf AtomicExamples"
         sh "rm -rf AtomicExamples"
@@ -169,7 +184,7 @@ namespace :macosx do
       sh "git clone https://github.com/AtomicGameEngine/AtomicExamples"
       sh "git clone https://github.com/AtomicGameEngine/AtomicExamples"
       
       
       Dir.chdir("AtomicExamples") do
       Dir.chdir("AtomicExamples") do
-        sh "git archive master | tar -x -C #{$RAKE_ROOT}/Artifacts/Examples"
+        sh "git archive master | tar -x -C #{ARTIFACTS_FOLDER}/Examples"
       end
       end
 
 
     end
     end
@@ -227,10 +242,10 @@ namespace :package do
       #Examples
       #Examples
       #Example info could possibly go in the AtomicExamples repo
       #Example info could possibly go in the AtomicExamples repo
       EXAMPLEINFO_FOLDER_SRC = "#{EDITORAPPLICATIONDATA_FOLDER_SRC}/ExampleInfo"
       EXAMPLEINFO_FOLDER_SRC = "#{EDITORAPPLICATIONDATA_FOLDER_SRC}/ExampleInfo"
-      EXAMPLES_FOLDER_SRC = "#{$RAKE_ROOT}/Artifacts/Examples"
+      EXAMPLES_FOLDER_SRC = "#{ARTIFACTS_FOLDER}/Examples"
 
 
       #Docs
       #Docs
-      DOCS_FOLDER_SRC = "#{$RAKE_ROOT}/Artifacts/Docs"
+      DOCS_FOLDER_SRC = "#{ARTIFACTS_FOLDER}/Docs"
 
 
       MAC_EDITOR_APP_FOLDER_DST = "#{MACOSX_PACKAGE_FOLDER}/AtomicEditor.app"
       MAC_EDITOR_APP_FOLDER_DST = "#{MACOSX_PACKAGE_FOLDER}/AtomicEditor.app"
       MAC_EDITOR_APP_RESOURCE_FOLDER_DST = "#{MACOSX_PACKAGE_FOLDER}/AtomicEditor.app/Contents/Resources"      
       MAC_EDITOR_APP_RESOURCE_FOLDER_DST = "#{MACOSX_PACKAGE_FOLDER}/AtomicEditor.app/Contents/Resources"      
@@ -414,8 +429,8 @@ end
 
 
 namespace :windows do
 namespace :windows do
 
 
-  CMAKE_WINDOWS_BUILD_FOLDER = "#{$RAKE_ROOT}/Artifacts/Windows_Build"
-  WINDOWS_PACKAGE_FOLDER = "#{$RAKE_ROOT}/Artifacts/Windows_Package"
+  CMAKE_WINDOWS_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Windows_Build"
+  WINDOWS_PACKAGE_FOLDER = "#{ARTIFACTS_FOLDER}/Windows_Package"
 
 
   task :clean do
   task :clean do
 
 
@@ -487,7 +502,7 @@ task :iosdeploy do
       FileUtils.rmtree(CMAKE_IOSDEPLOY_BUILD_FOLDER)          
       FileUtils.rmtree(CMAKE_IOSDEPLOY_BUILD_FOLDER)          
   end
   end
 
 
-  Dir.chdir("#{$RAKE_ROOT}/Artifacts") do
+  Dir.chdir("#{ARTIFACTS_FOLDER}") do
 
 
     sh "git clone https://github.com/AtomicGameEngine/ios-deploy"
     sh "git clone https://github.com/AtomicGameEngine/ios-deploy"
     
     

+ 22 - 4
Source/Atomic/CMakeLists.txt

@@ -19,7 +19,7 @@ file (GLOB NAVIGATION_SOURCE Navigation/*.cpp Navigation/*.h)
 file (GLOB NETWORK_SOURCE Network/*.cpp Network/*.h)
 file (GLOB NETWORK_SOURCE Network/*.cpp Network/*.h)
 file (GLOB ENVIRONMENT_SOURCE Environment/*.cpp Environment/*.h)
 file (GLOB ENVIRONMENT_SOURCE Environment/*.cpp Environment/*.h)
 file (GLOB ATOMIC2D_SOURCE Atomic2D/*.cpp Atomic2D/*.h)
 file (GLOB ATOMIC2D_SOURCE Atomic2D/*.cpp Atomic2D/*.h)
-file (GLOB JAVASCRIPT_SOURCE Javascript/*.cpp Javascript/*.h Javascript/Modules/*.cpp  Javascript/Modules/*.h )
+file (GLOB JAVASCRIPT_SOURCE Javascript/*.cpp Javascript/*.h)
 file (GLOB SCENE_SOURCE Scene/*.cpp Scene/*.h)
 file (GLOB SCENE_SOURCE Scene/*.cpp Scene/*.h)
 file (GLOB UI_SOURCE UI/*.cpp UI/*.h)
 file (GLOB UI_SOURCE UI/*.cpp UI/*.h)
 
 
@@ -35,16 +35,34 @@ else()
 
 
 endif()
 endif()
 
 
-if (APPLE AND NOT IOS)
-    set (PLATFORM_SOURCE IO/MacFileWatcher.mm)
+if (ANDROID)
+  
+  set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "ANDROID")  
+
+endif()
+
+if (APPLE)
+    if (NOT IOS)
+      set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "MACOSX")  
+      set (PLATFORM_SOURCE IO/MacFileWatcher.mm)
+    else()
+      set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "IOS")  
+    endif()
 endif()
 endif()
 
 
+if (EMSCRIPTEN)
+  set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "WEB")  
+endif()
+
+
+file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_SOURCE_FOLDER}/Javascript/Modules/*.cpp)
+
 set (SOURCE_FILES ${CONTAINER_SOURCE} ${CORE_SOURCE} ${ENGINE_SOURCE} ${INPUT_SOURCE}
 set (SOURCE_FILES ${CONTAINER_SOURCE} ${CORE_SOURCE} ${ENGINE_SOURCE} ${INPUT_SOURCE}
                   ${AUDIO_SOURCE} ${IO_SOURCE} ${MATH_SOURCE} 
                   ${AUDIO_SOURCE} ${IO_SOURCE} ${MATH_SOURCE} 
                   ${RESOURCE_SOURCE} ${PHYSICS_SOURCE}
                   ${RESOURCE_SOURCE} ${PHYSICS_SOURCE}
                   ${GRAPHICS_SOURCE} ${GRAPHICS_IMPL_SOURCE}                  
                   ${GRAPHICS_SOURCE} ${GRAPHICS_IMPL_SOURCE}                  
                   ${ATOMIC2D_SOURCE} ${ENVIRONMENT_SOURCE}
                   ${ATOMIC2D_SOURCE} ${ENVIRONMENT_SOURCE}
-                  ${JAVASCRIPT_SOURCE} ${SCENE_SOURCE} ${UI_SOURCE}
+                  ${JAVASCRIPT_SOURCE} ${JAVASCRIPT_BINDINGS_SOURCE} ${SCENE_SOURCE} ${UI_SOURCE}
                   ${PLATFORM_SOURCE})
                   ${PLATFORM_SOURCE})
 
 
 if (NOT EMSCRIPTEN)
 if (NOT EMSCRIPTEN)

+ 24 - 0
Source/Atomic/IO/FileSystem.cpp

@@ -887,6 +887,30 @@ void FileSystem::ScanDirInternal(Vector<String>& result, String path, const Stri
 
 
 #endif
 #endif
 
 
+bool FileSystem::CreateDirs(const String& root, const String& subdirectory)
+{
+    String folder = AddTrailingSlash(GetInternalPath(root));
+    String sub = GetInternalPath(subdirectory);
+    Vector<String> subs = sub.Split('/');
+
+    for (unsigned i = 0; i < subs.Size(); i++)
+    {
+        folder += subs[i];
+        folder += "/";
+
+        if (DirExists(folder))
+            continue;
+
+        CreateDir(folder);
+
+        if (!DirExists(folder))
+            return false;
+    }
+
+    return true;
+
+}
+
 bool FileSystem::CreateDirsRecursive(const String& directoryIn, const String& directoryOut)
 bool FileSystem::CreateDirsRecursive(const String& directoryIn, const String& directoryOut)
 {
 {
     if (!CreateDir(directoryOut))
     if (!CreateDir(directoryOut))

+ 5 - 2
Source/Atomic/IO/FileSystem.h

@@ -101,10 +101,13 @@ public:
 
 
     String GetAppBundleResourceFolder();
     String GetAppBundleResourceFolder();
     /// Remove a directory
     /// Remove a directory
-    bool RemoveDir(const String& directoryIn, bool recursive);
-    bool CreateDirsRecursive(const String& directoryIn, const String& directoryOut);
+    bool RemoveDir(const String& directoryIn, bool recursive);    
+    /// Create directory and all necessary subdirectories below a given root
+    bool CreateDirs(const String& root, const String& subdirectory);
     /// Copy a directory, directoryOut must not exist
     /// Copy a directory, directoryOut must not exist
     bool CopyDir(const String& directoryIn, const String& directoryOut);
     bool CopyDir(const String& directoryIn, const String& directoryOut);
+
+    bool CreateDirsRecursive(const String& directoryIn, const String& directoryOut);
     
     
 private:
 private:
     /// Scan directory, called internally.
     /// Scan directory, called internally.

+ 4 - 4
Source/Tools/JSBind/JSBModule.cpp

@@ -185,9 +185,9 @@ void JSBModule::WriteIncludes(String& source)
 		String headerfile = GetFileNameAndExtension(header->filepath_);
 		String headerfile = GetFileNameAndExtension(header->filepath_);
 
 
 #ifdef WIN32
 #ifdef WIN32
-        headerPath.Replace(JSBind::ROOT_FOLDER + "/Source/Atomic", "../..");
+        headerPath.Replace(JSBind::ROOT_FOLDER + "/Source/Atomic/", "");
 #else
 #else
-        headerPath.Replace(JSBind::ROOT_FOLDER + "/Source/Atomic", "../..");
+        headerPath.Replace(JSBind::ROOT_FOLDER + "/Source/Atomic/", "");
 #endif        
 #endif        
         source.AppendWithFormat("#include \"%s%s\"\n", headerPath.CString(), headerfile.CString());
         source.AppendWithFormat("#include \"%s%s\"\n", headerPath.CString(), headerfile.CString());
 
 
@@ -208,8 +208,8 @@ void JSBModule::EmitSource(const String& filepath)
     source_ = "// This file was autogenerated by JSBind, changes will be lost\n";
     source_ = "// This file was autogenerated by JSBind, changes will be lost\n";
 	source_ += "#include \"Precompiled.h\"\n";
 	source_ += "#include \"Precompiled.h\"\n";
     source_ += "#include <Duktape/duktape.h>\n";    
     source_ += "#include <Duktape/duktape.h>\n";    
-    source_ += "#include \"../../Javascript/JSVM.h\"\n";
-    source_ += "#include \"../../Javascript/JSAPI.h\"\n";
+    source_ += "#include \"Javascript/JSVM.h\"\n";
+    source_ += "#include \"Javascript/JSAPI.h\"\n";
 
 
     WriteIncludes(source_);
     WriteIncludes(source_);
 
 

+ 3 - 9
Source/Tools/JSBind/JSBind.cpp

@@ -35,19 +35,13 @@ void Run(const Vector<String>& arguments)
 {
 {
     JSBind::Initialize();
     JSBind::Initialize();
 
 
-    if (arguments.Size() < 1)
+    if (arguments.Size() < 2)
     {
     {
-        ErrorExit("Usage: JSBind absolute_path_to_atomic_runtime_source_tree [optional] platform");
+        ErrorExit("Usage: JSBind absolute_path_to_atomic_runtime_source_tree platform");
     }
     }
 
 
     JSBind::ROOT_FOLDER = arguments[0];
     JSBind::ROOT_FOLDER = arguments[0];
-
-    if (arguments.Size() > 1)
-        JSBind::PLATFORM = arguments[1];
-
-    if (JSBind::PLATFORM.Length() && JSBind::PLATFORM != "WEB")
-        ErrorExit("Platform argument only supports WEB at this time");
-
+    JSBind::PLATFORM = arguments[1];
 
 
     if (!JSBind::fileSystem_->DirExists(JSBind::ROOT_FOLDER + "/Source/Tools/JSBind"))
     if (!JSBind::fileSystem_->DirExists(JSBind::ROOT_FOLDER + "/Source/Tools/JSBind"))
     {
     {

+ 16 - 5
Source/Tools/JSBind/JSBindings.cpp

@@ -38,11 +38,22 @@ void JSBindings::ParseHeaders()
 
 
     JSBClass::Process();
     JSBClass::Process();
 
 
-    //JSBClass::DumpAllClasses();
 
 
-    EmitJSModules(JSBind::ROOT_FOLDER + "/Source/Atomic/Javascript/Modules");
 
 
-    if (JSBind::PLATFORM != "WEB")
+    String modulesFolder = "Build/Source/Generated/" + JSBind::PLATFORM + "/Javascript/Modules";
+
+    String outputFolder = JSBind::ROOT_FOLDER + "/" + modulesFolder;
+
+    if (!JSBind::fileSystem_->CreateDirs(JSBind::ROOT_FOLDER, modulesFolder)
+            || !JSBind::fileSystem_->DirExists(outputFolder))
+    {
+        String error = "Unable to create bindings output folder: " + outputFolder;
+        ErrorExit(error.CString());
+    }
+
+    EmitJSModules(outputFolder);
+
+    if (JSBind::PLATFORM == "MACOSX")
     {
     {
         JSBTypeScript* ts = new JSBTypeScript();
         JSBTypeScript* ts = new JSBTypeScript();
         ts->Emit(JSBind::ROOT_FOLDER + "/Bin/Atomic.d.ts");
         ts->Emit(JSBind::ROOT_FOLDER + "/Bin/Atomic.d.ts");
@@ -60,8 +71,8 @@ void JSBindings::EmitJSModules(const String& rootpath)
     String source = "// This file was autogenerated by JSBind, changes will be lost\n\n";
     String source = "// This file was autogenerated by JSBind, changes will be lost\n\n";
 	source += "#include \"Precompiled.h\"\n";
 	source += "#include \"Precompiled.h\"\n";
     source += "#include <Duktape/duktape.h>\n";    
     source += "#include <Duktape/duktape.h>\n";    
-    source += "#include \"../../Javascript/JSVM.h\"\n";
-    source += "#include \"../../Javascript/JSAPI.h\"\n";
+    source += "#include \"Javascript/JSVM.h\"\n";
+    source += "#include \"Javascript/JSAPI.h\"\n";
 
 
     source += "\n\nnamespace Atomic\n{\n";
     source += "\n\nnamespace Atomic\n{\n";
 
 

+ 1 - 1
Source/Tools/JSBind/modules/Atomic2D.json

@@ -1,7 +1,7 @@
 {
 {
 	"name" : "Atomic2D",
 	"name" : "Atomic2D",
 	"sources" : ["Atomic2D"],
 	"sources" : ["Atomic2D"],
-	"includes" : ["../../Graphics/Texture2D.h", "../../Scene/Node.h", "../../Graphics/Material.h"],
+	"includes" : ["Graphics/Texture2D.h", "Scene/Node.h", "Graphics/Material.h"],
 	"classes" : [ "SpriteSheet2D", "Sprite2D", "Drawable2D", "StaticSprite2D", "AnimationSet2D", "AnimatedSprite2D",
 	"classes" : [ "SpriteSheet2D", "Sprite2D", "Drawable2D", "StaticSprite2D", "AnimationSet2D", "AnimatedSprite2D",
 				 "CollisionShape2D", "CollisionBox2D", "RigidBody2D", "Animation2D", "CollisionChain2D",
 				 "CollisionShape2D", "CollisionBox2D", "RigidBody2D", "Animation2D", "CollisionChain2D",
 				 "CollisionCircle2D", "CollisionEdge2D", "CollisionPolygon2D",
 				 "CollisionCircle2D", "CollisionEdge2D", "CollisionPolygon2D",

+ 1 - 1
Source/Tools/JSBind/modules/Engine.json

@@ -1,6 +1,6 @@
 {
 {
 	"name" : "Engine",
 	"name" : "Engine",
 	"sources" : ["Engine"],
 	"sources" : ["Engine"],
-	"includes" : ["../../UI/Text.h", "../../UI/Button.h", "../../UI/LineEdit.h"],
+	"includes" : ["UI/Text.h", "UI/Button.h", "UI/LineEdit.h"],
 	"classes" : ["Engine", "DebugHud", "Console"]
 	"classes" : ["Engine", "DebugHud", "Console"]
 }
 }

+ 1 - 1
Source/Tools/JSBind/modules/Graphics.json

@@ -1,7 +1,7 @@
 {
 {
 	"name" : "Graphics",
 	"name" : "Graphics",
 	"sources" : ["Graphics"],
 	"sources" : ["Graphics"],
-	"includes" : ["../../Scene/Scene.h", "../../Graphics/Animation.h", "../../Graphics/OcclusionBuffer.h", "../../Scene/ValueAnimation.h"],
+	"includes" : ["Scene/Scene.h", "Graphics/Animation.h", "Graphics/OcclusionBuffer.h", "Scene/ValueAnimation.h"],
 	"classes" : ["Graphics", "Texture", "Texture2D", "Model", "Material", "Drawable", 
 	"classes" : ["Graphics", "Texture", "Texture2D", "Model", "Material", "Drawable", 
 				 "Viewport", "Renderer", "Octree", "Zone", "StaticModel", "Camera", "Light", "RenderPath",
 				 "Viewport", "Renderer", "Octree", "Zone", "StaticModel", "Camera", "Light", "RenderPath",
 				 "Animation", "AnimatedModel", "AnimationController", "AnimationState", "BillboardSet", "CustomGeometry",
 				 "Animation", "AnimatedModel", "AnimationController", "AnimationState", "BillboardSet", "CustomGeometry",

+ 1 - 1
Source/Tools/JSBind/modules/Navigation.json

@@ -1,6 +1,6 @@
 {
 {
 	"name" : "Navigation",
 	"name" : "Navigation",
 	"sources" : ["Navigation"],
 	"sources" : ["Navigation"],
-	"includes" : ["../../Scene/Node.h"],
+	"includes" : ["Scene/Node.h"],
 	"classes" : ["Navigable", "NavigationMesh", "OffMeshConnection"] 
 	"classes" : ["Navigable", "NavigationMesh", "OffMeshConnection"] 
 }
 }

+ 1 - 1
Source/Tools/JSBind/modules/Network.json

@@ -1,7 +1,7 @@
 {
 {
 	"name" : "Network",
 	"name" : "Network",
 	"sources" : ["Network"],
 	"sources" : ["Network"],
-	"includes" : ["../../Network/Protocol.h", "../../Scene/Scene.h"],
+	"includes" : ["Network/Protocol.h", "Scene/Scene.h"],
 	"classes" : ["Network", "NetworkPriority"]
 	"classes" : ["Network", "NetworkPriority"]
 
 
 
 

+ 1 - 1
Source/Tools/JSBind/modules/Physics.json

@@ -1,7 +1,7 @@
 {
 {
 	"name" : "Physics",
 	"name" : "Physics",
 	"sources" : ["Physics"],
 	"sources" : ["Physics"],
-	"includes" : ["../../Graphics/Model.h"],
+	"includes" : ["Graphics/Model.h"],
 	"classes" : ["CollisionShape", "Constraint", "PhysicsWorld", "RigidBody"],
 	"classes" : ["CollisionShape", "Constraint", "PhysicsWorld", "RigidBody"],
  	"overloads" : {
  	"overloads" : {
 		"RigidBody" : {
 		"RigidBody" : {

+ 1 - 1
Source/Tools/JSBind/modules/Scene.json

@@ -1,7 +1,7 @@
 {
 {
 	"name" : "Scene",
 	"name" : "Scene",
 	"sources" : ["Scene"],
 	"sources" : ["Scene"],
-	"includes" : ["../../Scene/LogicComponent.h", "../../Network/Connection.h"],
+	"includes" : ["Scene/LogicComponent.h", "Network/Connection.h"],
 	"classes" : ["Animatable", "Node", "Scene", "Component", "Serializable", 
 	"classes" : ["Animatable", "Node", "Scene", "Component", "Serializable", 
 				 "ObjectAnimation", "SmoothedTransform", "SplinePath",
 				 "ObjectAnimation", "SmoothedTransform", "SplinePath",
 				 "ValueAnimation", "ValueAnimationInfo"],
 				 "ValueAnimation", "ValueAnimationInfo"],

+ 1 - 1
Source/Tools/JSBind/modules/UI.json

@@ -1,7 +1,7 @@
 {
 {
 	"name" : "UI",
 	"name" : "UI",
 	"sources" : ["UI"],
 	"sources" : ["UI"],
-	"includes" : ["../../Graphics/Material.h", "../../Scene/Node.h", "../../Scene/Scene.h", "../../Graphics/Texture2D.h"],
+	"includes" : ["Graphics/Material.h", "Scene/Node.h", "Scene/Scene.h", "Graphics/Texture2D.h"],
 	"classes" : ["Font", "UI", "UIElement", "Text", "BorderImage", "Button", "CheckBox",
 	"classes" : ["Font", "UI", "UIElement", "Text", "BorderImage", "Button", "CheckBox",
 			     "Cursor", "DropDownList", "Menu", "FileSelector", "FontFace", "FontFaceBitmap", 
 			     "Cursor", "DropDownList", "Menu", "FileSelector", "FontFace", "FontFaceBitmap", 
 			     "FontFaceFreeType", "LineEdit", "ListView", "ScrollView", "MessageBox",
 			     "FontFaceFreeType", "LineEdit", "ListView", "ScrollView", "MessageBox",