Browse Source

Moving Javascript to its own library (AtomicJS)

Josh Engebretson 10 years ago
parent
commit
828ca6763b
40 changed files with 196 additions and 162 deletions
  1. 5 0
      CMakeLists.txt
  2. 2 0
      Source/Atomic/Atomic.h
  3. 4 13
      Source/Atomic/CMakeLists.txt
  4. 1 1
      Source/AtomicEditor/CMakeLists.txt
  5. 2 3
      Source/AtomicEditor/Source/AEApplication.cpp
  6. 2 1
      Source/AtomicEditor/Source/AEEditor.cpp
  7. 5 3
      Source/AtomicEditor/Source/Player/AEPlayer.cpp
  8. 2 2
      Source/AtomicEditor/Source/UI/UIConsoleWidget.cpp
  9. 1 1
      Source/AtomicEditor/Source/UI/UIResourceFrame.cpp
  10. 43 0
      Source/AtomicJS/CMakeLists.txt
  11. 2 3
      Source/AtomicJS/Javascript/JSAPI.cpp
  12. 0 0
      Source/AtomicJS/Javascript/JSAPI.h
  13. 23 24
      Source/AtomicJS/Javascript/JSAtomic.cpp
  14. 0 0
      Source/AtomicJS/Javascript/JSAtomic.h
  15. 19 20
      Source/AtomicJS/Javascript/JSAtomicGame.cpp
  16. 0 0
      Source/AtomicJS/Javascript/JSAtomicGame.h
  17. 21 23
      Source/AtomicJS/Javascript/JSComponent.cpp
  18. 1 1
      Source/AtomicJS/Javascript/JSComponent.h
  19. 1 1
      Source/AtomicJS/Javascript/JSEvents.h
  20. 3 4
      Source/AtomicJS/Javascript/JSGraphics.cpp
  21. 0 0
      Source/AtomicJS/Javascript/JSGraphics.h
  22. 8 10
      Source/AtomicJS/Javascript/JSScene.cpp
  23. 0 0
      Source/AtomicJS/Javascript/JSScene.h
  24. 10 12
      Source/AtomicJS/Javascript/JSVM.cpp
  25. 5 5
      Source/AtomicJS/Javascript/JSVM.h
  26. 12 13
      Source/AtomicJS/Javascript/Javascript.cpp
  27. 3 3
      Source/AtomicJS/Javascript/Javascript.h
  28. 1 1
      Source/AtomicPlayer/AtomicPlayer.cpp
  29. 1 1
      Source/AtomicPlayer/CMakeLists.txt
  30. 1 0
      Source/CMakeLists.txt
  31. 8 6
      Source/Tools/JSBind/JSBModule.cpp
  32. 2 3
      Source/Tools/JSBind/JSBindings.cpp
  33. 1 1
      Source/Tools/JSBind/modules/Atomic2D.json
  34. 1 1
      Source/Tools/JSBind/modules/Engine.json
  35. 1 1
      Source/Tools/JSBind/modules/Graphics.json
  36. 1 1
      Source/Tools/JSBind/modules/Navigation.json
  37. 1 1
      Source/Tools/JSBind/modules/Network.json
  38. 1 1
      Source/Tools/JSBind/modules/Physics.json
  39. 1 1
      Source/Tools/JSBind/modules/Scene.json
  40. 1 1
      Source/Tools/JSBind/modules/UI.json

+ 5 - 0
CMakeLists.txt

@@ -7,6 +7,7 @@ set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Modules)
 
 
 add_definitions( -DATOMIC_STATIC_DEFINE -DATOMIC_LOGGING -DATOMIC_PHYSICS -DATOMIC_ATOMIC2D )
 add_definitions( -DATOMIC_STATIC_DEFINE -DATOMIC_LOGGING -DATOMIC_PHYSICS -DATOMIC_ATOMIC2D )
 
 
