From 15f07d14b5f048dc355536cbdf5cf9c10291b13b Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 10 Feb 2022 13:57:59 -0500 Subject: Fix MacOSX build issues (#2124) * #include an absolute path didn't work - because paths were taken to always be relative. * Small fixes. Added compiler crash with generic defined in a function. Added enum-flags test that works (by limiting backing type to int), and using __EnumType constraint. * Add comment about crash. * Disable crashing test. * Fixes to make compile on OSX. * Add github build for OSX. * Make premake generator a utility. * Fix osx compilation issue. * More fixes for OSX build. * OSX fix due to ambiguity around size_t and integer types. * Disable xlib on build on osx. * Use 'prebuildcommands' to make prebuild make utility projects do something. * Small fixes for premake so utility works on linux/osx. * Another hack to try and make generators run when 'utility' * Fix typo in macos.yml. * Revert premake to old style, and disable stdlib embedding on OSX. --- slang.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'slang.h') diff --git a/slang.h b/slang.h index cdc0daeab..83b10fc74 100644 --- a/slang.h +++ b/slang.h @@ -490,13 +490,20 @@ extern "C" // Use SLANG_PTR_ macros to determine SlangInt/SlangUInt types. // This is used over say using size_t/ptrdiff_t/intptr_t/uintptr_t, because on some targets, these types are distinct from - // their uint_t/int_t equivalents and so produce ambiguity with function overloading. + // their uint_t/int_t equivalents and so produce ambiguity with function overloading. + // + // SlangSizeT is helpful as on some compilers size_t is distinct from a regular integer type and so overloading doesn't work. + // Casting to SlangSizeT works around this. #if SLANG_PTR_IS_64 typedef int64_t SlangInt; typedef uint64_t SlangUInt; + + typedef uint64_t SlangSizeT; #else typedef int32_t SlangInt; typedef uint32_t SlangUInt; + + typedef uint32_t SlangSizeT; #endif typedef bool SlangBool; -- cgit v1.2.3