Browse Source

Fixing Linux build

JoshEngebretson 10 years ago
parent
commit
b9753326a7

+ 4 - 0
CMake/Modules/AtomicLinux.cmake

@@ -10,3 +10,7 @@ find_package(PkgConfig REQUIRED)
 pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
 
 list (APPEND ATOMIC_LINK_LIBRARIES pthread GLEW GL dl)
+
+
+add_definitions(-DATOMIC_PLATFORM_WEB)
+add_definitions(-DATOMIC_OPENGL -Wno-warn-absolute-paths -DATOMIC_TBUI)

+ 18 - 1
Rakefile

@@ -7,7 +7,7 @@ when /mswin|windows|mingw32/i
 when /darwin/i
     $HOST_OS = "darwin"
 else
-    abort("Unknown host config: Config::CONFIG['host_os']: #{Config::CONFIG['host_os']}")
+    $HOST_OS = "linux"
 end
 
 $RAKE_ROOT = File.dirname(__FILE__)
@@ -19,6 +19,7 @@ CMAKE_MACOSX_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/MacOSX_Build"
 CMAKE_ANDROID_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Android_Build"
 CMAKE_IOS_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/IOS_Build"
 CMAKE_WEB_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Web_Build"
+CMAKE_LINUX_BUILD_FOLDER = "#{ARTIFACTS_FOLDER}/Linux_Build"
 
 JSBIND_BIN_MACOSX = "#{CMAKE_MACOSX_BUILD_FOLDER}/Source/AtomicJS/JSBind/Release/JSBind"
 
@@ -69,6 +70,22 @@ namespace :build  do
 
   end
 
+  task :linux do
+
+    if !Dir.exists?("#{CMAKE_LINUX_BUILD_FOLDER}")
+      FileUtils.mkdir_p(CMAKE_LINUX_BUILD_FOLDER)
+    end
+
+    Dir.chdir(CMAKE_LINUX_BUILD_FOLDER) do
+
+      sh "cmake ../../ -DLINUX=1 -G \"Unix Makefiles\""
+      sh "make -j2"
+
+    end
+
+  end
+
+
   #IOS, dependent on macosx for JSBind
   task :ios =>  "build:macosx_jsbind" do
 

+ 2 - 2
Source/Atomic/IPC/IPC.cpp

@@ -1,5 +1,5 @@
 
-#ifdef __APPLE__
+#if defined(ATOMIC_PLATFORM_OSX) || defined(ATOMIC_PLATFORM_LINUX)
 #include <unistd.h>
 #endif
 
@@ -35,7 +35,7 @@ IPC::~IPC()
 
 bool IPC::InitWorker(IPCHandle fd1, IPCHandle fd2)
 {
-    
+
 #ifndef ATOMIC_PLATFORM_WINDOWS
     // close server fd
     close(fd1);

+ 7 - 2
Source/Atomic/IPC/IPCUnix.cpp

@@ -9,9 +9,12 @@ namespace Atomic
 #include <unistd.h>
 #include <signal.h>
 #include <sys/socket.h>
-#include <libproc.h>
 #include <errno.h>
 
+#ifdef ATOMIC_PLATFORM_OSX
+#include <libproc.h>
+#endif
+
 #define HANDLE_EINTR(x) ({ \
     typeof(x) __eintr_result__; \
     do { \
@@ -21,6 +24,8 @@ namespace Atomic
 })
 
 bool SilenceSocket(int fd) {
+
+#ifdef ATOMIC_PLATFORM_OSX
     int nosigpipe = 1;
     // On OSX an attempt to read or write to a closed socket may generate a
     // SIGPIPE rather than returning -1.  setsockopt will shut this off.
@@ -28,6 +33,7 @@ bool SilenceSocket(int fd) {
                         &nosigpipe, sizeof nosigpipe)) {
         return false;
     }
+#endif    
     return true;
 }
 
@@ -229,4 +235,3 @@ bool IPCProcess::Launch(const String& command, const Vector<String>& args, const
 
 
 #endif
-

+ 10 - 8
Source/AtomicJS/JSBind/JSBModule.cpp

@@ -160,6 +160,14 @@ void JSBModule::WriteModuleInit(String& source)
 void JSBModule::WriteIncludes(String& source)
 {
 
+    for (unsigned i = 0; i < includes_.Size(); i++)
+    {
+      if (includes_[i].StartsWith("<"))
+          source.AppendWithFormat("#include %s\n", includes_[i].CString());
+      else
+          source.AppendWithFormat("#include \"%s\"\n", includes_[i].CString());
+    }
+
     Vector<JSBHeader*> allheaders;
 
     for (unsigned i = 0; i < enums_.Size(); i++)
@@ -173,6 +181,7 @@ void JSBModule::WriteIncludes(String& source)
     }
 
     Vector<JSBHeader*> included;
+
     for (unsigned i = 0; i < allheaders.Size(); i++)
     {
         JSBHeader* header = allheaders.At(i);
@@ -182,7 +191,7 @@ void JSBModule::WriteIncludes(String& source)
 
         String headerPath = GetPath(header->filepath_);
 
-		String headerfile = GetFileNameAndExtension(header->filepath_);
+		    String headerfile = GetFileNameAndExtension(header->filepath_);
 
         headerPath.Replace(JSBind::ROOT_FOLDER + "/Source/Atomic/", "Atomic/");
 
@@ -191,13 +200,6 @@ void JSBModule::WriteIncludes(String& source)
         included.Push(header);
     }
 
-    for (unsigned i = 0; i < includes_.Size(); i++)
-    {
-        if (includes_[i].StartsWith("<"))
-            source.AppendWithFormat("#include %s\n", includes_[i].CString());
-        else
-            source.AppendWithFormat("#include \"%s\"\n", includes_[i].CString());
-    }
 }
 
 void JSBModule::EmitSource(const String& filepath)

+ 4 - 4
Source/AtomicJS/JSBind/modules/Atomic3D.json

@@ -2,12 +2,12 @@
 	"name" : "Atomic3D",
 	"sources" : ["Atomic3D"],
 	"requires" : ["3D"],
-	"includes" : ["<Atomic/Scene/Scene.h>", "<Atomic/Atomic3D/Animation.h>", "<Atomic/Graphics/OcclusionBuffer.h>", 
+	"includes" : ["<Atomic/Container/ArrayPtr.h>","<Atomic/Scene/Scene.h>", "<Atomic/Atomic3D/Animation.h>", "<Atomic/Graphics/OcclusionBuffer.h>", 
 			      "<Atomic/Scene/ValueAnimation.h>", "<Atomic/Graphics/Material.h>", "<Atomic/Resource/Image.h>"],
 	"classes" : ["Model",
-				 "StaticModel", 
+				 "StaticModel",
 				 "Animation", "AnimatedModel", "AnimationController", "AnimationState", "BillboardSet", "CustomGeometry",
-				 "DecalSet", "ParticleEffect", "ParticleEmitter",				
+				 "DecalSet", "ParticleEffect", "ParticleEmitter",
 				 "Skybox", "StaticModelGroup", "Terrain", "TerrainPatch"],
 	"overloads" : {
 		"StaticModel" : {
@@ -15,7 +15,7 @@
 		},
 		"AnimationState" : {
 			"AnimationState" : ["AnimatedModel", "Animation"]
-		}		
+		}
 
 	}