+
 # this is here as QtCreator is having trouble picking up #include <Atomic/*> without it
 # this is here as QtCreator is having trouble picking up #include <Atomic/*> without it
 include_directories(${CMAKE_SOURCE_DIR}/Source ${CMAKE_SOURCE_DIR}/Source/AtomicEditor/Source)
 include_directories(${CMAKE_SOURCE_DIR}/Source ${CMAKE_SOURCE_DIR}/Source/AtomicEditor/Source)
 
 
@@ -17,6 +18,10 @@ if (NOT EMSCRIPTEN)
     set (ATOMIC_LINK_LIBRARIES ${ATOMIC_LINK_LIBRARIES} SDL Civetweb Recast Detour kNet )
     set (ATOMIC_LINK_LIBRARIES ${ATOMIC_LINK_LIBRARIES} SDL Civetweb Recast Detour kNet )
 endif()
 endif()
 
 
+if (NOT MSVC)
+    add_definitions(-DATOMIC_API=)
+endif()
+
 if (MSVC)
 if (MSVC)
 
 
     include(AtomicWindows)
     include(AtomicWindows)

+ 2 - 0
Source/Atomic/Atomic.h

@@ -47,7 +47,9 @@
 #else
 #else
 
 
 #ifdef ATOMIC_STATIC_DEFINE
 #ifdef ATOMIC_STATIC_DEFINE
+#ifndef ATOMIC_API
 #  define ATOMIC_API
 #  define ATOMIC_API
+#endif
 #  define ATOMIC_NO_EXPORT
 #  define ATOMIC_NO_EXPORT
 #else
 #else
 #  ifndef ATOMIC_API
 #  ifndef ATOMIC_API

+ 4 - 13
Source/Atomic/CMakeLists.txt

