Browse Source

Updates for JSBind

Josh Engebretson 11 years ago
parent
commit
d3aa522f59

+ 1 - 1
Rakefile

@@ -197,7 +197,7 @@ namespace :build_windows do
 
     Dir.chdir(CMAKE_WINDOWS_BUILD_FOLDER) do
       sh "nmake JSBind"
-      sh "./Source/Tools/JSBind/JSBind.exe"
+      sh "./Source/Tools/JSBind/JSBind.exe #{$RAKE_ROOT}"
     end
 
 	end

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


+ 16 - 10
Source/Tools/JSBind/JSBind.cpp

@@ -15,12 +15,7 @@ using namespace Atomic;
 SharedPtr<Context> JSBind::context_;
 SharedPtr<FileSystem> JSBind::fileSystem_;
 SharedPtr<Engine> JSBind::engine_;
-
-#ifdef WIN32
-String JSBind::ROOT_FOLDER("C:/Dev/atomic/AtomicRuntime");
-#else
-String JSBind::ROOT_FOLDER("/Users/josh/Dev/atomic/AtomicRuntime");
-#endif
+String JSBind::ROOT_FOLDER;
 
 void JSBind::Initialize()
 {
@@ -30,9 +25,24 @@ void JSBind::Initialize()
 
 }
 
+#include <stdio.h>
+
 void Run(const Vector<String>& arguments)
 {
     JSBind::Initialize();
+
+    if (arguments.Size() < 1)
+    {
+        ErrorExit("Usage: JSBind absolute_path_to_atomic_runtime_source_tree");
+    }
+
+    JSBind::ROOT_FOLDER = arguments[0];
+
+    if (!JSBind::fileSystem_->DirExists(JSBind::ROOT_FOLDER + "/Source/Tools/JSBind"))
+    {
+        ErrorExit("The given Atomic Runtime source tree is invalid");
+    }
+
     VariantMap engineParameters;
     engineParameters["Headless"] = true;
     engineParameters["WorkerThreads"] = false;
@@ -52,11 +62,7 @@ int main(int argc, char** argv)
 {
     Vector<String> arguments;
 
-#ifdef WIN32
-    arguments = ParseArguments(GetCommandLineW());
-#else
     arguments = ParseArguments(argc, argv);
-#endif
 
     Run(arguments);
     return 0;

+ 3 - 11
Source/Tools/JSBind/JSBindings.cpp

@@ -36,19 +36,11 @@ void JSBindings::ParseHeaders()
 
     //JSBClass::DumpAllClasses();
 
-#ifdef WIN32
-    EmitJSModules("C:\\Dev\\atomic\\AtomicRuntime\\Source\\Atomic\\Javascript\\Modules");
-#else
-	EmitJSModules("/Users/josh/Dev/atomic/AtomicRuntime/Source/Atomic/Javascript/Modules");
-#endif
-    JSBTypeScript* ts = new JSBTypeScript();
+    EmitJSModules(JSBind::ROOT_FOLDER + "/Source/Atomic/Javascript/Modules");
 
-#ifdef WIN32
-    ts->Emit("C:\\Dev\\atomic\\AtomicRuntime\\Bin\\Atomic.d.ts");
-#else
-	ts->Emit("/Users/josh/Dev/atomic/AtomicRuntime/Bin/Atomic.d.ts");	
-#endif
+    JSBTypeScript* ts = new JSBTypeScript();
 
+    ts->Emit(JSBind::ROOT_FOLDER + "/Bin/Atomic.d.ts");
 
 }