Browse Source

Updates to Rakefile, readding module excludes

Josh Engebretson 10 years ago
parent
commit
ec64fa1b6b
3 changed files with 50 additions and 11 deletions
  1. 9 9
      Rakefile
  2. 39 2
      Source/ToolCore/JSBind/JSBPackage.cpp
  3. 2 0
      Source/ToolCore/JSBind/JSBPackage.h

+ 9 - 9
Rakefile

@@ -21,11 +21,11 @@ CMAKE_IOS_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/IOS_Build"
 CMAKE_WEB_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Web_Build"
 CMAKE_WEB_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Web_Build"
 CMAKE_LINUX_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Linux_Build"
 CMAKE_LINUX_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Linux_Build"
 
 
-JSBIND_BIN_MACOSX = "#{CMAKE_MACOSX_BUILD_FOLDER}/Source/AtomicJS/JSBind/Release/JSBind"
+ATOMICTOOL_BIN_MACOSX = "#{CMAKE_MACOSX_BUILD_FOLDER}/Source/AtomicTool/Release/AtomicTool"
 
 
 namespace :build  do
 namespace :build  do
 
 
-  task :macosx_jsbind do
+  task :macosx_atomictool do
 
 
     if !Dir.exists?("#{CMAKE_MACOSX_BUILD_FOLDER}")
     if !Dir.exists?("#{CMAKE_MACOSX_BUILD_FOLDER}")
       FileUtils.mkdir_p(CMAKE_MACOSX_BUILD_FOLDER)
       FileUtils.mkdir_p(CMAKE_MACOSX_BUILD_FOLDER)
@@ -34,7 +34,7 @@ namespace :build  do
     Dir.chdir(CMAKE_MACOSX_BUILD_FOLDER) do
     Dir.chdir(CMAKE_MACOSX_BUILD_FOLDER) do
 
 
       sh "cmake ../../ -G Xcode -DCMAKE_BUILD_TYPE=Release"
       sh "cmake ../../ -G Xcode -DCMAKE_BUILD_TYPE=Release"
-      sh "xcodebuild -target JSBind -configuration Release"
+      sh "xcodebuild -target AtomicTool -configuration Release"
 
 
     end
     end
 
 
@@ -87,14 +87,14 @@ namespace :build  do
 
 
 
 
   #IOS, dependent on macosx for JSBind
   #IOS, dependent on macosx for JSBind
-  task :ios =>  "build:macosx_jsbind" do
+  task :ios =>  "build:macosx_atomictool" do
 
 
       if !Dir.exists?("#{CMAKE_IOS_BUILD_FOLDER}")
       if !Dir.exists?("#{CMAKE_IOS_BUILD_FOLDER}")
         FileUtils.mkdir_p(CMAKE_IOS_BUILD_FOLDER)
         FileUtils.mkdir_p(CMAKE_IOS_BUILD_FOLDER)
       end
       end
 
 
       Dir.chdir(CMAKE_IOS_BUILD_FOLDER) do
       Dir.chdir(CMAKE_IOS_BUILD_FOLDER) do
-        sh "#{JSBIND_BIN_MACOSX} #{$RAKE_ROOT} IOS"
+        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Source/AtomicJS/Packages/Atomic/ IOS"
         sh "cmake -DIOS=1 -DCMAKE_BUILD_TYPE=Release -G Xcode ../../"
         sh "cmake -DIOS=1 -DCMAKE_BUILD_TYPE=Release -G Xcode ../../"
         # the -s option adds $KEYCHAIN to the search scope, while the -d option adds $KEYCHAIN to the system domain; both are needed
         # the -s option adds $KEYCHAIN to the search scope, while the -d option adds $KEYCHAIN to the system domain; both are needed
         sh "security -v list-keychains -d system -s /Users/jenkins/Library/Keychains/codesign.keychain"
         sh "security -v list-keychains -d system -s /Users/jenkins/Library/Keychains/codesign.keychain"
@@ -104,7 +104,7 @@ namespace :build  do
 
 
   end
   end
 
 
-  task :android =>  "build:macosx_jsbind" do
+  task :android =>  "build:macosx_atomictool" 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)
@@ -112,21 +112,21 @@ namespace :build  do
 
 
       Dir.chdir(CMAKE_ANDROID_BUILD_FOLDER) do
       Dir.chdir(CMAKE_ANDROID_BUILD_FOLDER) do
 
 
-        sh "#{JSBIND_BIN_MACOSX} #{$RAKE_ROOT} ANDROID"
+        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Source/AtomicJS/Packages/Atomic/ 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 -j4"
         sh "make -j4"
       end
       end
 
 
   end
   end
 
 
