Skip to content

Commit

Permalink
Update TargetConditionals
Browse files Browse the repository at this point in the history
  • Loading branch information
Kyle-Ye committed Feb 16, 2024
1 parent 4892428 commit 505d952
Show file tree
Hide file tree
Showing 4 changed files with 281 additions and 13 deletions.
2 changes: 1 addition & 1 deletion Sources/OpenSwiftUIShims/dyld_Private.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#include "dyld_Private.h"

#if !TARGET_OS_DARWIN
#if !OPENSWIFTUI_TARGET_OS_DARWIN
bool dyld_program_sdk_at_least(dyld_build_version_t version) {
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/OpenSwiftUIShims/include/LockedPointer.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#define OPENSWIFTUI_LOCK_INIT OS_UNFAIR_LOCK_INIT
#define OPENSWIFTUI_LOCK_LOCK(lock) os_unfair_lock_lock(lock)
#define OPENSWIFTUI_LOCK_UNLOCK(lock) os_unfair_lock_unlock(lock)
#elif TARGET_OS_LINUX
#elif OPENSWIFTUI_TARGET_OS_LINUX
#define OPENSWIFTUI_LOCK_T int32_t
#include <stdint.h>
#include <unistd.h>
Expand Down
13 changes: 2 additions & 11 deletions Sources/OpenSwiftUIShims/include/OpenSwiftUIBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,7 @@
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#ifdef __APPLE__
#include <TargetConditionals.h>
#ifndef TARGET_OS_DARWIN
#define TARGET_OS_DARWIN TARGET_OS_MAC
#endif
#else
#ifndef TARGET_OS_DARWIN
#define TARGET_OS_DARWIN 0
#endif
#endif
#include "OpenSwiftUITargetConditionals.h"

#if defined(__cplusplus)
#define OPENSWIFTUI_INLINE inline
Expand All @@ -44,7 +35,7 @@
#define OPENSWIFTUI_ASSUME_NONNULL_END
#endif

#if TARGET_OS_WIN32
#if OPENSWIFTUI_TARGET_OS_WIN32
#if defined(__cplusplus)
#define _OPENSWIFTUI_EXTERN extern "C"
#else
Expand Down
277 changes: 277 additions & 0 deletions Sources/OpenSwiftUIShims/include/OpenSwiftUITargetConditionals.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,277 @@
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//

/*
File: OpenSwiftUITargetConditionals.h
Contains: Autoconfiguration of TARGET_ conditionals for Mac OS X and iPhone
Note: OpenSwiftUITargetConditionals.h in 3.4 Universal Interfaces works
with all compilers. This header only recognizes compilers
known to run on Mac OS X.
*/

#ifndef __OPENSWIFTUITARGETCONDITIONALS__
#define __OPENSWIFTUITARGETCONDITIONALS__
/****************************************************************************************************
TARGET_CPU_*
These conditionals specify which microprocessor instruction set is being
generated. At most one of these is true, the rest are false.
TARGET_CPU_PPC - Compiler is generating PowerPC instructions for 32-bit mode
TARGET_CPU_PPC64 - Compiler is generating PowerPC instructions for 64-bit mode
TARGET_CPU_68K - Compiler is generating 680x0 instructions
TARGET_CPU_X86 - Compiler is generating x86 instructions
TARGET_CPU_ARM - Compiler is generating ARM instructions
TARGET_CPU_MIPS - Compiler is generating MIPS instructions
TARGET_CPU_SPARC - Compiler is generating Sparc instructions
TARGET_CPU_ALPHA - Compiler is generating Dec Alpha instructions
TARGET_CPU_WASM32 - Compiler is generating WebAssembly instructions for 32-bit mode
TARGET_OS_*
These conditionals specify in which Operating System the generated code will
run. Indention is used to show which conditionals are evolutionary subclasses.
The MAC/WIN32/UNIX conditionals are mutually exclusive.
The IOS/TV/WATCH conditionals are mutually exclusive.
TARGET_OS_WIN32 - Generated code will run under 32-bit Windows
TARGET_OS_UNIX - Generated code will run under some Unix (not OSX)
TARGET_OS_CYGWIN - Generated code will run under 64-bit Cygwin
TARGET_OS_WASI - Generated code will run under WebAssembly System Interface
TARGET_OS_MAC - Generated code will run under Mac OS X variant
TARGET_OS_IPHONE - Generated code for firmware, devices, or simulator
TARGET_OS_IOS - Generated code will run under iOS
TARGET_OS_TV - Generated code will run under Apple TV OS
TARGET_OS_WATCH - Generated code will run under Apple Watch OS
TARGET_OS_SIMULATOR - Generated code will run under a simulator
TARGET_OS_EMBEDDED - Generated code for firmware
TARGET_IPHONE_SIMULATOR - DEPRECATED: Same as TARGET_OS_SIMULATOR
TARGET_OS_NANO - DEPRECATED: Same as TARGET_OS_WATCH
TARGET_RT_*
These conditionals specify in which runtime the generated code will
run. This is needed when the OS and CPU support more than one runtime
(e.g. Mac OS X supports CFM and mach-o).
TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers
TARGET_RT_BIG_ENDIAN - Generated code uses big endian format for integers
TARGET_RT_64_BIT - Generated code uses 64-bit pointers
TARGET_RT_MAC_CFM - TARGET_OS_MAC is true and CFM68K or PowerPC CFM (TVectors) are used
TARGET_RT_MAC_MACHO - TARGET_OS_MAC is true and Mach-O/dlyd runtime is used
****************************************************************************************************/

#if __APPLE__
#define OPENSWIFTUI_TARGET_OS_DARWIN 1
#define OPENSWIFTUI_TARGET_OS_LINUX 0
#define OPENSWIFTUI_TARGET_OS_WINDOWS 0
#define OPENSWIFTUI_TARGET_OS_BSD 0
#define OPENSWIFTUI_TARGET_OS_ANDROID 0
#define OPENSWIFTUI_TARGET_OS_CYGWIN 0
#define OPENSWIFTUI_TARGET_OS_WASI 0
#elif __ANDROID__
#define OPENSWIFTUI_TARGET_OS_DARWIN 0
#define OPENSWIFTUI_TARGET_OS_LINUX 1
#define OPENSWIFTUI_TARGET_OS_WINDOWS 0
#define OPENSWIFTUI_TARGET_OS_BSD 0
#define OPENSWIFTUI_TARGET_OS_ANDROID 1
#define OPENSWIFTUI_TARGET_OS_CYGWIN 0
#define OPENSWIFTUI_TARGET_OS_WASI 0
#elif __linux__
#define OPENSWIFTUI_TARGET_OS_DARWIN 0
#define OPENSWIFTUI_TARGET_OS_LINUX 1
#define OPENSWIFTUI_TARGET_OS_WINDOWS 0
#define OPENSWIFTUI_TARGET_OS_BSD 0
#define OPENSWIFTUI_TARGET_OS_ANDROID 0
#define OPENSWIFTUI_TARGET_OS_CYGWIN 0
#define OPENSWIFTUI_TARGET_OS_WASI 0
#elif __CYGWIN__
#define OPENSWIFTUI_TARGET_OS_DARWIN 0
#define OPENSWIFTUI_TARGET_OS_LINUX 1
#define OPENSWIFTUI_TARGET_OS_WINDOWS 0
#define OPENSWIFTUI_TARGET_OS_BSD 0
#define OPENSWIFTUI_TARGET_OS_ANDROID 0
#define OPENSWIFTUI_TARGET_OS_CYGWIN 1
#define OPENSWIFTUI_TARGET_OS_WASI 0
#elif _WIN32 || _WIN64
#define OPENSWIFTUI_TARGET_OS_DARWIN 0
#define OPENSWIFTUI_TARGET_OS_LINUX 0
#define OPENSWIFTUI_TARGET_OS_WINDOWS 1
#define OPENSWIFTUI_TARGET_OS_BSD 0
#define OPENSWIFTUI_TARGET_OS_ANDROID 0
#define OPENSWIFTUI_TARGET_OS_CYGWIN 0
#define OPENSWIFTUI_TARGET_OS_WASI 0
#elif __unix__
#define OPENSWIFTUI_TARGET_OS_DARWIN 0
#define OPENSWIFTUI_TARGET_OS_LINUX 0
#define OPENSWIFTUI_TARGET_OS_WINDOWS 0
#define OPENSWIFTUI_TARGET_OS_BSD 1
#define OPENSWIFTUI_TARGET_OS_ANDROID 0
#define OPENSWIFTUI_TARGET_OS_CYGWIN 0
#define OPENSWIFTUI_TARGET_OS_WASI 0
#elif __wasi__
#define OPENSWIFTUI_TARGET_OS_DARWIN 0
#define OPENSWIFTUI_TARGET_OS_LINUX 0
#define OPENSWIFTUI_TARGET_OS_WINDOWS 0
#define OPENSWIFTUI_TARGET_OS_BSD 0
#define OPENSWIFTUI_TARGET_OS_ANDROID 0
#define OPENSWIFTUI_TARGET_OS_CYGWIN 0
#define OPENSWIFTUI_TARGET_OS_WASI 1
#else
#error unknown operating system
#endif

#define OPENSWIFTUI_TARGET_OS_WIN32 TARGET_OS_WINDOWS
#define OPENSWIFTUI_TARGET_OS_MAC TARGET_OS_DARWIN
#define OPENSWIFTUI_TARGET_OS_OSX TARGET_OS_DARWIN

// iOS, watchOS, and tvOS are not supported
#define OPENSWIFTUI_TARGET_OS_IPHONE 0
#define OPENSWIFTUI_TARGET_OS_IOS 0
#define OPENSWIFTUI_TARGET_OS_WATCH 0
#define OPENSWIFTUI_TARGET_OS_TV 0

#if __x86_64__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 1
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __arm64__ || __aarch64__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 1
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __mips64__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 1
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __powerpc64__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 1
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __i386__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 1
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __arm__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 1
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __mips__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 1
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __powerpc__
#define OPENSWIFTUI_TARGET_CPU_PPC 1
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __s390x__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 1
#define OPENSWIFTUI_TARGET_CPU_WASM32 0
#elif __wasm32__
#define OPENSWIFTUI_TARGET_CPU_PPC 0
#define OPENSWIFTUI_TARGET_CPU_PPC64 0
#define OPENSWIFTUI_TARGET_CPU_X86 0
#define OPENSWIFTUI_TARGET_CPU_X86_64 0
#define OPENSWIFTUI_TARGET_CPU_ARM 0
#define OPENSWIFTUI_TARGET_CPU_ARM64 0
#define OPENSWIFTUI_TARGET_CPU_MIPS 0
#define OPENSWIFTUI_TARGET_CPU_MIPS64 0
#define OPENSWIFTUI_TARGET_CPU_S390X 0
#define OPENSWIFTUI_TARGET_CPU_WASM32 1
#else
#error unknown architecture
#endif

#if __LITTLE_ENDIAN__
#define OPENSWIFTUI_TARGET_RT_LITTLE_ENDIAN 1
#define OPENSWIFTUI_TARGET_RT_BIG_ENDIAN 0
#elif __BIG_ENDIAN__
#define OPENSWIFTUI_TARGET_RT_LITTLE_ENDIAN 0
#define OPENSWIFTUI_TARGET_RT_BIG_ENDIAN 1
#else
#error unknown endian
#endif

#if __LP64__ || __LLP64__ || __POINTER_WIDTH__-0 == 64
#define OPENSWIFTUI_TARGET_RT_64_BIT 1
#else
#define OPENSWIFTUI_TARGET_RT_64_BIT 0
#endif

#endif /* __OPENSWIFTUITARGETCONDITIONALS__ */

0 comments on commit 505d952

Please sign in to comment.