Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove OpenFoundation dependency #36

Merged
merged 2 commits into from
Feb 16, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Remove OpenFoundation dependency
Kyle-Ye committed Feb 16, 2024
commit 48924280ff3de5f259ed44a23e1aa1630b2b6b01
11 changes: 1 addition & 10 deletions Package.resolved
Original file line number Diff line number Diff line change
@@ -1,21 +1,12 @@
{
"pins" : [
{
"identity" : "openfoundation",
"kind" : "remoteSourceControl",
"location" : "https://github.com/OpenSwiftUIProject/OpenFoundation",
"state" : {
"revision" : "cd2cdb300d53e3e68fda8b690a703a7c5096d9d0",
"version" : "0.0.2"
}
},
{
"identity" : "opengraph",
"kind" : "remoteSourceControl",
"location" : "https://github.com/OpenSwiftUIProject/OpenGraph",
"state" : {
"branch" : "main",
"revision" : "d4f467d9780fcca4c268a1242a8ae90f61377c3d"
"revision" : "8f0376278186b6e24e8d7a07a560f3efaa2fef1d"
}
},
{
5 changes: 1 addition & 4 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -57,8 +57,7 @@ let package = Package(
),
// C Shims for OpenSwiftUI
.target(
name: "OpenSwiftUIShims",
dependencies: [.product(name: "OpenFoundation", package: "OpenFoundation")]
name: "OpenSwiftUIShims"
),
.binaryTarget(name: "CoreServices", path: "PrivateFrameworks/CoreServices.xcframework"),
openSwiftUITarget,
@@ -164,12 +163,10 @@ if compatibilityTestCondition {
let useLocalDeps = envEnable("OPENSWIFTUI_USE_LOCAL_DEPS")
if useLocalDeps {
package.dependencies += [
.package(path: "../OpenFoundation"),
.package(path: "../OpenGraph"),
]
} else {
package.dependencies += [
.package(url: "https://github.com/OpenSwiftUIProject/OpenFoundation", from: "0.0.1"),
// FIXME: on Linux platform: OG contains unsafe build flags which prevents us using version dependency
.package(url: "https://github.com/OpenSwiftUIProject/OpenGraph", branch: "main"),
]
8 changes: 4 additions & 4 deletions Sources/OpenSwiftUIShims/ProtocolDescriptor.c
Original file line number Diff line number Diff line change
@@ -7,18 +7,18 @@

#include "ProtocolDescriptor.h"

OF_EXPORT
OPENSWIFTUI_EXPORT
const void *$s11OpenSwiftUI4ViewMp;

OF_EXPORT
OPENSWIFTUI_EXPORT
const void *_viewProtocolDescriptor(void) {
return &$s11OpenSwiftUI4ViewMp;
}

OF_EXPORT
OPENSWIFTUI_EXPORT
const void *$s11OpenSwiftUI12ViewModifierMp;

OF_EXPORT
OPENSWIFTUI_EXPORT
const void *_viewModifierProtocolDescriptor(void) {
return &$s11OpenSwiftUI12ViewModifierMp;
}
8 changes: 5 additions & 3 deletions Sources/OpenSwiftUIShims/include/LockedPointer.h
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@
#ifndef LockedPointer_h
#define LockedPointer_h

#include <OpenFoundation/OpenFoundation.h>
#include "OpenSwiftUIBase.h"

#if __has_include(<os/lock.h>)
#include <os/lock.h>
@@ -20,13 +20,15 @@
#define OPENSWIFTUI_LOCK_T int32_t
#include <stdint.h>
#include <unistd.h>
OF_INLINE void __OPENSWIFTUI_Lock(volatile OPENSWIFTUI_LOCK_T * _Nonnull lock) {
OPENSWIFTUI_INLINE
void __OPENSWIFTUI_Lock(volatile OPENSWIFTUI_LOCK_T * _Nonnull lock) {
while (__sync_val_compare_and_swap(lock, 0, ~0) != 0) {
sleep(0);
}
}

OF_INLINE void __OPENSWIFTUI_Unlock(volatile OPENSWIFTUI_LOCK_T * _Nonnull lock) {
OPENSWIFTUI_INLINE
void __OPENSWIFTUI_Unlock(volatile OPENSWIFTUI_LOCK_T * _Nonnull lock) {
__sync_synchronize();
*lock = 0;
}
79 changes: 79 additions & 0 deletions Sources/OpenSwiftUIShims/include/OpenSwiftUIBase.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
//
// OpenSwiftUIBase.h
//
//
// Created by Kyle on 2024/2/16.
//

#ifndef OpenSwiftUIBase_h
#define OpenSwiftUIBase_h

#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

#if defined(__cplusplus)
#define OPENSWIFTUI_INLINE inline
#else
#define OPENSWIFTUI_INLINE
#endif

#if defined(__cplusplus)
#define OPENSWIFTUI_EXTERN_C_BEGIN extern "C" {
#define OPENSWIFTUI_EXTERN_C_END }
#else
#define OPENSWIFTUI_EXTERN_C_BEGIN
#define OPENSWIFTUI_EXTERN_C_END
#endif

#if __has_feature(assume_nonnull)
#define OPENSWIFTUI_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
#define OPENSWIFTUI_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end")
#else
#define OPENSWIFTUI_ASSUME_NONNULL_BEGIN
#define OPENSWIFTUI_ASSUME_NONNULL_END
#endif

#if TARGET_OS_WIN32
#if defined(__cplusplus)
#define _OPENSWIFTUI_EXTERN extern "C"
#else
#define _OPENSWIFTUI_EXTERN extern
#endif

#if defined(_WINDLL)
#if defined(OPENSWIFTUI_EXPORTS)
#define OPENSWIFTUI_EXPORT _OPENSWIFTUI_EXTERN __declspec(dllexport)
#else
#define OPENSWIFTUI_EXPORT _OPENSWIFTUI_EXTERN __declspec(dllimport)
#endif
#else
#define OPENSWIFTUI_EXPORT _OPENSWIFTUI_EXTERN
#endif
#else
#define OPENSWIFTUI_EXPORT extern
#endif

#if __has_attribute(swift_private)
# define OPENSWIFTUI_REFINED_FOR_SWIFT __attribute__((swift_private))
#else
# define OPENSWIFTUI_REFINED_FOR_SWIFT
#endif

#if __has_attribute(swift_name)
# define OPENSWIFTUI_SWIFT_NAME(_name) __attribute__((swift_name(#_name)))
#else
# define OPENSWIFTUI_SWIFT_NAME(_name)
#endif

#endif /* OpenSwiftUIBase_h */
10 changes: 5 additions & 5 deletions Sources/OpenSwiftUIShims/include/ProtocolDescriptor.h
Original file line number Diff line number Diff line change
@@ -8,16 +8,16 @@
#ifndef ProtocolDescriptor_h
#define ProtocolDescriptor_h

#include <OpenFoundation/OpenFoundation.h>
#include "OpenSwiftUIBase.h"

OF_ASSUME_NONNULL_BEGIN
OPENSWIFTUI_ASSUME_NONNULL_BEGIN

OF_EXPORT
OPENSWIFTUI_EXPORT
const void *_viewProtocolDescriptor(void);

OF_EXPORT
OPENSWIFTUI_EXPORT
const void *_viewModifierProtocolDescriptor(void);

OF_ASSUME_NONNULL_END
OPENSWIFTUI_ASSUME_NONNULL_END

#endif /* ProtocolDescriptor_h */
7 changes: 3 additions & 4 deletions Sources/OpenSwiftUIShims/include/TLS.h
Original file line number Diff line number Diff line change
@@ -8,13 +8,12 @@
#ifndef TLS_h
#define TLS_h

#include <OpenFoundation/OpenFoundation.h>
#include <stdio.h>
#include "OpenSwiftUIBase.h"

OF_EXPORT
OPENSWIFTUI_EXPORT
void _setThreadTransactionData(void * _Nullable data);

OF_EXPORT
OPENSWIFTUI_EXPORT
void * _Nullable _threadTransactionData(void);

#endif /* TLS_h */
4 changes: 1 addition & 3 deletions Sources/OpenSwiftUIShims/include/dyld_Private.h
Original file line number Diff line number Diff line change
@@ -8,9 +8,7 @@
#ifndef dyld_Private_h
#define dyld_Private_h

#include <OpenFoundation/OpenFoundation.h>
#include <stdlib.h>
#include <stdbool.h>
#include "OpenSwiftUIBase.h"

typedef uint32_t dyld_platform_t;