@@ -19,14 +19,12 @@ 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)
 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)
 
 
 file (GLOB GRAPHICS_SOURCE Graphics/*.cpp Graphics/*.h)
 file (GLOB GRAPHICS_SOURCE Graphics/*.cpp Graphics/*.h)
 
 
 if (MSVC)
 if (MSVC)
-    set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "WINDOWS")  
     file (GLOB GRAPHICS_IMPL_SOURCE Graphics/Direct3D9/*.cpp Graphics/Direct3D9/*.h)
     file (GLOB GRAPHICS_IMPL_SOURCE Graphics/Direct3D9/*.cpp Graphics/Direct3D9/*.h)
 else()
 else()
 
 
@@ -38,32 +36,25 @@ endif()
 
 
 if (ANDROID)
 if (ANDROID)
   
   
-  set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "ANDROID")  
-
 endif()
 endif()
 
 
 if (APPLE)
 if (APPLE)
-    if (NOT IOS)
-      set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "MACOSX")  
+    if (NOT IOS)      
       set (PLATFORM_SOURCE IO/MacFileWatcher.mm)
       set (PLATFORM_SOURCE IO/MacFileWatcher.mm)
-    else()
-      set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "IOS")  
+    else()      
     endif()
     endif()
 endif()
 endif()
 
 
 if (EMSCRIPTEN)
 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)
+endif()
 
 
 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} ${JAVASCRIPT_BINDINGS_SOURCE} ${SCENE_SOURCE} ${UI_SOURCE}
+                  ${SCENE_SOURCE} ${UI_SOURCE}
                   ${PLATFORM_SOURCE})
                   ${PLATFORM_SOURCE})
 
 
 if (NOT EMSCRIPTEN)
 if (NOT EMSCRIPTEN)

+ 1 - 1
Source/AtomicEditor/CMakeLists.txt

@@ -31,7 +31,7 @@ add_subdirectory(Vendor)
 
 
 add_executable(AtomicEditor ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
 add_executable(AtomicEditor ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
 
 
-target_link_libraries(AtomicEditor ${ATOMIC_LINK_LIBRARIES} Poco)
+target_link_libraries(AtomicEditor ${ATOMIC_LINK_LIBRARIES} AtomicJS Poco)
 
 
 if (APPLE)
 if (APPLE)
     
     

+ 2 - 3
Source/AtomicEditor/Source/AEApplication.cpp

@@ -20,9 +20,6 @@
 #include <Atomic/Input/Input.h>
 #include <Atomic/Input/Input.h>
 
 
 #include <Atomic/UI/TBUI.h>
 #include <Atomic/UI/TBUI.h>
-
-#include <Atomic/Javascript/Javascript.h>
-
 #include <Atomic/Environment/Environment.h>
 #include <Atomic/Environment/Environment.h>
 #include <Atomic/Graphics/Renderer.h>
 #include <Atomic/Graphics/Renderer.h>
 
 
@@ -45,6 +42,8 @@
 
 
 #include "Tools/External/AEExternalTooling.h"
 #include "Tools/External/AEExternalTooling.h"
 
 
+#include <AtomicJS/Javascript/Javascript.h>
+
 DEFINE_APPLICATION_MAIN(AtomicEditor::AEApplication);
 DEFINE_APPLICATION_MAIN(AtomicEditor::AEApplication);
 
 
 namespace AtomicEditor
 namespace AtomicEditor

+ 2 - 1
Source/AtomicEditor/Source/AEEditor.cpp

@@ -9,9 +9,10 @@
 #include <Atomic/Resource/ResourceCache.h>
 #include <Atomic/Resource/ResourceCache.h>
 #include <Atomic/Input/Input.h>
 #include <Atomic/Input/Input.h>
 #include <Atomic/UI/TBUI.h>
 #include <Atomic/UI/TBUI.h>
-#include <Atomic/Javascript/Javascript.h>
 #include <Atomic/Core/CoreEvents.h>
 #include <Atomic/Core/CoreEvents.h>
 
 
+#include <AtomicJS/Javascript/Javascript.h>
+
 #include "AEEditor.h"
 #include "AEEditor.h"
 
 
 #include "AEPreferences.h"
 #include "AEPreferences.h"

+ 5 - 3
Source/AtomicEditor/Source/Player/AEPlayer.cpp

@@ -8,12 +8,14 @@
 #include <Atomic/IO/FileSystem.h>
 #include <Atomic/IO/FileSystem.h>
 #include <Atomic/Input/Input.h>
 #include <Atomic/Input/Input.h>
 #include <Atomic/Resource/ResourceCache.h>
 #include <Atomic/Resource/ResourceCache.h>
-#include <Atomic/Javascript/Javascript.h>
-#include <Atomic/Javascript/JSVM.h>
-#include <Atomic/Javascript/JSEvents.h>
 #include <Atomic/UI/TBUI.h>
 #include <Atomic/UI/TBUI.h>
 #include <Atomic/UI/UI.h>
 #include <Atomic/UI/UI.h>
 
 
+#include <AtomicJS/Javascript/Javascript.h>
+#include <AtomicJS/Javascript/JSVM.h>
+#include <AtomicJS/Javascript/JSEvents.h>
+
+
 #include "AEPlayer.h"
 #include "AEPlayer.h"
 #include "AEEvents.h"
 #include "AEEvents.h"
 #include "AEEditor.h"
 #include "AEEditor.h"

+ 2 - 2
Source/AtomicEditor/Source/UI/UIConsoleWidget.cpp

@@ -15,10 +15,10 @@
 #include "UIMainFrame.h"
 #include "UIMainFrame.h"
 #include "UIResourceFrame.h"
 #include "UIResourceFrame.h"
 
 
-#include <Atomic/Javascript/JSEvents.h>
-
 #include <Atomic/IO/FileSystem.h>
 #include <Atomic/IO/FileSystem.h>
 
 
+#include <AtomicJS/Javascript/JSEvents.h>
+
 #include "../AEJavascript.h"
 #include "../AEJavascript.h"
 #include "../AEEvents.h"
 #include "../AEEvents.h"
 
 

+ 1 - 1
Source/AtomicEditor/Source/UI/UIResourceFrame.cpp

@@ -11,7 +11,7 @@
 #include <Atomic/IO/FileSystem.h>
 #include <Atomic/IO/FileSystem.h>
 #include <Atomic/Resource/ResourceCache.h>
 #include <Atomic/Resource/ResourceCache.h>
 #include <Atomic/Core/CoreEvents.h>
 #include <Atomic/Core/CoreEvents.h>
-#include <Atomic/Javascript/JSEvents.h>
+#include <AtomicJS/Javascript/JSEvents.h>
 
 
 #include "UIResourceFrame.h"
 #include "UIResourceFrame.h"
 
 

+ 43 - 0
Source/AtomicJS/CMakeLists.txt

@@ -0,0 +1,43 @@
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}
+                    ${CMAKE_SOURCE_DIR}/Source/ThirdParty
+                    ${CMAKE_SOURCE_DIR}/Source/ThirdParty/rapidjson/include
+                    ${CMAKE_SOURCE_DIR}/Source/ThirdParty/kNet/include
+                    ${CMAKE_SOURCE_DIR}/Source/ThirdParty/FreeType/include
+                    ${CMAKE_SOURCE_DIR}/Source/ThirdParty/Box2D)
+
+file (GLOB JAVASCRIPT_SOURCE Javascript/*.cpp Javascript/*.h)
+
+
+if (MSVC)
+    set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "WINDOWS")  
+else()
+    # for kNet
+    add_definitions (-DUNIX)
+endif()
+
+if (ANDROID)
+  
+  set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "ANDROID")  
+
+endif()
+
+if (APPLE)
+    if (NOT IOS)
+      set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "MACOSX")  
+    else()
+      set (JAVASCRIPT_BINDINGS_SOURCE_FOLDER "IOS")  
+    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 ${JAVASCRIPT_SOURCE} ${JAVASCRIPT_BINDINGS_SOURCE} )
+
+add_library(AtomicJS ${SOURCE_FILES})
+

+ 2 - 3
Source/Atomic/Javascript/JSAPI.cpp → Source/AtomicJS/Javascript/JSAPI.cpp

@@ -2,9 +2,8 @@
 // Please see LICENSE.md in repository root for license information
 // Please see LICENSE.md in repository root for license information
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 
-#include "Precompiled.h"
-#include "../Javascript/JSAPI.h"
-#include "../Javascript/JSVM.h"
+#include "JSAPI.h"
+#include "JSVM.h"
 
 
 /*
 /*
 
 

+ 0 - 0
Source/Atomic/Javascript/JSAPI.h → Source/AtomicJS/Javascript/JSAPI.h


+ 23 - 24
Source/Atomic/Javascript/JSAtomic.cpp → Source/AtomicJS/Javascript/JSAtomic.cpp

@@ -2,30 +2,29 @@
 // Please see LICENSE.md in repository root for license information
 // Please see LICENSE.md in repository root for license information
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 
-#include "Precompiled.h"
-#include "../Core/ProcessUtils.h"
-#include "../IO/FileSystem.h"
-#include "../IO/Log.h"
-#include "../Resource/ResourceCache.h"
-#include "../Input/Input.h"
-#include "../Graphics/Renderer.h"
-#include "../Graphics/Graphics.h"
-
-#include "../UI/UI.h"
-
-#include "../Engine/Engine.h"
-
-#include "../Javascript/JSEvents.h"
-#include "../Javascript/JSVM.h"
-#include "../Javascript/JSComponent.h"
-#include "../Javascript/JSGraphics.h"
-#include "../Javascript/JSScene.h"
-
-#include "../Javascript/JSAtomicGame.h"
-#include "../Javascript/JSAtomic.h"
-
-#include "../Scene/Scene.h"
-#include "../Environment/ProcSky.h"
+#include <Atomic/Core/ProcessUtils.h>
+#include <Atomic/IO/FileSystem.h>
+#include <Atomic/IO/Log.h>
+#include <Atomic/Resource/ResourceCache.h>
+#include <Atomic/Input/Input.h>
+#include <Atomic/Graphics/Renderer.h>
+#include <Atomic/Graphics/Graphics.h>
+
+#include <Atomic/UI/UI.h>
+
+#include <Atomic/Engine/Engine.h>
+
+#include "JSEvents.h"
+#include "JSVM.h"
+#include "JSComponent.h"
+#include "JSGraphics.h"
+#include "JSScene.h"
+
+#include "JSAtomicGame.h"
+#include "JSAtomic.h"
+
+#include <Atomic/Scene/Scene.h>
+#include <Atomic/Environment/ProcSky.h>
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 0 - 0
Source/Atomic/Javascript/JSAtomic.h → Source/AtomicJS/Javascript/JSAtomic.h


+ 19 - 20
Source/Atomic/Javascript/JSAtomicGame.cpp → Source/AtomicJS/Javascript/JSAtomicGame.cpp

@@ -2,26 +2,25 @@
 // Please see LICENSE.md in repository root for license information
 // Please see LICENSE.md in repository root for license information
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 
-#include "Precompiled.h"
-#include "../IO/FileSystem.h"
-#include "../IO/Log.h"
-#include "../Resource/ResourceCache.h"
-#include "../Input/Input.h"
-#include "../Graphics/Renderer.h"
-#include "../Graphics/Graphics.h"
-
-#include "../UI/UI.h"
-
-#include "../Engine/Engine.h"
-
-#include "../Javascript/JSEvents.h"
-#include "../Javascript/JSVM.h"
-#include "../Javascript/JSGraphics.h"
-#include "../Javascript/JSScene.h"
-#include "../Javascript/JSAtomicGame.h"
-
-#include "../Scene/Scene.h"
-#include "../Environment/ProcSky.h"
+#include <Atomic/IO/FileSystem.h>
+#include <Atomic/IO/Log.h>
+#include <Atomic/Resource/ResourceCache.h>
+#include <Atomic/Input/Input.h>
+#include <Atomic/Graphics/Renderer.h>
+#include <Atomic/Graphics/Graphics.h>
+
+#include <Atomic/UI/UI.h>
+
+#include <Atomic/Engine/Engine.h>
+
+#include "JSEvents.h"
+#include "JSVM.h"
+#include "JSGraphics.h"
+#include "JSScene.h"
+#include "JSAtomicGame.h"
+
+#include <Atomic/Scene/Scene.h>
+#include <Atomic/Environment/ProcSky.h>
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 0 - 0
Source/Atomic/Javascript/JSAtomicGame.h → Source/AtomicJS/Javascript/JSAtomicGame.h


+ 21 - 23
Source/Atomic/Javascript/JSComponent.cpp → Source/AtomicJS/Javascript/JSComponent.cpp

@@ -3,31 +3,29 @@
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 
 
 
-#include "Precompiled.h"
-#include "../Core/Context.h"
-#include "../IO/Log.h"
+#include <Atomic/Core/Context.h>
+#include <Atomic/IO/Log.h>
 #ifdef ATOMIC_PHYSICS
 #ifdef ATOMIC_PHYSICS
-#include "../Physics/PhysicsEvents.h"
-#include "../Physics/PhysicsWorld.h"
+#include <Atomic/Physics/PhysicsEvents.h>
+#include <Atomic/Physics/PhysicsWorld.h>
 #endif
 #endif
-#include "../Core/Profiler.h"
-#include "../IO/MemoryBuffer.h"
-#include "../Resource/ResourceCache.h"
-#include "../Resource/ResourceEvents.h"
-#include "../Scene/Scene.h"
-#include "../Scene/SceneEvents.h"
-#include "../Javascript/Javascript.h"
-
-#include "../Atomic2D/PhysicsEvents2D.h"
-#include "../Atomic2D/PhysicsWorld2D.h"
-#include "../Atomic2D/RigidBody2D.h"
-
-#include "../Javascript/JSEvents.h"
-#include "../Javascript/JSComponent.h"
-#include "../Javascript/JSAPI.h"
-
-#include "../UI/UIEvents.h"
-#include "../UI/UIElement.h"
+
+#include <Atomic/Core/Profiler.h>
+#include <Atomic/IO/MemoryBuffer.h>
+#include <Atomic/Resource/ResourceCache.h>
+#include <Atomic/Resource/ResourceEvents.h>
+#include <Atomic/Scene/Scene.h>
+#include <Atomic/Scene/SceneEvents.h>
+#include <Atomic/Atomic2D/PhysicsEvents2D.h>
+#include <Atomic/Atomic2D/PhysicsWorld2D.h>
+#include <Atomic/Atomic2D/RigidBody2D.h>
+#include <Atomic/UI/UIEvents.h>
+#include <Atomic/UI/UIElement.h>
+
+#include "Javascript.h"
+#include "JSEvents.h"
+#include "JSComponent.h"
+#include "JSAPI.h"
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 1 - 1
Source/Atomic/Javascript/JSComponent.h → Source/AtomicJS/Javascript/JSComponent.h

@@ -4,7 +4,7 @@
 
 
 #pragma once
 #pragma once
 
 
-#include "../Scene/Component.h"
+#include <Atomic/Scene/Component.h>
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 1 - 1
Source/Atomic/Javascript/JSEvents.h → Source/AtomicJS/Javascript/JSEvents.h

@@ -4,7 +4,7 @@
 
 
 #pragma once
 #pragma once
 
 
-#include "../Core/Object.h"
+#include <Atomic/Core/Object.h>
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 3 - 4
Source/Atomic/Javascript/JSGraphics.cpp → Source/AtomicJS/Javascript/JSGraphics.cpp

@@ -2,10 +2,9 @@
 // Please see LICENSE.md in repository root for license information
 // Please see LICENSE.md in repository root for license information
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 
-#include "Precompiled.h"
-#include "../Javascript/JSGraphics.h"
-#include "../Javascript/JSVM.h"
-#include "../Graphics/Light.h"
+#include "JSGraphics.h"
+#include "JSVM.h"
+#include <Atomic/Graphics/Light.h>
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 0 - 0
Source/Atomic/Javascript/JSGraphics.h → Source/AtomicJS/Javascript/JSGraphics.h


+ 8 - 10
Source/Atomic/Javascript/JSScene.cpp → Source/AtomicJS/Javascript/JSScene.cpp

@@ -2,16 +2,14 @@
 // Please see LICENSE.md in repository root for license information
 // Please see LICENSE.md in repository root for license information
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 
-#include "Precompiled.h"
-
-#include "../Resource/ResourceCache.h"
-#include "../IO/File.h"
-
-#include "../Javascript/JSScene.h"
-#include "../Javascript/JSComponent.h"
-#include "../Javascript/JSVM.h"
-#include "../Scene/Node.h"
-#include "../Scene/Scene.h"
+#include <Atomic/Resource/ResourceCache.h>
+#include <Atomic/IO/File.h>
+#include <Atomic/Scene/Node.h>
+#include <Atomic/Scene/Scene.h>
+
+#include "JSScene.h"
+#include "JSComponent.h"
+#include "JSVM.h"
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 0 - 0
Source/Atomic/Javascript/JSScene.h → Source/AtomicJS/Javascript/JSScene.h


+ 10 - 12
Source/Atomic/Javascript/JSVM.cpp → Source/AtomicJS/Javascript/JSVM.cpp

@@ -2,23 +2,21 @@
 // Please see LICENSE.md in repository root for license information
 // Please see LICENSE.md in repository root for license information
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 
-#include "Precompiled.h"
-
 #include <Duktape/duktape.h>
 #include <Duktape/duktape.h>
 
 
-#include "../Core/Profiler.h"
-#include "../Core/CoreEvents.h"
+#include <Atomic/Core/Profiler.h>
+#include <Atomic/Core/CoreEvents.h>
 
 
-#include "../IO/File.h"
-#include "../IO/Log.h"
-#include "../IO/FileSystem.h"
-#include "../IO/PackageFile.h"
+#include <Atomic/IO/File.h>
+#include <Atomic/IO/Log.h>
+#include <Atomic/IO/FileSystem.h>
+#include <Atomic/IO/PackageFile.h>
 
 
-#include "../Resource/ResourceCache.h"
+#include <Atomic/Resource/ResourceCache.h>
 
 
-#include "../Javascript/JSEvents.h"
-#include "../Javascript/JSVM.h"
-#include "../Javascript/JSAtomic.h"
+#include "JSEvents.h"
+#include "JSVM.h"
+#include "JSAtomic.h"
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 5 - 5
Source/Atomic/Javascript/JSVM.h → Source/AtomicJS/Javascript/JSVM.h

@@ -4,13 +4,13 @@
 
 
 #pragma once
 #pragma once
 
 
-#include "../Core/Context.h"
-#include "../Core/Object.h"
-#include "../Container/List.h"
+#include <Atomic/Core/Context.h>
+#include <Atomic/Core/Object.h>
+#include <Atomic/Container/List.h>
 
 
-#include "../IO/Log.h"
+#include <Atomic/IO/Log.h>
 
 
-#include "../Javascript/JSAPI.h"
+#include "JSAPI.h"
 
 
 //#define JSVM_DEBUG
 //#define JSVM_DEBUG
 
 

+ 12 - 13
Source/Atomic/Javascript/Javascript.cpp → Source/AtomicJS/Javascript/Javascript.cpp

@@ -2,19 +2,18 @@
 // Please see LICENSE.md in repository root for license information
 // Please see LICENSE.md in repository root for license information
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 
-#include "Precompiled.h"
-#include "../Core/CoreEvents.h"
-#include "../Engine/EngineEvents.h"
-#include "../IO/File.h"
-#include "../IO/Log.h"
-#include "../Core/ProcessUtils.h"
-#include "../Core/Profiler.h"
-#include "../Resource/ResourceCache.h"
-#include "../Scene/Scene.h"
-
-#include "../Javascript/Javascript.h"
-#include "../Javascript/JSComponent.h"
-#include "../Javascript/JSVM.h"
+#include <Atomic/Core/CoreEvents.h>
+#include <Atomic/Engine/EngineEvents.h>
+#include <Atomic/IO/File.h>
+#include <Atomic/IO/Log.h>
+#include <Atomic/Core/ProcessUtils.h>
+#include <Atomic/Core/Profiler.h>
+#include <Atomic/Resource/ResourceCache.h>
+#include <Atomic/Scene/Scene.h>
+
+#include "Javascript.h"
+#include "JSComponent.h"
+#include "JSVM.h"
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 3 - 3
Source/Atomic/Javascript/Javascript.h → Source/AtomicJS/Javascript/Javascript.h

@@ -4,9 +4,9 @@
 
 
 #pragma once
 #pragma once
 
 
-#include "../Core/Context.h"
-#include "../Core/Object.h"
-#include "../Javascript/JSVM.h"
+#include <Atomic/Core/Context.h>
+#include <Atomic/Core/Object.h>
+#include "JSVM.h"
 
 
 namespace Atomic
 namespace Atomic
 {
 {

+ 1 - 1
Source/AtomicPlayer/AtomicPlayer.cpp

@@ -32,7 +32,7 @@
 // Move me
 // Move me
 #include <Atomic/Environment/Environment.h>
 #include <Atomic/Environment/Environment.h>
 
 
-#include <Atomic/Javascript/Javascript.h>
+#include <AtomicJS/Javascript/Javascript.h>
 
 
 #include "AtomicPlayer.h"
 #include "AtomicPlayer.h"
 
 

+ 1 - 1
Source/AtomicPlayer/CMakeLists.txt

@@ -23,7 +23,7 @@ else()
 	add_executable(AtomicPlayer ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
 	add_executable(AtomicPlayer ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
 endif()
 endif()
 
 
-target_link_libraries(AtomicPlayer ${ATOMIC_LINK_LIBRARIES})
+target_link_libraries(AtomicPlayer AtomicJS ${ATOMIC_LINK_LIBRARIES})
 
 
 if (APPLE)
 if (APPLE)
 
 

+ 1 - 0
Source/CMakeLists.txt

@@ -1,6 +1,7 @@
 
 
 add_subdirectory(ThirdParty)
 add_subdirectory(ThirdParty)
 add_subdirectory(Atomic)
 add_subdirectory(Atomic)
+add_subdirectory(AtomicJS)
 add_subdirectory(AtomicPlayer)
 add_subdirectory(AtomicPlayer)
 
 
 if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
 if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)

+ 8 - 6
Source/Tools/JSBind/JSBModule.cpp

@@ -187,16 +187,19 @@ void JSBModule::WriteIncludes(String& source)
 #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/", "Atomic/");
 #endif        
 #endif        
-        source.AppendWithFormat("#include \"%s%s\"\n", headerPath.CString(), headerfile.CString());
+        source.AppendWithFormat("#include <%s%s>\n", headerPath.CString(), headerfile.CString());
 
 
         included.Push(header);
         included.Push(header);
     }
     }
 
 
     for (unsigned i = 0; i < includes_.Size(); i++)
     for (unsigned i = 0; i < includes_.Size(); i++)
     {
     {
-        source.AppendWithFormat("#include \"%s\"\n", includes_[i].CString());
+        if (includes_[i].StartsWith("<"))
+            source.AppendWithFormat("#include %s\n", includes_[i].CString());
+        else
+            source.AppendWithFormat("#include \"%s\"\n", includes_[i].CString());
     }
     }
 }
 }
 
 
@@ -206,10 +209,9 @@ void JSBModule::EmitSource(const String& filepath)
     file.Open(filepath, FILE_WRITE);
     file.Open(filepath, FILE_WRITE);
 
 
     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 <Duktape/duktape.h>\n";    
     source_ += "#include <Duktape/duktape.h>\n";    
-    source_ += "#include \"Javascript/JSVM.h\"\n";
-    source_ += "#include \"Javascript/JSAPI.h\"\n";
+    source_ += "#include <AtomicJS/Javascript/JSVM.h>\n";
+    source_ += "#include <AtomicJS/Javascript/JSAPI.h>\n";
 
 
     WriteIncludes(source_);
     WriteIncludes(source_);
 
 

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

@@ -69,10 +69,9 @@ void JSBindings::EmitJSModules(const String& rootpath)
     file.Open(rootpath + "/JSModules.cpp", FILE_WRITE);
     file.Open(rootpath + "/JSModules.cpp", FILE_WRITE);
 
 
     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 <Duktape/duktape.h>\n";    
     source += "#include <Duktape/duktape.h>\n";    
-    source += "#include \"Javascript/JSVM.h\"\n";
-    source += "#include \"Javascript/JSAPI.h\"\n";
+    source += "#include <AtomicJS/Javascript/JSVM.h>\n";
+    source += "#include <AtomicJS/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" : ["<Atomic/Graphics/Texture2D.h>", "<Atomic/Scene/Node.h>", "<Atomic/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" : ["<Atomic/UI/Text.h>", "<Atomic/UI/Button.h>", "<Atomic/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" : ["<Atomic/Scene/Scene.h>", "<Atomic/Graphics/Animation.h>", "<Atomic/Graphics/OcclusionBuffer.h>", "<Atomic/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" : ["<Atomic/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" : ["<Atomic/Network/Protocol.h>", "<Atomic/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" : ["<Atomic/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" : ["<Atomic/Scene/LogicComponent.h>", "<Atomic/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" : ["<Atomic/Graphics/Material.h>", "<Atomic/Scene/Node.h>", "<Atomic/Scene/Scene.h>", "<Atomic/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",