소스 검색

SteamLink defines.

Branimir Karadžić 10 년 전
부모
커밋
e2b58e859b
4개의 변경된 파일30개의 추가작업 그리고 15개의 파일을 삭제
  1. 1 0
      include/bx/config.h
  2. 9 6
      include/bx/os.h
  3. 17 9
      include/bx/platform.h
  4. 3 0
      scripts/toolchain.lua

+ 1 - 0
include/bx/config.h

@@ -30,6 +30,7 @@
 				|| BX_PLATFORM_OSX \
 				|| BX_PLATFORM_QNX \
 				|| BX_PLATFORM_RPI \
+				|| BX_PLATFORM_STEAMLINK \
 				|| BX_PLATFORM_WINDOWS \
 				|| BX_PLATFORM_WINRT \
 				? 1 : 0)

+ 9 - 6
include/bx/os.h

@@ -20,16 +20,17 @@
 	|| BX_PLATFORM_NACL \
 	|| BX_PLATFORM_OSX \
 	|| BX_PLATFORM_PS4 \
-	|| BX_PLATFORM_RPI
-
+	|| BX_PLATFORM_RPI \
+	|| BX_PLATFORM_STEAMLINK
 #	include <sched.h> // sched_yield
 #	if BX_PLATFORM_BSD \
 	|| BX_PLATFORM_IOS \
 	|| BX_PLATFORM_NACL \
 	|| BX_PLATFORM_OSX \
-	|| BX_PLATFORM_PS4
+	|| BX_PLATFORM_PS4 \
+	|| BX_PLATFORM_STEAMLINK
 #		include <pthread.h> // mach_port_t
-#	endif // BX_PLATFORM_IOS || BX_PLATFORM_OSX || BX_PLATFORM_NACL
+#	endif // BX_PLATFORM_*
 
 #	if BX_PLATFORM_NACL
 #		include <sys/nacl_syscalls.h> // nanosleep
@@ -42,7 +43,9 @@
 
 #	if BX_PLATFORM_ANDROID
 #		include <malloc.h> // mallinfo
-#	elif BX_PLATFORM_LINUX || BX_PLATFORM_RPI
+#	elif   BX_PLATFORM_LINUX \
+		|| BX_PLATFORM_RPI \
+		|| BX_PLATFORM_STEAMLINK
 #		include <unistd.h> // syscall
 #		include <sys/syscall.h>
 #	elif BX_PLATFORM_OSX
@@ -99,7 +102,7 @@ namespace bx
 	{
 #if BX_PLATFORM_WINDOWS
 		return ::GetCurrentThreadId();
-#elif BX_PLATFORM_LINUX || BX_PLATFORM_RPI
+#elif BX_PLATFORM_LINUX || BX_PLATFORM_RPI || BX_PLATFORM_STEAMLINK
 		return (pid_t)::syscall(SYS_gettid);
 #elif BX_PLATFORM_IOS || BX_PLATFORM_OSX
 		return (mach_port_t)::pthread_mach_thread_np(pthread_self() );

+ 17 - 9
include/bx/platform.h

@@ -22,6 +22,7 @@
 #define BX_PLATFORM_PS4        0
 #define BX_PLATFORM_QNX        0
 #define BX_PLATFORM_RPI        0
+#define BX_PLATFORM_STEAMLINK  0
 #define BX_PLATFORM_WINDOWS    0
 #define BX_PLATFORM_WINRT      0
 #define BX_PLATFORM_XBOX360    0
@@ -152,20 +153,24 @@
 #		undef  BX_PLATFORM_WINRT
 #		define BX_PLATFORM_WINRT 1
 #	endif
-#elif defined(__VCCOREVER__)
-// RaspberryPi compiler defines __linux__
-#	undef  BX_PLATFORM_RPI
-#	define BX_PLATFORM_RPI 1
-#elif defined(__native_client__)
-// NaCl compiler defines __linux__
-#	include <ppapi/c/pp_macros.h>
-#	undef  BX_PLATFORM_NACL
-#	define BX_PLATFORM_NACL PPAPI_RELEASE
 #elif defined(__ANDROID__)
 // Android compiler defines __linux__
 #	include <android/api-level.h>
 #	undef  BX_PLATFORM_ANDROID
 #	define BX_PLATFORM_ANDROID __ANDROID_API__
+#elif defined(__native_client__)
+// NaCl compiler defines __linux__
+#	include <ppapi/c/pp_macros.h>
+#	undef  BX_PLATFORM_NACL
+#	define BX_PLATFORM_NACL PPAPI_RELEASE
+#elif defined(__STEAMLINK__)
+// SteamLink compiler defines __linux__
+#	undef  BX_PLATFORM_STEAMLINK
+#	define BX_PLATFORM_STEAMLINK 1
+#elif defined(__VCCOREVER__)
+// RaspberryPi compiler defines __linux__
+#	undef  BX_PLATFORM_RPI
+#	define BX_PLATFORM_RPI 1
 #elif defined(__linux__)
 #	undef  BX_PLATFORM_LINUX
 #	define BX_PLATFORM_LINUX 1
@@ -204,6 +209,7 @@
 						|| BX_PLATFORM_NACL \
 						|| BX_PLATFORM_OSX \
 						|| BX_PLATFORM_QNX \
+						|| BX_PLATFORM_STEAMLINK \
 						|| BX_PLATFORM_PS4 \
 						|| BX_PLATFORM_RPI \
 						)
@@ -263,6 +269,8 @@
 #	define BX_PLATFORM_NAME "QNX"
 #elif BX_PLATFORM_RPI
 #	define BX_PLATFORM_NAME "RaspberryPi"
+#elif BX_PLATFORM_STEAMLINK
+#	define BX_PLATFORM_NAME "SteamLink"
 #elif BX_PLATFORM_WINDOWS
 #	define BX_PLATFORM_NAME "Windows"
 #elif BX_PLATFORM_WINRT

+ 3 - 0
scripts/toolchain.lua

@@ -702,6 +702,9 @@ function toolchain(_buildDir, _libDir)
 		objdir (path.join(_buildDir, "steamlink/obj"))
 		libdirs { path.join(_libDir, "lib/steamlink") }
 		includedirs { path.join(bxDir, "include/compat/linux") }
+		defines {
+			"__STEAMLINK__=1", -- There is no special prefedined compiler symbol to detect SteamLink, faking it.
+		}
 		buildoptions {
 			"-std=c++0x",
 			"-Wfatal-errors",