-  task :web => "build:macosx_jsbind" do
+  task :web => "build:macosx_atomictool" do
 
 
       if !Dir.exists?("#{CMAKE_WEB_BUILD_FOLDER}")
       if !Dir.exists?("#{CMAKE_WEB_BUILD_FOLDER}")
         FileUtils.mkdir_p(CMAKE_WEB_BUILD_FOLDER)
         FileUtils.mkdir_p(CMAKE_WEB_BUILD_FOLDER)
       end
       end
 
 
       Dir.chdir(CMAKE_WEB_BUILD_FOLDER) do
       Dir.chdir(CMAKE_WEB_BUILD_FOLDER) do
-        sh "#{JSBIND_BIN_MACOSX} #{$RAKE_ROOT} WEB"
+        sh "#{ATOMICTOOL_BIN_MACOSX} bind #{$RAKE_ROOT} Source/AtomicJS/Packages/Atomic/ WEB"
         sh "cmake -DEMSCRIPTEN=1 -DATOMIC_BUILD_2D=1 -DCMAKE_TOOLCHAIN_FILE=#{$RAKE_ROOT}/CMake/Toolchains/emscripten.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../"
         sh "cmake -DEMSCRIPTEN=1 -DATOMIC_BUILD_2D=1 -DCMAKE_TOOLCHAIN_FILE=#{$RAKE_ROOT}/CMake/Toolchains/emscripten.toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../../"
         sh "make -j4"
         sh "make -j4"
       end
       end

+ 39 - 2
Source/ToolCore/JSBind/JSBPackage.cpp

@@ -159,6 +159,8 @@ bool JSBPackage::Load(const String& packageFolder)
 {
 {
     LOGINFOF("Loading Package: %s", packageFolder.CString());
     LOGINFOF("Loading Package: %s", packageFolder.CString());
 
 
+    JSBind* jsbind = GetSubsystem<JSBind>();
+
     SharedPtr<File> jsonFile(new File(context_, packageFolder + "Package.json"));
     SharedPtr<File> jsonFile(new File(context_, packageFolder + "Package.json"));
 
 
     if (!jsonFile->IsOpen())
     if (!jsonFile->IsOpen())
@@ -182,8 +184,6 @@ bool JSBPackage::Load(const String& packageFolder)
 
 
     if (deps.IsArray())
     if (deps.IsArray())
     {
     {
-        JSBind* jsbind = GetSubsystem<JSBind>();
-
         for (unsigned i = 0; i < deps.GetSize(); i++)
         for (unsigned i = 0; i < deps.GetSize(); i++)
         {
         {
             String dpackageFolder = AddTrailingSlash(deps.GetString(i));
             String dpackageFolder = AddTrailingSlash(deps.GetString(i));
@@ -200,6 +200,37 @@ bool JSBPackage::Load(const String& packageFolder)
 
 
     }
     }
 
 
+    JSONValue jmodulesExclude = root.GetChild("moduleExclude");
+
+    if (jmodulesExclude.IsObject())
+    {
+        Vector<String> platforms = jmodulesExclude.GetChildNames();
+
+        for (unsigned i = 0; i < platforms.Size(); i++)
+        {
+            const String& platform = platforms[i];
+
+            if (!moduleExcludes_.Contains(platform))
+            {
+                moduleExcludes_[platform] = Vector<String>();
+            }
+
+            JSONValue mods = jmodulesExclude.GetChild(platform);
+
+            if (mods.IsArray())
+            {
+
+                for (unsigned j = 0; j < mods.GetSize(); j++)
+                {
+                    moduleExcludes_[platform].Push(mods.GetString(j));
+                }
+
+            }
+
+        }
+
+    }
+
     name_ = root.GetString("name");
     name_ = root.GetString("name");
     namespace_ = root.GetString("namespace");
     namespace_ = root.GetString("namespace");
 
 
@@ -209,6 +240,12 @@ bool JSBPackage::Load(const String& packageFolder)
     {
     {
         String moduleName = modules.GetString(i);
         String moduleName = modules.GetString(i);
 
 
+        if (moduleExcludes_.Contains(jsbind->GetPlatform()))
+        {
+            if (moduleExcludes_[jsbind->GetPlatform()].Contains(moduleName))
+                continue;
+        }
+
         SharedPtr<JSBModule> module(new JSBModule(context_, this));
         SharedPtr<JSBModule> module(new JSBModule(context_, this));
 
 
         if (!module->Load(packageFolder + moduleName + ".json"))
         if (!module->Load(packageFolder + moduleName + ".json"))

+ 2 - 0
Source/ToolCore/JSBind/JSBPackage.h

@@ -65,6 +65,8 @@ private:
 
 
     Vector<SharedPtr<JSBPackage> > dependencies_;
     Vector<SharedPtr<JSBPackage> > dependencies_;
 
 
+    HashMap<String, Vector<String>> moduleExcludes_;
+
     Vector<SharedPtr<JSBModule> > modules_;
     Vector<SharedPtr<JSBModule> > modules_;
     PODVector<JSBClass*> allClasses_;
     PODVector<JSBClass*> allClasses_;