diff --git a/.gitignore b/.gitignore
index 0023a53..777dc81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ DerivedData/
.swiftpm/configuration/registries.json
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
.netrc
+.swiftpm
diff --git a/ClassDump.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ClassDump.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index e4542ea..0000000
--- a/ClassDump.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/ClassDump/ClassDump.h b/ClassDump/ClassDump.h
deleted file mode 100644
index 57850a1..0000000
--- a/ClassDump/ClassDump.h
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// ClassDump.h
-// ClassDump
-//
-// Created by Leptos on 3/24/19.
-// Copyright © 2019 Leptos. All rights reserved.
-//
-
-// to support building as both an Xcode framework and a Swift Package,
-// all headers that are marked as "public" for the Xcode framework
-// should have a symlink in `Sources/ClassDumpRuntime/include/ClassDump`;
-// all those files should then be imported below.
-//
-// you can generate these imports using a shell script such as
-// `ls ClassDump/*.h | while read HEADER; do printf "#import <${HEADER}>\n"; done`
-// (run from `Sources/ClassDumpRuntime/include`)
-
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
-#import
diff --git a/ClassDump/Models/CDGenerationOptions.m b/ClassDump/Models/CDGenerationOptions.m
deleted file mode 100644
index 5b3f967..0000000
--- a/ClassDump/Models/CDGenerationOptions.m
+++ /dev/null
@@ -1,13 +0,0 @@
-//
-// CDGenerationOptions.m
-// ClassDump
-//
-// Created by Leptos on 2/25/24.
-// Copyright © 2024 Leptos. All rights reserved.
-//
-
-#import "CDGenerationOptions.h"
-
-@implementation CDGenerationOptions
-
-@end
diff --git a/ClassDump.xcodeproj/project.pbxproj b/ClassDumpRuntime.xcodeproj/project.pbxproj
similarity index 75%
rename from ClassDump.xcodeproj/project.pbxproj
rename to ClassDumpRuntime.xcodeproj/project.pbxproj
index a1b45ca..4c52318 100644
--- a/ClassDump.xcodeproj/project.pbxproj
+++ b/ClassDumpRuntime.xcodeproj/project.pbxproj
@@ -7,6 +7,10 @@
objects = {
/* Begin PBXBuildFile section */
+ E9905C4B2C134B040066DFA2 /* ClassDumpRuntimeSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = E9905C4A2C134B040066DFA2 /* ClassDumpRuntimeSwift.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E9905C502C134B2D0066DFA2 /* CDGenerationOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9905C4F2C134B2D0066DFA2 /* CDGenerationOptions.swift */; };
+ E9905C512C134B7D0066DFA2 /* ClassDumpRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA2A00DC23ADD19D00B52F1D /* ClassDumpRuntime.framework */; };
+ E9905C522C134B7D0066DFA2 /* ClassDumpRuntime.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FA2A00DC23ADD19D00B52F1D /* ClassDumpRuntime.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
FA06EA29296934A5008E133B /* CDPropertyAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = FA06EA28296934A5008E133B /* CDPropertyAttribute.m */; };
FA2A00FE23ADD2EA00B52F1D /* CDUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = FA2A00EE23ADD2EA00B52F1D /* CDUtilities.m */; };
FA2A00FF23ADD2EA00B52F1D /* CDTypeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = FA2A00F123ADD2EA00B52F1D /* CDTypeParser.m */; };
@@ -16,7 +20,7 @@
FA2A010323ADD2EA00B52F1D /* CDMethodModel.m in Sources */ = {isa = PBXBuildFile; fileRef = FA2A00FA23ADD2EA00B52F1D /* CDMethodModel.m */; };
FA2A010423ADD2EA00B52F1D /* CDClassModel.m in Sources */ = {isa = PBXBuildFile; fileRef = FA2A00FC23ADD2EA00B52F1D /* CDClassModel.m */; };
FA2A011C23AEB15700B52F1D /* CDParsePrimitiveTests.m in Sources */ = {isa = PBXBuildFile; fileRef = FA2A011B23AEB15700B52F1D /* CDParsePrimitiveTests.m */; };
- FA2A011E23AEB15700B52F1D /* ClassDump.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA2A00DC23ADD19D00B52F1D /* ClassDump.framework */; };
+ FA2A011E23AEB15700B52F1D /* ClassDumpRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA2A00DC23ADD19D00B52F1D /* ClassDumpRuntime.framework */; };
FA53C6A42B8DA8C700FC1A15 /* NSArray+CDFiltering.m in Sources */ = {isa = PBXBuildFile; fileRef = FA53C6A32B8DA8C700FC1A15 /* NSArray+CDFiltering.m */; };
FA53C6A62B8DA8E200FC1A15 /* NSArray+CDFiltering.h in Sources */ = {isa = PBXBuildFile; fileRef = FA53C6A52B8DA8E200FC1A15 /* NSArray+CDFiltering.h */; };
FA53C6A92B8DA96E00FC1A15 /* NSArray+CDFiltering.h in Headers */ = {isa = PBXBuildFile; fileRef = FA53C6A52B8DA8E200FC1A15 /* NSArray+CDFiltering.h */; };
@@ -29,7 +33,7 @@
FAAA8C482B8BCCE900BD85B4 /* CDGenerationOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = FAAA8C462B8BCCE900BD85B4 /* CDGenerationOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
FAAA8C492B8BCCE900BD85B4 /* CDGenerationOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = FAAA8C472B8BCCE900BD85B4 /* CDGenerationOptions.m */; };
FAE3C1102B81E11000242A99 /* CDVariableModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FAF031F22942FC3B00B6C424 /* CDVariableModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
- FAE3C1112B81E11A00242A99 /* ClassDump.h in Headers */ = {isa = PBXBuildFile; fileRef = FA2A00EB23ADD21200B52F1D /* ClassDump.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FAE3C1112B81E11A00242A99 /* ClassDumpRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = FA2A00EB23ADD21200B52F1D /* ClassDumpRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; };
FAE3C1182B81E1A000242A99 /* CDPrimitiveType.h in Headers */ = {isa = PBXBuildFile; fileRef = FAF031E32942F6C400B6C424 /* CDPrimitiveType.h */; settings = {ATTRIBUTES = (Public, ); }; };
FAE3C1192B81E1A000242A99 /* CDArrayType.h in Headers */ = {isa = PBXBuildFile; fileRef = FAF031F52942FF2A00B6C424 /* CDArrayType.h */; settings = {ATTRIBUTES = (Public, ); }; };
FAE3C11A2B81E1A000242A99 /* CDProtocolModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FA2A00FB23ADD2EA00B52F1D /* CDProtocolModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -47,7 +51,7 @@
FAE3C1262B81E1A000242A99 /* CDPropertyAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = FA06EA27296934A5008E133B /* CDPropertyAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; };
FAE3C1572B81E5AC00242A99 /* CDTypeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FA2A00EF23ADD2EA00B52F1D /* CDTypeParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
FAE3C1592B81E5B300242A99 /* CDUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = FA2A00F023ADD2EA00B52F1D /* CDUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
- FAE3C1632B81E70D00242A99 /* ClassDump.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FA2A00DC23ADD19D00B52F1D /* ClassDump.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ FAE3C1632B81E70D00242A99 /* ClassDumpRuntime.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FA2A00DC23ADD19D00B52F1D /* ClassDumpRuntime.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
FAE71A7523DA0AB20079321A /* CDObjCTests.m in Sources */ = {isa = PBXBuildFile; fileRef = FAE71A7423DA0AB20079321A /* CDObjCTests.m */; };
FAF031E22942E4FF00B6C424 /* CDParseType.m in Sources */ = {isa = PBXBuildFile; fileRef = FAF031E12942E4FF00B6C424 /* CDParseType.m */; };
FAF031E52942F6C400B6C424 /* CDPrimitiveType.m in Sources */ = {isa = PBXBuildFile; fileRef = FAF031E42942F6C400B6C424 /* CDPrimitiveType.m */; };
@@ -61,6 +65,13 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
+ E9905C532C134B7D0066DFA2 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = FA2A00D423ADD19D00B52F1D /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = FA2A00DB23ADD19D00B52F1D;
+ remoteInfo = ClassDump;
+ };
FA2A011F23AEB15700B52F1D /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FA2A00D423ADD19D00B52F1D /* Project object */;
@@ -71,13 +82,24 @@
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
+ E9905C552C134B7D0066DFA2 /* Embed Frameworks */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ E9905C522C134B7D0066DFA2 /* ClassDumpRuntime.framework in Embed Frameworks */,
+ );
+ name = "Embed Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
FAE3C1662B81E70D00242A99 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
- FAE3C1632B81E70D00242A99 /* ClassDump.framework in Embed Frameworks */,
+ FAE3C1632B81E70D00242A99 /* ClassDumpRuntime.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -85,10 +107,13 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ E9905C482C134B040066DFA2 /* ClassDumpRuntimeSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ClassDumpRuntimeSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ E9905C4A2C134B040066DFA2 /* ClassDumpRuntimeSwift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClassDumpRuntimeSwift.h; sourceTree = ""; };
+ E9905C4F2C134B2D0066DFA2 /* CDGenerationOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CDGenerationOptions.swift; sourceTree = ""; };
FA06EA27296934A5008E133B /* CDPropertyAttribute.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CDPropertyAttribute.h; sourceTree = ""; };
FA06EA28296934A5008E133B /* CDPropertyAttribute.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CDPropertyAttribute.m; sourceTree = ""; };
- FA2A00DC23ADD19D00B52F1D /* ClassDump.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ClassDump.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- FA2A00EB23ADD21200B52F1D /* ClassDump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassDump.h; sourceTree = ""; };
+ FA2A00DC23ADD19D00B52F1D /* ClassDumpRuntime.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ClassDumpRuntime.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ FA2A00EB23ADD21200B52F1D /* ClassDumpRuntime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassDumpRuntime.h; sourceTree = ""; };
FA2A00EE23ADD2EA00B52F1D /* CDUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDUtilities.m; sourceTree = ""; };
FA2A00EF23ADD2EA00B52F1D /* CDTypeParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDTypeParser.h; sourceTree = ""; };
FA2A00F023ADD2EA00B52F1D /* CDUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDUtilities.h; sourceTree = ""; };
@@ -103,9 +128,9 @@
FA2A00FA23ADD2EA00B52F1D /* CDMethodModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDMethodModel.m; sourceTree = ""; };
FA2A00FB23ADD2EA00B52F1D /* CDProtocolModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDProtocolModel.h; sourceTree = ""; };
FA2A00FC23ADD2EA00B52F1D /* CDClassModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDClassModel.m; sourceTree = ""; };
- FA2A011923AEB15700B52F1D /* ClassDumpTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ClassDumpTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ FA2A011923AEB15700B52F1D /* ClassDumpRuntimeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ClassDumpRuntimeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
FA2A011B23AEB15700B52F1D /* CDParsePrimitiveTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CDParsePrimitiveTests.m; sourceTree = ""; };
- FA2A012423AEB98400B52F1D /* ClassDump.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = ClassDump.xctestplan; sourceTree = ""; };
+ FA2A012423AEB98400B52F1D /* ClassDumpRuntime.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = ClassDumpRuntime.xctestplan; sourceTree = ""; };
FA53C6A32B8DA8C700FC1A15 /* NSArray+CDFiltering.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSArray+CDFiltering.m"; sourceTree = ""; };
FA53C6A52B8DA8E200FC1A15 /* NSArray+CDFiltering.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSArray+CDFiltering.h"; sourceTree = ""; };
FA53C6C52B9533A300FC1A15 /* CDProtocolModel+Conformance.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CDProtocolModel+Conformance.h"; sourceTree = ""; };
@@ -139,6 +164,14 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ E9905C452C134B040066DFA2 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E9905C512C134B7D0066DFA2 /* ClassDumpRuntime.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
FA2A00D923ADD19D00B52F1D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -150,13 +183,22 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- FA2A011E23AEB15700B52F1D /* ClassDump.framework in Frameworks */,
+ FA2A011E23AEB15700B52F1D /* ClassDumpRuntime.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ E9905C492C134B040066DFA2 /* ClassDumpRuntimeSwift */ = {
+ isa = PBXGroup;
+ children = (
+ E9905C4A2C134B040066DFA2 /* ClassDumpRuntimeSwift.h */,
+ E9905C4F2C134B2D0066DFA2 /* CDGenerationOptions.swift */,
+ );
+ path = ClassDumpRuntimeSwift;
+ sourceTree = "";
+ };
FA06EB0D296DDB7A008E133B /* Reflections */ = {
isa = PBXGroup;
children = (
@@ -181,8 +223,9 @@
FA2A00D323ADD19D00B52F1D = {
isa = PBXGroup;
children = (
- FA2A00DE23ADD19D00B52F1D /* ClassDump */,
- FA2A011A23AEB15700B52F1D /* ClassDumpTests */,
+ FA2A00DE23ADD19D00B52F1D /* ClassDumpRuntime */,
+ FA2A011A23AEB15700B52F1D /* ClassDumpRuntimeTests */,
+ E9905C492C134B040066DFA2 /* ClassDumpRuntimeSwift */,
FA2A00DD23ADD19D00B52F1D /* Products */,
FAE3C1122B81E17200242A99 /* Frameworks */,
);
@@ -191,21 +234,22 @@
FA2A00DD23ADD19D00B52F1D /* Products */ = {
isa = PBXGroup;
children = (
- FA2A00DC23ADD19D00B52F1D /* ClassDump.framework */,
- FA2A011923AEB15700B52F1D /* ClassDumpTests.xctest */,
+ FA2A00DC23ADD19D00B52F1D /* ClassDumpRuntime.framework */,
+ FA2A011923AEB15700B52F1D /* ClassDumpRuntimeTests.xctest */,
+ E9905C482C134B040066DFA2 /* ClassDumpRuntimeSwift.framework */,
);
name = Products;
sourceTree = "";
};
- FA2A00DE23ADD19D00B52F1D /* ClassDump */ = {
+ FA2A00DE23ADD19D00B52F1D /* ClassDumpRuntime */ = {
isa = PBXGroup;
children = (
- FA2A012423AEB98400B52F1D /* ClassDump.xctestplan */,
- FA2A00EB23ADD21200B52F1D /* ClassDump.h */,
+ FA2A012423AEB98400B52F1D /* ClassDumpRuntime.xctestplan */,
+ FA2A00EB23ADD21200B52F1D /* ClassDumpRuntime.h */,
FA2A00ED23ADD2EA00B52F1D /* Services */,
FA2A00F223ADD2EA00B52F1D /* Models */,
);
- path = ClassDump;
+ path = ClassDumpRuntime;
sourceTree = "";
};
FA2A00ED23ADD2EA00B52F1D /* Services */ = {
@@ -236,7 +280,7 @@
path = Models;
sourceTree = "";
};
- FA2A011A23AEB15700B52F1D /* ClassDumpTests */ = {
+ FA2A011A23AEB15700B52F1D /* ClassDumpRuntimeTests */ = {
isa = PBXGroup;
children = (
FA2A011B23AEB15700B52F1D /* CDParsePrimitiveTests.m */,
@@ -245,7 +289,7 @@
FAE71A7423DA0AB20079321A /* CDObjCTests.m */,
FA53C6C92B959A8100FC1A15 /* CDProtocolTest.m */,
);
- path = ClassDumpTests;
+ path = ClassDumpRuntimeTests;
sourceTree = "";
};
FAE3C1122B81E17200242A99 /* Frameworks */ = {
@@ -281,6 +325,14 @@
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
+ E9905C432C134B040066DFA2 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E9905C4B2C134B040066DFA2 /* ClassDumpRuntimeSwift.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
FAE3C10F2B81E10700242A99 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@@ -298,7 +350,7 @@
FAE3C1262B81E1A000242A99 /* CDPropertyAttribute.h in Headers */,
FAE3C1222B81E1A000242A99 /* CDObjectType.h in Headers */,
FAE3C1592B81E5B300242A99 /* CDUtilities.h in Headers */,
- FAE3C1112B81E11A00242A99 /* ClassDump.h in Headers */,
+ FAE3C1112B81E11A00242A99 /* ClassDumpRuntime.h in Headers */,
FA53C6C72B9533A400FC1A15 /* CDProtocolModel+Conformance.h in Headers */,
FAE3C1232B81E1A000242A99 /* CDIvarModel.h in Headers */,
FAE3C1192B81E1A000242A99 /* CDArrayType.h in Headers */,
@@ -313,9 +365,29 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- FA2A00DB23ADD19D00B52F1D /* ClassDump */ = {
+ E9905C472C134B040066DFA2 /* ClassDumpRuntimeSwift */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = E9905C4E2C134B040066DFA2 /* Build configuration list for PBXNativeTarget "ClassDumpRuntimeSwift" */;
+ buildPhases = (
+ E9905C432C134B040066DFA2 /* Headers */,
+ E9905C442C134B040066DFA2 /* Sources */,
+ E9905C452C134B040066DFA2 /* Frameworks */,
+ E9905C462C134B040066DFA2 /* Resources */,
+ E9905C552C134B7D0066DFA2 /* Embed Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ E9905C542C134B7D0066DFA2 /* PBXTargetDependency */,
+ );
+ name = ClassDumpRuntimeSwift;
+ productName = ClassDumpRuntimeSwift;
+ productReference = E9905C482C134B040066DFA2 /* ClassDumpRuntimeSwift.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ FA2A00DB23ADD19D00B52F1D /* ClassDumpRuntime */ = {
isa = PBXNativeTarget;
- buildConfigurationList = FA2A00E523ADD19D00B52F1D /* Build configuration list for PBXNativeTarget "ClassDump" */;
+ buildConfigurationList = FA2A00E523ADD19D00B52F1D /* Build configuration list for PBXNativeTarget "ClassDumpRuntime" */;
buildPhases = (
FAE3C10F2B81E10700242A99 /* Headers */,
FA2A00D823ADD19D00B52F1D /* Sources */,
@@ -325,14 +397,14 @@
);
dependencies = (
);
- name = ClassDump;
+ name = ClassDumpRuntime;
productName = ClassDump;
- productReference = FA2A00DC23ADD19D00B52F1D /* ClassDump.framework */;
+ productReference = FA2A00DC23ADD19D00B52F1D /* ClassDumpRuntime.framework */;
productType = "com.apple.product-type.framework";
};
- FA2A011823AEB15700B52F1D /* ClassDumpTests */ = {
+ FA2A011823AEB15700B52F1D /* ClassDumpRuntimeTests */ = {
isa = PBXNativeTarget;
- buildConfigurationList = FA2A012323AEB15700B52F1D /* Build configuration list for PBXNativeTarget "ClassDumpTests" */;
+ buildConfigurationList = FA2A012323AEB15700B52F1D /* Build configuration list for PBXNativeTarget "ClassDumpRuntimeTests" */;
buildPhases = (
FA2A011523AEB15700B52F1D /* Sources */,
FA2A011623AEB15700B52F1D /* Frameworks */,
@@ -344,9 +416,9 @@
dependencies = (
FA2A012023AEB15700B52F1D /* PBXTargetDependency */,
);
- name = ClassDumpTests;
+ name = ClassDumpRuntimeTests;
productName = ClassDumpTests;
- productReference = FA2A011923AEB15700B52F1D /* ClassDumpTests.xctest */;
+ productReference = FA2A011923AEB15700B52F1D /* ClassDumpRuntimeTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
@@ -359,6 +431,10 @@
LastUpgradeCheck = 1530;
ORGANIZATIONNAME = Leptos;
TargetAttributes = {
+ E9905C472C134B040066DFA2 = {
+ CreatedOnToolsVersion = 15.4;
+ LastSwiftMigration = 1540;
+ };
FA2A00DB23ADD19D00B52F1D = {
CreatedOnToolsVersion = 11.3;
};
@@ -367,7 +443,7 @@
};
};
};
- buildConfigurationList = FA2A00D723ADD19D00B52F1D /* Build configuration list for PBXProject "ClassDump" */;
+ buildConfigurationList = FA2A00D723ADD19D00B52F1D /* Build configuration list for PBXProject "ClassDumpRuntime" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
@@ -380,13 +456,21 @@
projectDirPath = "";
projectRoot = "";
targets = (
- FA2A00DB23ADD19D00B52F1D /* ClassDump */,
- FA2A011823AEB15700B52F1D /* ClassDumpTests */,
+ FA2A00DB23ADD19D00B52F1D /* ClassDumpRuntime */,
+ FA2A011823AEB15700B52F1D /* ClassDumpRuntimeTests */,
+ E9905C472C134B040066DFA2 /* ClassDumpRuntimeSwift */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
+ E9905C462C134B040066DFA2 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
FA2A011723AEB15700B52F1D /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -397,6 +481,14 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ E9905C442C134B040066DFA2 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E9905C502C134B2D0066DFA2 /* CDGenerationOptions.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
FA2A00D823ADD19D00B52F1D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -441,14 +533,115 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
+ E9905C542C134B7D0066DFA2 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = FA2A00DB23ADD19D00B52F1D /* ClassDumpRuntime */;
+ targetProxy = E9905C532C134B7D0066DFA2 /* PBXContainerItemProxy */;
+ };
FA2A012023AEB15700B52F1D /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
- target = FA2A00DB23ADD19D00B52F1D /* ClassDump */;
+ target = FA2A00DB23ADD19D00B52F1D /* ClassDumpRuntime */;
targetProxy = FA2A011F23AEB15700B52F1D /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
+ E9905C4C2C134B040066DFA2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CODE_SIGN_STYLE = Automatic;
+ COMBINE_HIDPI_IMAGES = YES;
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu17;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Leptos. All rights reserved.";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 14.5;
+ MARKETING_VERSION = 1.0;
+ MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
+ MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
+ PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDumpRuntimeSwift;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_INSTALL_OBJC_HEADER = NO;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ E9905C4D2C134B040066DFA2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CODE_SIGN_STYLE = Automatic;
+ COMBINE_HIDPI_IMAGES = YES;
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu17;
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Leptos. All rights reserved.";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/Frameworks",
+ );
+ LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ MACOSX_DEPLOYMENT_TARGET = 14.5;
+ MARKETING_VERSION = 1.0;
+ MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
+ MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
+ PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDumpRuntimeSwift;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_INSTALL_OBJC_HEADER = NO;
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
FA2A00E323ADD19D00B52F1D /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -585,7 +778,7 @@
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = YES;
- DEVELOPMENT_TEAM = 7P56K8K4MY;
+ DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
@@ -602,7 +795,7 @@
MARKETING_VERSION = 1.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++17";
- PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDump;
+ PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDumpRuntime;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SKIP_INSTALL = YES;
@@ -623,7 +816,7 @@
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = YES;
- DEVELOPMENT_TEAM = 7P56K8K4MY;
+ DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
@@ -640,7 +833,7 @@
MARKETING_VERSION = 1.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++17";
- PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDump;
+ PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDumpRuntime;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SKIP_INSTALL = YES;
@@ -657,13 +850,13 @@
buildSettings = {
ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
CODE_SIGN_IDENTITY = "-";
- INFOPLIST_FILE = ClassDumpTests/Info.plist;
+ INFOPLIST_FILE = ClassDumpRuntimeTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDumpTests;
+ PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDumpRuntimeTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator";
SUPPORTS_MACCATALYST = YES;
@@ -677,13 +870,13 @@
buildSettings = {
ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
CODE_SIGN_IDENTITY = "-";
- INFOPLIST_FILE = ClassDumpTests/Info.plist;
+ INFOPLIST_FILE = ClassDumpRuntimeTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDumpTests;
+ PRODUCT_BUNDLE_IDENTIFIER = null.leptos.ClassDumpRuntimeTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator xros xrsimulator";
SUPPORTS_MACCATALYST = YES;
@@ -695,7 +888,16 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- FA2A00D723ADD19D00B52F1D /* Build configuration list for PBXProject "ClassDump" */ = {
+ E9905C4E2C134B040066DFA2 /* Build configuration list for PBXNativeTarget "ClassDumpRuntimeSwift" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E9905C4C2C134B040066DFA2 /* Debug */,
+ E9905C4D2C134B040066DFA2 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FA2A00D723ADD19D00B52F1D /* Build configuration list for PBXProject "ClassDumpRuntime" */ = {
isa = XCConfigurationList;
buildConfigurations = (
FA2A00E323ADD19D00B52F1D /* Debug */,
@@ -704,7 +906,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- FA2A00E523ADD19D00B52F1D /* Build configuration list for PBXNativeTarget "ClassDump" */ = {
+ FA2A00E523ADD19D00B52F1D /* Build configuration list for PBXNativeTarget "ClassDumpRuntime" */ = {
isa = XCConfigurationList;
buildConfigurations = (
FA2A00E623ADD19D00B52F1D /* Debug */,
@@ -713,7 +915,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- FA2A012323AEB15700B52F1D /* Build configuration list for PBXNativeTarget "ClassDumpTests" */ = {
+ FA2A012323AEB15700B52F1D /* Build configuration list for PBXNativeTarget "ClassDumpRuntimeTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
FA2A012123AEB15700B52F1D /* Debug */,
diff --git a/ClassDumpRuntime.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ClassDumpRuntime.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..9f0809f
--- /dev/null
+++ b/ClassDumpRuntime.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/ClassDump.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ClassDumpRuntime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from ClassDump.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to ClassDumpRuntime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/ClassDump.xcodeproj/xcshareddata/xcschemes/ClassDump.xcscheme b/ClassDumpRuntime.xcodeproj/xcshareddata/xcschemes/ClassDumpRuntime.xcscheme
similarity index 73%
rename from ClassDump.xcodeproj/xcshareddata/xcschemes/ClassDump.xcscheme
rename to ClassDumpRuntime.xcodeproj/xcshareddata/xcschemes/ClassDumpRuntime.xcscheme
index dd48c11..b40c11a 100644
--- a/ClassDump.xcodeproj/xcshareddata/xcschemes/ClassDump.xcscheme
+++ b/ClassDumpRuntime.xcodeproj/xcshareddata/xcschemes/ClassDumpRuntime.xcscheme
@@ -1,10 +1,11 @@
+ buildImplicitDependencies = "YES"
+ buildArchitectures = "Automatic">
+ BuildableName = "ClassDumpRuntime.framework"
+ BlueprintName = "ClassDumpRuntime"
+ ReferencedContainer = "container:ClassDumpRuntime.xcodeproj">
@@ -26,13 +27,8 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- shouldUseLaunchSchemeArgsEnv = "YES">
-
-
-
-
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ shouldAutocreateTestPlan = "YES">
+ BuildableName = "ClassDumpRuntime.framework"
+ BlueprintName = "ClassDumpRuntime"
+ ReferencedContainer = "container:ClassDumpRuntime.xcodeproj">
+ buildConfiguration = "Debug">
+ LastUpgradeVersion = "1540"
+ version = "1.7">
+ buildImplicitDependencies = "YES"
+ buildArchitectures = "Automatic">
+ shouldAutocreateTestPlan = "YES">
+ skipped = "NO">
+ BuildableName = "ClassDumpRuntimeTests.xctest"
+ BlueprintName = "ClassDumpRuntimeTests"
+ ReferencedContainer = "container:ClassDumpRuntime.xcodeproj">
diff --git a/ClassDumpRuntime/ClassDumpRuntime.h b/ClassDumpRuntime/ClassDumpRuntime.h
new file mode 100644
index 0000000..01e09f9
--- /dev/null
+++ b/ClassDumpRuntime/ClassDumpRuntime.h
@@ -0,0 +1,37 @@
+//
+// ClassDumpRuntime.h
+// ClassDumpRuntime
+//
+// Created by Leptos on 3/24/19.
+// Copyright © 2019 Leptos. All rights reserved.
+//
+
+// to support building as both an Xcode framework and a Swift Package,
+// all headers that are marked as "public" for the Xcode framework
+// should have a symlink in `Sources/ClassDumpRuntime/include/ClassDumpRuntime`;
+// all those files should then be imported below.
+//
+// you can generate these imports using a shell script such as
+// `ls ClassDumpRuntime/*.h | while read HEADER; do printf "#import <${HEADER}>\n"; done`
+// (run from `Sources/ClassDumpRuntime/include`)
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
diff --git a/ClassDump/ClassDump.xctestplan b/ClassDumpRuntime/ClassDumpRuntime.xctestplan
similarity index 81%
rename from ClassDump/ClassDump.xctestplan
rename to ClassDumpRuntime/ClassDumpRuntime.xctestplan
index 65318ce..74cc3d2 100644
--- a/ClassDump/ClassDump.xctestplan
+++ b/ClassDumpRuntime/ClassDumpRuntime.xctestplan
@@ -18,9 +18,9 @@
"testTargets" : [
{
"target" : {
- "containerPath" : "container:ClassDump.xcodeproj",
+ "containerPath" : "container:ClassDumpRuntime.xcodeproj",
"identifier" : "FA2A011823AEB15700B52F1D",
- "name" : "ClassDumpTests"
+ "name" : "ClassDumpRuntimeTests"
}
}
],
diff --git a/ClassDump/Models/CDGenerationOptions.h b/ClassDumpRuntime/Models/CDGenerationOptions.h
similarity index 88%
rename from ClassDump/Models/CDGenerationOptions.h
rename to ClassDumpRuntime/Models/CDGenerationOptions.h
index 2d5f9a7..16448d7 100644
--- a/ClassDump/Models/CDGenerationOptions.h
+++ b/ClassDumpRuntime/Models/CDGenerationOptions.h
@@ -1,6 +1,6 @@
//
// CDGenerationOptions.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 2/25/24.
// Copyright © 2024 Leptos. All rights reserved.
@@ -8,8 +8,10 @@
#import
+NS_HEADER_AUDIT_BEGIN(nullability)
/// Options with which a header file may be generated with
-@interface CDGenerationOptions : NSObject
+NS_REFINED_FOR_SWIFT
+@interface CDGenerationOptions : NSObject
/// @c YES means hide properties and methods that are required by a protocol the type conforms to
///
/// This property applies to both classes and protocols.
@@ -49,4 +51,10 @@
/// This property applies to both classes and protocols.
@property (nonatomic) BOOL addSymbolImageComments;
+@property (nonatomic) BOOL addIvarOffsetComments;
+
+@property (nonatomic) BOOL expandIvarRecordTypeMembers;
+
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDumpRuntime/Models/CDGenerationOptions.m b/ClassDumpRuntime/Models/CDGenerationOptions.m
new file mode 100644
index 0000000..abd2ed9
--- /dev/null
+++ b/ClassDumpRuntime/Models/CDGenerationOptions.m
@@ -0,0 +1,27 @@
+//
+// CDGenerationOptions.m
+// ClassDumpRuntime
+//
+// Created by Leptos on 2/25/24.
+// Copyright © 2024 Leptos. All rights reserved.
+//
+
+#import "CDGenerationOptions.h"
+
+@implementation CDGenerationOptions
+
+- (id)copyWithZone:(NSZone *)zone {
+ CDGenerationOptions *options = [CDGenerationOptions new];
+ options.stripProtocolConformance = _stripProtocolConformance;
+ options.stripOverrides = _stripOverrides;
+ options.stripDuplicates = _stripDuplicates;
+ options.stripSynthesized = _stripSynthesized;
+ options.stripCtorMethod = _stripCtorMethod;
+ options.stripDtorMethod = _stripDtorMethod;
+ options.addSymbolImageComments = _addSymbolImageComments;
+ options.addIvarOffsetComments = _addIvarOffsetComments;
+ options.expandIvarRecordTypeMembers = _expandIvarRecordTypeMembers;
+ return options;
+}
+
+@end
diff --git a/ClassDump/Models/CDSemanticString.h b/ClassDumpRuntime/Models/CDSemanticString.h
similarity index 80%
rename from ClassDump/Models/CDSemanticString.h
rename to ClassDumpRuntime/Models/CDSemanticString.h
index c825a20..d345309 100644
--- a/ClassDump/Models/CDSemanticString.h
+++ b/ClassDumpRuntime/Models/CDSemanticString.h
@@ -1,6 +1,6 @@
//
// CDSemanticString.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 1/1/23.
// Copyright © 2023 Leptos. All rights reserved.
@@ -27,18 +27,23 @@ typedef NS_ENUM(NSUInteger, CDSemanticType) {
CDSemanticTypeProtocol,
// a number literal (e.g. 2, 18, 1e5, 7.1)
CDSemanticTypeNumeric,
-
+ // an Obj-C method (e.g. initWithFrame)
+ CDSemanticTypeMethod,
+ // an Obj-C method argument (e.g. a0, a1, a2)
+ CDSemanticTypeMethodArgument,
/// The number of valid cases there are in @c CDSemanticType
CDSemanticTypeCount
};
+NS_HEADER_AUDIT_BEGIN(nullability)
+
/// A string composed of substrings that may have different semantic meanings
-@interface CDSemanticString : NSObject
+@interface CDSemanticString : NSObject
/// The length of the string
@property (readonly) NSUInteger length;
/// Append another semantic string to the end of this string,
/// keeping all of the semantics of both the parameter and receiver
-- (void)appendSemanticString:(nonnull CDSemanticString *)semanticString;
+- (void)appendSemanticString:(CDSemanticString *)semanticString;
/// Append a string with a semantic type to the end of this string
- (void)appendString:(nullable NSString *)string semanticType:(CDSemanticType)type;
/// Whether the first character in this string is equal to @c character
@@ -46,14 +51,16 @@ typedef NS_ENUM(NSUInteger, CDSemanticType) {
/// Whether the last character in this string is equal to @c character
- (BOOL)endWithChar:(char)character;
/// Enumerate the substrings and the associated semantic type that compose this string
-- (void)enumerateTypesUsingBlock:(void (NS_NOESCAPE ^_Nonnull)(NSString *_Nonnull string, CDSemanticType type))block;
+- (void)enumerateTypesUsingBlock:(void (NS_NOESCAPE ^)(NSString *string, CDSemanticType type))block;
/// Enumerate the longest effective substrings and the associated semantic type that compose this string
///
/// Each invocation of @c block will have the longest substring of @c type such that the next
/// invocation will have a different @c type
-- (void)enumerateLongestEffectiveRangesUsingBlock:(void (NS_NOESCAPE ^_Nonnull)(NSString *_Nonnull string, CDSemanticType type))block;
+- (void)enumerateLongestEffectiveRangesUsingBlock:(void (NS_NOESCAPE ^)(NSString *string, CDSemanticType type))block;
/// The string representation without semantics
-- (nonnull NSString *)string;
+- (NSString *)string;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/CDSemanticString.m b/ClassDumpRuntime/Models/CDSemanticString.m
similarity index 69%
rename from ClassDump/Models/CDSemanticString.m
rename to ClassDumpRuntime/Models/CDSemanticString.m
index c3c21d2..a56167d 100644
--- a/ClassDump/Models/CDSemanticString.m
+++ b/ClassDumpRuntime/Models/CDSemanticString.m
@@ -1,6 +1,6 @@
//
// CDSemanticString.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 1/1/23.
// Copyright © 2023 Leptos. All rights reserved.
@@ -8,12 +8,30 @@
#import "CDSemanticString.h"
-@interface CDSemanticStringStaple : NSObject
+@interface CDSemanticStringStaple : NSObject
@property (strong, nonatomic) NSString *string;
@property (nonatomic) CDSemanticType type;
@end
@implementation CDSemanticStringStaple
+
+- (instancetype)initWithCoder:(NSCoder *)coder {
+ if (self = [super init]) {
+ _string = [coder decodeObjectOfClass:[NSString class] forKey:NSStringFromSelector(@selector(string))];
+ _type = [coder decodeIntegerForKey:NSStringFromSelector(@selector(type))];
+ }
+ return self;
+}
+
+- (void)encodeWithCoder:(NSCoder *)coder {
+ [coder encodeObject:_string forKey:NSStringFromSelector(@selector(string))];
+ [coder encodeInteger:_type forKey:NSStringFromSelector(@selector(type))];
+}
+
++ (BOOL)supportsSecureCoding {
+ return YES;
+}
+
@end
@@ -29,6 +47,23 @@ - (instancetype)init {
return self;
}
+- (instancetype)initWithCoder:(NSCoder *)coder {
+ if (self = [super init]) {
+ _components = [coder decodeObjectOfClasses:[NSSet setWithObjects:[CDSemanticStringStaple class], [NSMutableArray class], nil] forKey:@"components"];
+ _length = [coder decodeIntegerForKey:NSStringFromSelector(@selector(length))];
+ }
+ return self;
+}
+
+- (void)encodeWithCoder:(NSCoder *)coder {
+ [coder encodeObject:_components forKey:@"components"];
+ [coder encodeInteger:_length forKey:NSStringFromSelector(@selector(length))];
+}
+
++ (BOOL)supportsSecureCoding {
+ return YES;
+}
+
- (void)appendSemanticString:(CDSemanticString *)semanticString {
[_components addObjectsFromArray:semanticString->_components];
_length += semanticString.length;
diff --git a/ClassDump/Models/CDVariableModel.h b/ClassDumpRuntime/Models/CDVariableModel.h
similarity index 68%
rename from ClassDump/Models/CDVariableModel.h
rename to ClassDumpRuntime/Models/CDVariableModel.h
index e99586a..5cdb468 100644
--- a/ClassDump/Models/CDVariableModel.h
+++ b/ClassDumpRuntime/Models/CDVariableModel.h
@@ -1,6 +1,6 @@
//
// CDVariableModel.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
@@ -8,7 +8,9 @@
#import
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
@interface CDVariableModel : NSObject
@@ -16,3 +18,5 @@
@property (strong, nonatomic) CDParseType *type;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/CDVariableModel.m b/ClassDumpRuntime/Models/CDVariableModel.m
similarity index 97%
rename from ClassDump/Models/CDVariableModel.m
rename to ClassDumpRuntime/Models/CDVariableModel.m
index b2dd989..7662d87 100644
--- a/ClassDump/Models/CDVariableModel.m
+++ b/ClassDumpRuntime/Models/CDVariableModel.m
@@ -1,6 +1,6 @@
//
// CDVariableModel.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
diff --git a/ClassDump/Models/NSArray+CDFiltering.h b/ClassDumpRuntime/Models/NSArray+CDFiltering.h
similarity index 94%
rename from ClassDump/Models/NSArray+CDFiltering.h
rename to ClassDumpRuntime/Models/NSArray+CDFiltering.h
index 9798fb8..2dbba02 100644
--- a/ClassDump/Models/NSArray+CDFiltering.h
+++ b/ClassDumpRuntime/Models/NSArray+CDFiltering.h
@@ -1,6 +1,6 @@
//
// NSArray+CDFiltering.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 2/26/24.
// Copyright © 2024 Leptos. All rights reserved.
diff --git a/ClassDump/Models/NSArray+CDFiltering.m b/ClassDumpRuntime/Models/NSArray+CDFiltering.m
similarity index 97%
rename from ClassDump/Models/NSArray+CDFiltering.m
rename to ClassDumpRuntime/Models/NSArray+CDFiltering.m
index e8c9896..062ebb5 100644
--- a/ClassDump/Models/NSArray+CDFiltering.m
+++ b/ClassDumpRuntime/Models/NSArray+CDFiltering.m
@@ -1,6 +1,6 @@
//
// NSArray+CDFiltering.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 2/26/24.
// Copyright © 2024 Leptos. All rights reserved.
diff --git a/ClassDump/Models/ParseTypes/CDArrayType.h b/ClassDumpRuntime/Models/ParseTypes/CDArrayType.h
similarity index 72%
rename from ClassDump/Models/ParseTypes/CDArrayType.h
rename to ClassDumpRuntime/Models/ParseTypes/CDArrayType.h
index 14014f8..9abe59d 100644
--- a/ClassDump/Models/ParseTypes/CDArrayType.h
+++ b/ClassDumpRuntime/Models/ParseTypes/CDArrayType.h
@@ -1,12 +1,14 @@
//
// CDArrayType.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
//
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
/// Type representing a C array
@interface CDArrayType : CDParseType
@@ -16,3 +18,5 @@
@property (nonatomic) NSUInteger size;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/ParseTypes/CDArrayType.m b/ClassDumpRuntime/Models/ParseTypes/CDArrayType.m
similarity index 99%
rename from ClassDump/Models/ParseTypes/CDArrayType.m
rename to ClassDumpRuntime/Models/ParseTypes/CDArrayType.m
index 815c36d..ee82820 100644
--- a/ClassDump/Models/ParseTypes/CDArrayType.m
+++ b/ClassDumpRuntime/Models/ParseTypes/CDArrayType.m
@@ -1,6 +1,6 @@
//
// CDArrayType.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
diff --git a/ClassDump/Models/ParseTypes/CDBitFieldType.h b/ClassDumpRuntime/Models/ParseTypes/CDBitFieldType.h
similarity index 68%
rename from ClassDump/Models/ParseTypes/CDBitFieldType.h
rename to ClassDumpRuntime/Models/ParseTypes/CDBitFieldType.h
index ce71515..a4704e5 100644
--- a/ClassDump/Models/ParseTypes/CDBitFieldType.h
+++ b/ClassDumpRuntime/Models/ParseTypes/CDBitFieldType.h
@@ -1,12 +1,14 @@
//
// CDBitFieldType.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
//
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
/// Type representing a bit-field in a record
@interface CDBitFieldType : CDParseType
@@ -14,3 +16,5 @@
@property (nonatomic) NSUInteger width;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/ParseTypes/CDBitFieldType.m b/ClassDumpRuntime/Models/ParseTypes/CDBitFieldType.m
similarity index 99%
rename from ClassDump/Models/ParseTypes/CDBitFieldType.m
rename to ClassDumpRuntime/Models/ParseTypes/CDBitFieldType.m
index 516b6c5..1c7944c 100644
--- a/ClassDump/Models/ParseTypes/CDBitFieldType.m
+++ b/ClassDumpRuntime/Models/ParseTypes/CDBitFieldType.m
@@ -1,6 +1,6 @@
//
// CDBitFieldType.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
diff --git a/ClassDump/Models/ParseTypes/CDBlockType.h b/ClassDumpRuntime/Models/ParseTypes/CDBlockType.h
similarity index 75%
rename from ClassDump/Models/ParseTypes/CDBlockType.h
rename to ClassDumpRuntime/Models/ParseTypes/CDBlockType.h
index 10fe2e4..68a1fba 100644
--- a/ClassDump/Models/ParseTypes/CDBlockType.h
+++ b/ClassDumpRuntime/Models/ParseTypes/CDBlockType.h
@@ -1,12 +1,14 @@
//
// CDBlockType.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/15/22.
// Copyright © 2022 Leptos. All rights reserved.
//
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
/// Type representing a block
@interface CDBlockType : CDParseType
@@ -16,3 +18,5 @@
@property (nullable, strong, nonatomic) NSArray *parameterTypes;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/ParseTypes/CDBlockType.m b/ClassDumpRuntime/Models/ParseTypes/CDBlockType.m
similarity index 99%
rename from ClassDump/Models/ParseTypes/CDBlockType.m
rename to ClassDumpRuntime/Models/ParseTypes/CDBlockType.m
index d8f6bee..ff2107d 100644
--- a/ClassDump/Models/ParseTypes/CDBlockType.m
+++ b/ClassDumpRuntime/Models/ParseTypes/CDBlockType.m
@@ -1,6 +1,6 @@
//
// CDBlockType.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/15/22.
// Copyright © 2022 Leptos. All rights reserved.
diff --git a/ClassDump/Models/ParseTypes/CDObjectType.h b/ClassDumpRuntime/Models/ParseTypes/CDObjectType.h
similarity index 78%
rename from ClassDump/Models/ParseTypes/CDObjectType.h
rename to ClassDumpRuntime/Models/ParseTypes/CDObjectType.h
index 9bf2e6c..a041d80 100644
--- a/ClassDump/Models/ParseTypes/CDObjectType.h
+++ b/ClassDumpRuntime/Models/ParseTypes/CDObjectType.h
@@ -1,12 +1,14 @@
//
// CDObjectType.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
//
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
/// Type representing an Objective-C object
@interface CDObjectType : CDParseType
@@ -18,3 +20,5 @@
@property (nullable, strong, nonatomic) NSArray *protocolNames;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/ParseTypes/CDObjectType.m b/ClassDumpRuntime/Models/ParseTypes/CDObjectType.m
similarity index 99%
rename from ClassDump/Models/ParseTypes/CDObjectType.m
rename to ClassDumpRuntime/Models/ParseTypes/CDObjectType.m
index f886e2e..e9aa589 100644
--- a/ClassDump/Models/ParseTypes/CDObjectType.m
+++ b/ClassDumpRuntime/Models/ParseTypes/CDObjectType.m
@@ -1,6 +1,6 @@
//
// CDObjectType.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
diff --git a/ClassDump/Models/ParseTypes/CDParseType.h b/ClassDumpRuntime/Models/ParseTypes/CDParseType.h
similarity index 78%
rename from ClassDump/Models/ParseTypes/CDParseType.h
rename to ClassDumpRuntime/Models/ParseTypes/CDParseType.h
index cbaf14f..65a7b19 100644
--- a/ClassDump/Models/ParseTypes/CDParseType.h
+++ b/ClassDumpRuntime/Models/ParseTypes/CDParseType.h
@@ -1,13 +1,13 @@
//
// CDParseType.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
//
#import
-#import
+#import
typedef NS_ENUM(NSUInteger, CDTypeModifier) {
CDTypeModifierConst,
@@ -25,6 +25,8 @@ typedef NS_ENUM(NSUInteger, CDTypeModifier) {
CDTypeModifierCount
};
+NS_HEADER_AUDIT_BEGIN(nullability)
+
OBJC_EXTERN NSString *_Nullable NSStringFromCDTypeModifier(CDTypeModifier);
/// Base class to represent a type that a variable may be
@@ -35,13 +37,13 @@ OBJC_EXTERN NSString *_Nullable NSStringFromCDTypeModifier(CDTypeModifier);
/// A string as this type would appear in code for a given variable name.
///
/// @param varName The name of the variable this type is for
-- (nonnull NSString *)stringForVariableName:(nullable NSString *)varName;
+- (NSString *)stringForVariableName:(nullable NSString *)varName;
-- (nonnull NSString *)modifiersString;
+- (NSString *)modifiersString;
-- (nonnull CDSemanticString *)semanticStringForVariableName:(nullable NSString *)varName;
+- (CDSemanticString *)semanticStringForVariableName:(nullable NSString *)varName;
-- (nonnull CDSemanticString *)modifiersSemanticString;
+- (CDSemanticString *)modifiersSemanticString;
/// Classes this type references
///
@@ -53,3 +55,5 @@ OBJC_EXTERN NSString *_Nullable NSStringFromCDTypeModifier(CDTypeModifier);
- (nullable NSSet *)protocolReferences;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/ParseTypes/CDParseType.m b/ClassDumpRuntime/Models/ParseTypes/CDParseType.m
similarity index 99%
rename from ClassDump/Models/ParseTypes/CDParseType.m
rename to ClassDumpRuntime/Models/ParseTypes/CDParseType.m
index 8a2c615..289d4e8 100644
--- a/ClassDump/Models/ParseTypes/CDParseType.m
+++ b/ClassDumpRuntime/Models/ParseTypes/CDParseType.m
@@ -1,6 +1,6 @@
//
// CDParseType.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
diff --git a/ClassDump/Models/ParseTypes/CDPointerType.h b/ClassDumpRuntime/Models/ParseTypes/CDPointerType.h
similarity index 60%
rename from ClassDump/Models/ParseTypes/CDPointerType.h
rename to ClassDumpRuntime/Models/ParseTypes/CDPointerType.h
index aa53dc8..cf9a3f9 100644
--- a/ClassDump/Models/ParseTypes/CDPointerType.h
+++ b/ClassDumpRuntime/Models/ParseTypes/CDPointerType.h
@@ -1,18 +1,22 @@
//
// CDPointerType.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
//
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
/// Type representing a pointer
@interface CDPointerType : CDParseType
/// The type that this pointer points to
@property (nullable, strong, nonatomic) CDParseType *pointee;
-+ (nonnull instancetype)pointerToPointee:(nonnull CDParseType *)pointee;
++ (instancetype)pointerToPointee:(nonnull CDParseType *)pointee;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/ParseTypes/CDPointerType.m b/ClassDumpRuntime/Models/ParseTypes/CDPointerType.m
similarity index 98%
rename from ClassDump/Models/ParseTypes/CDPointerType.m
rename to ClassDumpRuntime/Models/ParseTypes/CDPointerType.m
index b1116a4..b7a8260 100644
--- a/ClassDump/Models/ParseTypes/CDPointerType.m
+++ b/ClassDumpRuntime/Models/ParseTypes/CDPointerType.m
@@ -1,6 +1,6 @@
//
// CDPointerType.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
diff --git a/ClassDump/Models/ParseTypes/CDPrimitiveType.h b/ClassDumpRuntime/Models/ParseTypes/CDPrimitiveType.h
similarity index 89%
rename from ClassDump/Models/ParseTypes/CDPrimitiveType.h
rename to ClassDumpRuntime/Models/ParseTypes/CDPrimitiveType.h
index 8e68981..0f1f93b 100644
--- a/ClassDump/Models/ParseTypes/CDPrimitiveType.h
+++ b/ClassDumpRuntime/Models/ParseTypes/CDPrimitiveType.h
@@ -1,12 +1,12 @@
//
// CDPrimitiveType.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
//
-#import
+#import
typedef NS_ENUM(NSUInteger, CDPrimitiveRawType) {
CDPrimitiveRawTypeVoid,
@@ -50,12 +50,16 @@ typedef NS_ENUM(NSUInteger, CDPrimitiveRawType) {
CDPrimitiveRawTypeEmpty,
};
+NS_HEADER_AUDIT_BEGIN(nullability)
+
OBJC_EXTERN NSString *_Nullable NSStringFromCDPrimitiveRawType(CDPrimitiveRawType);
@interface CDPrimitiveType : CDParseType
@property (nonatomic) CDPrimitiveRawType rawType;
-+ (nonnull instancetype)primitiveWithRawType:(CDPrimitiveRawType)rawType;
++ (instancetype)primitiveWithRawType:(CDPrimitiveRawType)rawType;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/ParseTypes/CDPrimitiveType.m b/ClassDumpRuntime/Models/ParseTypes/CDPrimitiveType.m
similarity index 99%
rename from ClassDump/Models/ParseTypes/CDPrimitiveType.m
rename to ClassDumpRuntime/Models/ParseTypes/CDPrimitiveType.m
index e8d11cf..3d58c2d 100644
--- a/ClassDump/Models/ParseTypes/CDPrimitiveType.m
+++ b/ClassDumpRuntime/Models/ParseTypes/CDPrimitiveType.m
@@ -1,6 +1,6 @@
//
// CDPrimitiveType.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
diff --git a/ClassDump/Models/ParseTypes/CDRecordType.h b/ClassDumpRuntime/Models/ParseTypes/CDRecordType.h
similarity index 76%
rename from ClassDump/Models/ParseTypes/CDRecordType.h
rename to ClassDumpRuntime/Models/ParseTypes/CDRecordType.h
index bd849bf..e897391 100644
--- a/ClassDump/Models/ParseTypes/CDRecordType.h
+++ b/ClassDumpRuntime/Models/ParseTypes/CDRecordType.h
@@ -1,13 +1,15 @@
//
// CDRecordType.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
//
-#import
-#import
+#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
/// Type representing a @c struct or @c union
@interface CDRecordType : CDParseType
@@ -28,4 +30,10 @@
/// the record is defined to have no fields.
@property (nullable, strong, nonatomic) NSArray *fields;
+@property (nonatomic, getter=isExpand) BOOL expand;
+@property (nonatomic) NSInteger indentLevel;
+
+
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/ParseTypes/CDRecordType.m b/ClassDumpRuntime/Models/ParseTypes/CDRecordType.m
similarity index 73%
rename from ClassDump/Models/ParseTypes/CDRecordType.m
rename to ClassDumpRuntime/Models/ParseTypes/CDRecordType.m
index f2678e2..febb1d2 100644
--- a/ClassDump/Models/ParseTypes/CDRecordType.m
+++ b/ClassDumpRuntime/Models/ParseTypes/CDRecordType.m
@@ -1,6 +1,6 @@
//
// CDRecordType.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 12/8/22.
// Copyright © 2022 Leptos. All rights reserved.
@@ -26,14 +26,28 @@ - (CDSemanticString *)semanticStringForVariableName:(NSString *)varName {
[build appendString:@" { " semanticType:CDSemanticTypeStandard];
unsigned fieldName = 0;
-
+ if (self.isExpand) {
+ [build appendString:@"\n" semanticType:CDSemanticTypeStandard];
+ }
for (CDVariableModel *variableModel in self.fields) {
+ if (self.isExpand) {
+ [build appendString:@" " semanticType:CDSemanticTypeStandard];
+ for (NSInteger i = 0; i < self.indentLevel; i++) {
+ [build appendString:@" " semanticType:CDSemanticTypeStandard];
+ }
+ }
NSString *variableName = variableModel.name;
if (variableName == nil) {
variableName = [NSString stringWithFormat:@"x%u", fieldName++];
}
[build appendSemanticString:[variableModel.type semanticStringForVariableName:variableName]];
[build appendString:@"; " semanticType:CDSemanticTypeStandard];
+ if (self.isExpand) {
+ [build appendString:@"\n" semanticType:CDSemanticTypeStandard];
+ }
+ }
+ for (NSInteger i = 0; i < self.indentLevel; i++) {
+ [build appendString:@" " semanticType:CDSemanticTypeStandard];
}
[build appendString:@"}" semanticType:CDSemanticTypeStandard];
}
@@ -82,4 +96,18 @@ - (NSString *)debugDescription {
[self class], self, [self modifiersString], self.name, self.isUnion ? @"YES" : @"NO", self.fields.debugDescription];
}
+- (void)setExpand:(BOOL)expand {
+ _expand = expand;
+
+ if (self.fields) {
+ for (CDVariableModel *variableModel in self.fields) {
+ if ([variableModel.type isKindOfClass:[CDRecordType class]]) {
+ CDRecordType *recordType = (CDRecordType *)variableModel.type;
+ recordType.indentLevel = self.indentLevel + 1;
+ recordType.expand = expand;
+ }
+ }
+ }
+}
+
@end
diff --git a/ClassDump/Models/Reflections/CDClassModel.h b/ClassDumpRuntime/Models/Reflections/CDClassModel.h
similarity index 68%
rename from ClassDump/Models/Reflections/CDClassModel.h
rename to ClassDumpRuntime/Models/Reflections/CDClassModel.h
index c5c6779..2a0fc03 100644
--- a/ClassDump/Models/Reflections/CDClassModel.h
+++ b/ClassDumpRuntime/Models/Reflections/CDClassModel.h
@@ -1,6 +1,6 @@
//
// CDClassModel.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 4/7/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -8,11 +8,13 @@
#import
-#import
-#import
-#import
-#import
-#import
+#import
+#import
+#import
+#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
@interface CDClassModel : NSObject
// the Class property must be unsafe_unretained because not all
@@ -22,15 +24,15 @@
/// The name of the class, e.g. @c NSObject
@property (strong, nonatomic, readonly) NSString *name;
/// The protocols the class conforms to
-@property (strong, nonatomic, readonly) NSArray *protocols;
+@property (strong, nonatomic, readonly, nullable) NSArray *protocols;
-@property (strong, nonatomic, readonly) NSArray *classProperties;
-@property (strong, nonatomic, readonly) NSArray *instanceProperties;
+@property (strong, nonatomic, readonly, nullable) NSArray *classProperties;
+@property (strong, nonatomic, readonly, nullable) NSArray *instanceProperties;
-@property (strong, nonatomic, readonly) NSArray *classMethods;
-@property (strong, nonatomic, readonly) NSArray *instanceMethods;
+@property (strong, nonatomic, readonly, nullable) NSArray *classMethods;
+@property (strong, nonatomic, readonly, nullable) NSArray *instanceMethods;
/// Instance variables, including values synthesized from properties
-@property (strong, nonatomic, readonly) NSArray *ivars;
+@property (strong, nonatomic, readonly, nullable) NSArray *ivars;
- (instancetype)initWithClass:(Class)cls;
+ (instancetype)modelWithClass:(Class)cls;
@@ -47,7 +49,7 @@
- (CDSemanticString *)semanticLinesWithComments:(BOOL)comments synthesizeStrip:(BOOL)synthesizeStrip;
/// Generate an @c interface for the class
-- (CDSemanticString *)semanticLinesWithOptions:(CDGenerationOptions *)options;
+- (CDSemanticString *)semanticLinesWithOptions:(CDGenerationOptions *)options NS_REFINED_FOR_SWIFT;
/// Classes the class references in the declaration
///
@@ -61,3 +63,5 @@
- (NSSet *)protocolReferences;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/Reflections/CDClassModel.m b/ClassDumpRuntime/Models/Reflections/CDClassModel.m
similarity index 98%
rename from ClassDump/Models/Reflections/CDClassModel.m
rename to ClassDumpRuntime/Models/Reflections/CDClassModel.m
index cce0966..24ac6bb 100644
--- a/ClassDump/Models/Reflections/CDClassModel.m
+++ b/ClassDumpRuntime/Models/Reflections/CDClassModel.m
@@ -1,6 +1,6 @@
//
// CDClassModel.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 4/7/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -256,8 +256,12 @@ - (CDSemanticString *)semanticLinesWithOptions:(CDGenerationOptions *)options {
[build appendString:@"\n" semanticType:CDSemanticTypeStandard];
}
[build appendString:@" " semanticType:CDSemanticTypeStandard];
- [build appendSemanticString:[ivar semanticString]];
- [build appendString:@";\n" semanticType:CDSemanticTypeStandard];
+ [build appendSemanticString:[ivar semanticStringWithOptions:options]];
+ [build appendString:@";" semanticType:CDSemanticTypeStandard];
+ if (options.addIvarOffsetComments) {
+ [build appendString:[NSString stringWithFormat:@" // offset: %"PRIdPTR"", ivar.offset] semanticType:CDSemanticTypeComment];
+ }
+ [build appendString:@"\n" semanticType:CDSemanticTypeStandard];
}
[build appendString:@"}" semanticType:CDSemanticTypeStandard];
}
diff --git a/ClassDump/Models/Reflections/CDIvarModel.h b/ClassDumpRuntime/Models/Reflections/CDIvarModel.h
similarity index 62%
rename from ClassDump/Models/Reflections/CDIvarModel.h
rename to ClassDumpRuntime/Models/Reflections/CDIvarModel.h
index f1d42c4..49da27c 100644
--- a/ClassDump/Models/Reflections/CDIvarModel.h
+++ b/ClassDumpRuntime/Models/Reflections/CDIvarModel.h
@@ -1,6 +1,6 @@
//
// CDIvarModel.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 4/8/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -9,7 +9,9 @@
#import
#import
-#import
+#import
+#import
+NS_HEADER_AUDIT_BEGIN(nullability)
@interface CDIvarModel : NSObject
/// The Obj-C runtime @c Ivar
@@ -18,10 +20,14 @@
@property (strong, nonatomic, readonly) NSString *name;
/// The type of the ivar
@property (strong, nonatomic, readonly) CDParseType *type;
+/// The offset of the ivar
+@property (nonatomic, readonly) ptrdiff_t offset;
- (instancetype)initWithIvar:(Ivar)ivar;
+ (instancetype)modelWithIvar:(Ivar)ivar;
-- (CDSemanticString *)semanticString;
+- (CDSemanticString *)semanticStringWithOptions:(CDGenerationOptions *)options;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/Reflections/CDIvarModel.m b/ClassDumpRuntime/Models/Reflections/CDIvarModel.m
similarity index 71%
rename from ClassDump/Models/Reflections/CDIvarModel.m
rename to ClassDumpRuntime/Models/Reflections/CDIvarModel.m
index 1e446de..66b536c 100644
--- a/ClassDump/Models/Reflections/CDIvarModel.m
+++ b/ClassDumpRuntime/Models/Reflections/CDIvarModel.m
@@ -1,6 +1,6 @@
//
// CDIvarModel.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 4/8/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -8,7 +8,7 @@
#import "CDIvarModel.h"
#import "../../Services/CDTypeParser.h"
-
+#import "../ParseTypes/CDRecordType.h"
@implementation CDIvarModel
+ (instancetype)modelWithIvar:(Ivar)ivar {
@@ -20,11 +20,17 @@ - (instancetype)initWithIvar:(Ivar)ivar {
_backing = ivar;
_name = @(ivar_getName(ivar));
_type = [CDTypeParser typeForEncoding:(ivar_getTypeEncoding(ivar) ?: "")];
+ _offset = ivar_getOffset(ivar);
}
return self;
}
-- (CDSemanticString *)semanticString {
+- (CDSemanticString *)semanticStringWithOptions:(CDGenerationOptions *)options {
+ if ([self.type isKindOfClass:[CDRecordType class]] && options.expandIvarRecordTypeMembers) {
+ CDRecordType *recordType = (CDRecordType *)self.type;
+ recordType.indentLevel = 1;
+ recordType.expand = YES;
+ }
return [self.type semanticStringForVariableName:self.name];
}
diff --git a/ClassDump/Models/Reflections/CDMethodModel.h b/ClassDumpRuntime/Models/Reflections/CDMethodModel.h
similarity index 92%
rename from ClassDump/Models/Reflections/CDMethodModel.h
rename to ClassDumpRuntime/Models/Reflections/CDMethodModel.h
index a40b21a..b848482 100644
--- a/ClassDump/Models/Reflections/CDMethodModel.h
+++ b/ClassDumpRuntime/Models/Reflections/CDMethodModel.h
@@ -1,6 +1,6 @@
//
// CDMethodModel.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 4/7/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -9,7 +9,9 @@
#import
#import
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
@interface CDMethodModel : NSObject
/// The Obj-C runtime @c objc_method_description
@@ -40,3 +42,5 @@
- (NSSet *)protocolReferences;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/Reflections/CDMethodModel.m b/ClassDumpRuntime/Models/Reflections/CDMethodModel.m
similarity index 98%
rename from ClassDump/Models/Reflections/CDMethodModel.m
rename to ClassDumpRuntime/Models/Reflections/CDMethodModel.m
index 95af0d5..ae428da 100644
--- a/ClassDump/Models/Reflections/CDMethodModel.m
+++ b/ClassDumpRuntime/Models/Reflections/CDMethodModel.m
@@ -1,6 +1,6 @@
//
// CDMethodModel.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 4/7/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -111,18 +111,18 @@ - (CDSemanticString *)semanticString {
NSArray *brokenupName = [self.name componentsSeparatedByString:@":"];
[argumentTypes enumerateObjectsUsingBlock:^(CDParseType *argumentType, NSUInteger idx, BOOL *stop) {
- [build appendString:brokenupName[idx] semanticType:CDSemanticTypeStandard];
+ [build appendString:brokenupName[idx] semanticType:CDSemanticTypeMethod];
[build appendString:@":" semanticType:CDSemanticTypeStandard];
[build appendString:@"(" semanticType:CDSemanticTypeStandard];
[build appendSemanticString:[argumentType semanticStringForVariableName:nil]];
[build appendString:@")" semanticType:CDSemanticTypeStandard];
- [build appendString:[NSString stringWithFormat:@"a%lu", (unsigned long)idx] semanticType:CDSemanticTypeVariable];
+ [build appendString:[NSString stringWithFormat:@"a%lu", (unsigned long)idx] semanticType:CDSemanticTypeMethodArgument];
if ((idx + 1) < argumentTypeCount) { // if there are still arguments left, add a space to separate
[build appendString:@" " semanticType:CDSemanticTypeStandard];
}
}];
} else {
- [build appendString:self.name semanticType:CDSemanticTypeStandard];
+ [build appendString:self.name semanticType:CDSemanticTypeMethod];
}
return build;
}
diff --git a/ClassDump/Models/Reflections/CDPropertyAttribute.h b/ClassDumpRuntime/Models/Reflections/CDPropertyAttribute.h
similarity index 56%
rename from ClassDump/Models/Reflections/CDPropertyAttribute.h
rename to ClassDumpRuntime/Models/Reflections/CDPropertyAttribute.h
index 2545d95..2781133 100644
--- a/ClassDump/Models/Reflections/CDPropertyAttribute.h
+++ b/ClassDumpRuntime/Models/Reflections/CDPropertyAttribute.h
@@ -1,6 +1,6 @@
//
// CDPropertyAttribute.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 1/6/23.
// Copyright © 2023 Leptos. All rights reserved.
@@ -8,13 +8,17 @@
#import
+NS_HEADER_AUDIT_BEGIN(nullability)
+
@interface CDPropertyAttribute : NSObject
/// The name of a property attribute, e.g. @c strong, @c nonatomic, @c getter
@property (strong, nonatomic, readonly) NSString *name;
/// The value of a property attribute, e.g. the method name for @c getter= or @c setter=
-@property (strong, nonatomic, readonly) NSString *value;
+@property (strong, nonatomic, readonly, nullable) NSString *value;
-- (instancetype)initWithName:(NSString *)name value:(NSString *)value;
-+ (instancetype)attributeWithName:(NSString *)name value:(NSString *)value;
+- (instancetype)initWithName:(NSString *)name value:(nullable NSString *)value;
++ (instancetype)attributeWithName:(NSString *)name value:(nullable NSString *)value;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/Reflections/CDPropertyAttribute.m b/ClassDumpRuntime/Models/Reflections/CDPropertyAttribute.m
similarity index 98%
rename from ClassDump/Models/Reflections/CDPropertyAttribute.m
rename to ClassDumpRuntime/Models/Reflections/CDPropertyAttribute.m
index 2a8b3ef..83e31bb 100644
--- a/ClassDump/Models/Reflections/CDPropertyAttribute.m
+++ b/ClassDumpRuntime/Models/Reflections/CDPropertyAttribute.m
@@ -1,6 +1,6 @@
//
// CDPropertyAttribute.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 1/6/23.
// Copyright © 2023 Leptos. All rights reserved.
diff --git a/ClassDump/Models/Reflections/CDPropertyModel.h b/ClassDumpRuntime/Models/Reflections/CDPropertyModel.h
similarity index 71%
rename from ClassDump/Models/Reflections/CDPropertyModel.h
rename to ClassDumpRuntime/Models/Reflections/CDPropertyModel.h
index 6eb1eef..88411da 100644
--- a/ClassDump/Models/Reflections/CDPropertyModel.h
+++ b/ClassDumpRuntime/Models/Reflections/CDPropertyModel.h
@@ -1,6 +1,6 @@
//
// CDPropertyModel.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 3/24/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -9,8 +9,10 @@
#import
#import
-#import
-#import
+#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
@interface CDPropertyModel : NSObject
/// The Obj-C runtime @c objc_property_t
@@ -20,13 +22,13 @@
/// The type of the property
@property (strong, nonatomic, readonly) CDParseType *type;
/// The attributes of the property
-@property (strong, nonatomic, readonly) NSArray *attributes;
+@property (strong, nonatomic, readonly, nullable) NSArray *attributes;
/// The name of the backing instance variable
-@property (strong, nonatomic, readonly) NSString *iVar;
+@property (strong, nonatomic, readonly, nullable) NSString *iVar;
/// The signature of the getter method, e.g. @c count
-@property (strong, nonatomic, readonly) NSString *getter;
+@property (strong, nonatomic, readonly, nullable) NSString *getter;
/// The signature of the setter method, e.g. @c setName:
-@property (strong, nonatomic, readonly) NSString *setter;
+@property (strong, nonatomic, readonly, nullable) NSString *setter;
- (instancetype)initWithProperty:(objc_property_t)property isClass:(BOOL)isClass;
+ (instancetype)modelWithProperty:(objc_property_t)property isClass:(BOOL)isClass;
@@ -40,3 +42,5 @@
- (CDSemanticString *)semanticString;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/Reflections/CDPropertyModel.m b/ClassDumpRuntime/Models/Reflections/CDPropertyModel.m
similarity index 99%
rename from ClassDump/Models/Reflections/CDPropertyModel.m
rename to ClassDumpRuntime/Models/Reflections/CDPropertyModel.m
index bd06be0..7161d9a 100644
--- a/ClassDump/Models/Reflections/CDPropertyModel.m
+++ b/ClassDumpRuntime/Models/Reflections/CDPropertyModel.m
@@ -1,6 +1,6 @@
//
// CDPropertyModel.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 3/24/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -101,7 +101,7 @@ - (instancetype)initWithProperty:(objc_property_t)property isClass:(BOOL)isClass
attributeName = @"copy";
break;
case '&':
- attributeName = @"retain";
+ attributeName = @"strong";
break;
case 'D':
isDynamic = YES;
diff --git a/ClassDump/Models/Reflections/CDProtocolModel+Conformance.h b/ClassDumpRuntime/Models/Reflections/CDProtocolModel+Conformance.h
similarity index 90%
rename from ClassDump/Models/Reflections/CDProtocolModel+Conformance.h
rename to ClassDumpRuntime/Models/Reflections/CDProtocolModel+Conformance.h
index 0e2262b..b7f4c0e 100644
--- a/ClassDump/Models/Reflections/CDProtocolModel+Conformance.h
+++ b/ClassDumpRuntime/Models/Reflections/CDProtocolModel+Conformance.h
@@ -1,12 +1,14 @@
//
// CDProtocolModel+Conformance.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 3/3/24.
// Copyright © 2024 Leptos. All rights reserved.
//
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
@interface CDProtocolModel (Conformance)
@@ -29,3 +31,5 @@
+ (NSArray *)requiredInstanceMethodsToConform:(NSArray *)protocols;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/Reflections/CDProtocolModel+Conformance.m b/ClassDumpRuntime/Models/Reflections/CDProtocolModel+Conformance.m
similarity index 99%
rename from ClassDump/Models/Reflections/CDProtocolModel+Conformance.m
rename to ClassDumpRuntime/Models/Reflections/CDProtocolModel+Conformance.m
index 8ee3fd2..997c0e3 100644
--- a/ClassDump/Models/Reflections/CDProtocolModel+Conformance.m
+++ b/ClassDumpRuntime/Models/Reflections/CDProtocolModel+Conformance.m
@@ -1,6 +1,6 @@
//
// CDProtocolModel+Conformance.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 3/3/24.
// Copyright © 2024 Leptos. All rights reserved.
diff --git a/ClassDump/Models/Reflections/CDProtocolModel.h b/ClassDumpRuntime/Models/Reflections/CDProtocolModel.h
similarity index 60%
rename from ClassDump/Models/Reflections/CDProtocolModel.h
rename to ClassDumpRuntime/Models/Reflections/CDProtocolModel.h
index 049295c..9dc9c1e 100644
--- a/ClassDump/Models/Reflections/CDProtocolModel.h
+++ b/ClassDumpRuntime/Models/Reflections/CDProtocolModel.h
@@ -1,6 +1,6 @@
//
// CDProtocolModel.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 4/7/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -8,9 +8,11 @@
#import
-#import
-#import
-#import
+#import
+#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
@interface CDProtocolModel : NSObject
/// The Obj-C runtime @c Protocol
@@ -18,19 +20,19 @@
/// The name of the protocol, e.g. @c NSObject
@property (strong, nonatomic, readonly) NSString *name;
/// The protocols the protocol conforms to
-@property (strong, nonatomic, readonly) NSArray *protocols;
+@property (strong, nonatomic, readonly, nullable) NSArray *protocols;
-@property (strong, nonatomic, readonly) NSArray *requiredClassProperties;
-@property (strong, nonatomic, readonly) NSArray *requiredInstanceProperties;
+@property (strong, nonatomic, readonly, nullable) NSArray *requiredClassProperties;
+@property (strong, nonatomic, readonly, nullable) NSArray *requiredInstanceProperties;
-@property (strong, nonatomic, readonly) NSArray *requiredClassMethods;
-@property (strong, nonatomic, readonly) NSArray *requiredInstanceMethods;
+@property (strong, nonatomic, readonly, nullable) NSArray *requiredClassMethods;
+@property (strong, nonatomic, readonly, nullable) NSArray *requiredInstanceMethods;
-@property (strong, nonatomic, readonly) NSArray *optionalClassProperties;
-@property (strong, nonatomic, readonly) NSArray *optionalInstanceProperties;
+@property (strong, nonatomic, readonly, nullable) NSArray *optionalClassProperties;
+@property (strong, nonatomic, readonly, nullable) NSArray *optionalInstanceProperties;
-@property (strong, nonatomic, readonly) NSArray *optionalClassMethods;
-@property (strong, nonatomic, readonly) NSArray *optionalInstanceMethods;
+@property (strong, nonatomic, readonly, nullable) NSArray *optionalClassMethods;
+@property (strong, nonatomic, readonly, nullable) NSArray *optionalInstanceMethods;
- (instancetype)initWithProtocol:(Protocol *)prcl;
+ (instancetype)modelWithProtocol:(Protocol *)prcl;
@@ -47,7 +49,7 @@
- (CDSemanticString *)semanticLinesWithComments:(BOOL)comments synthesizeStrip:(BOOL)synthesizeStrip;
/// Generate an @c interface for the protocol
-- (CDSemanticString *)semanticLinesWithOptions:(CDGenerationOptions *)options;
+- (CDSemanticString *)semanticLinesWithOptions:(CDGenerationOptions *)options NS_REFINED_FOR_SWIFT;
/// Classes the protocol references in the declaration
///
@@ -61,3 +63,6 @@
- (NSSet *)protocolReferences;
@end
+
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Models/Reflections/CDProtocolModel.m b/ClassDumpRuntime/Models/Reflections/CDProtocolModel.m
similarity index 99%
rename from ClassDump/Models/Reflections/CDProtocolModel.m
rename to ClassDumpRuntime/Models/Reflections/CDProtocolModel.m
index 1cffa96..f6a9685 100644
--- a/ClassDump/Models/Reflections/CDProtocolModel.m
+++ b/ClassDumpRuntime/Models/Reflections/CDProtocolModel.m
@@ -1,6 +1,6 @@
//
// CDProtocolModel.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 4/7/19.
// Copyright © 2019 Leptos. All rights reserved.
diff --git a/ClassDump/Services/CDTypeParser.h b/ClassDumpRuntime/Services/CDTypeParser.h
similarity index 84%
rename from ClassDump/Services/CDTypeParser.h
rename to ClassDumpRuntime/Services/CDTypeParser.h
index 1ac85e9..21ba809 100644
--- a/ClassDump/Services/CDTypeParser.h
+++ b/ClassDumpRuntime/Services/CDTypeParser.h
@@ -1,13 +1,15 @@
//
// CDTypeParser.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 3/24/19.
// Copyright © 2019 Leptos. All rights reserved.
//
#import
-#import
+#import
+
+NS_HEADER_AUDIT_BEGIN(nullability)
@interface CDTypeParser : NSObject
@@ -23,6 +25,8 @@
/// @param start A pointer to the start of an encoded value as returned by @c \@encode
/// @param end A pointer to the first byte out-of-bounds from @c start
/// @param error Set to @c YES if an error occurs during proccessing
-+ (CDParseType *)typeForEncodingStart:(const char *const)start end:(const char *const)end error:(inout BOOL *)error;
++ (CDParseType *)typeForEncodingStart:(const char *const)start end:(const char *const)end error:(nullable inout BOOL *)error;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Services/CDTypeParser.m b/ClassDumpRuntime/Services/CDTypeParser.m
similarity index 99%
rename from ClassDump/Services/CDTypeParser.m
rename to ClassDumpRuntime/Services/CDTypeParser.m
index 809e573..59d2e9a 100644
--- a/ClassDump/Services/CDTypeParser.m
+++ b/ClassDumpRuntime/Services/CDTypeParser.m
@@ -1,6 +1,6 @@
//
// CDTypeParser.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 3/24/19.
// Copyright © 2019 Leptos. All rights reserved.
diff --git a/ClassDump/Services/CDUtilities.h b/ClassDumpRuntime/Services/CDUtilities.h
similarity index 61%
rename from ClassDump/Services/CDUtilities.h
rename to ClassDumpRuntime/Services/CDUtilities.h
index 82c4b50..a02d409 100644
--- a/ClassDump/Services/CDUtilities.h
+++ b/ClassDumpRuntime/Services/CDUtilities.h
@@ -1,6 +1,6 @@
//
// CDUtilities.h
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 5/10/19.
// Copyright © 2019 Leptos. All rights reserved.
@@ -8,14 +8,18 @@
#import
+NS_HEADER_AUDIT_BEGIN(nullability)
+
@interface CDUtilities : NSObject
/// The paths of the images in the loaded dyld shared cache
-+ (nonnull NSArray *)dyldSharedCacheImagePaths;
++ (NSArray *)dyldSharedCacheImagePaths;
/// Names of all registered Obj-C classes
-+ (nonnull NSArray *)classNames;
++ (NSArray *)classNames;
/// Determines if the Obj-C class with the given name is safe to reference
-+ (BOOL)isClassSafeToInspect:(nonnull NSString *)className;
++ (BOOL)isClassSafeToInspect:(NSString *)className;
@end
+
+NS_HEADER_AUDIT_END(nullability)
diff --git a/ClassDump/Services/CDUtilities.m b/ClassDumpRuntime/Services/CDUtilities.m
similarity index 99%
rename from ClassDump/Services/CDUtilities.m
rename to ClassDumpRuntime/Services/CDUtilities.m
index 4da71b3..1d4c52c 100644
--- a/ClassDump/Services/CDUtilities.m
+++ b/ClassDumpRuntime/Services/CDUtilities.m
@@ -1,6 +1,6 @@
//
// CDUtilities.m
-// ClassDump
+// ClassDumpRuntime
//
// Created by Leptos on 5/10/19.
// Copyright © 2019 Leptos. All rights reserved.
diff --git a/ClassDumpRuntimeSwift/CDGenerationOptions.swift b/ClassDumpRuntimeSwift/CDGenerationOptions.swift
new file mode 100644
index 0000000..d9375fe
--- /dev/null
+++ b/ClassDumpRuntimeSwift/CDGenerationOptions.swift
@@ -0,0 +1,103 @@
+import Foundation
+import ClassDumpRuntime
+
+public struct CDGenerationOptions: Codable, Hashable, Identifiable {
+ public var stripProtocolConformance: Bool
+ public var stripOverrides: Bool
+ public var stripDuplicates: Bool
+ public var stripSynthesized: Bool
+ public var stripCtorMethod: Bool
+ public var stripDtorMethod: Bool
+ public var addSymbolImageComments: Bool
+ public var addIvarOffsetComments: Bool
+ public var expandIvarRecordTypeMembers: Bool
+ public var id: Self { self }
+
+ public init(
+ stripProtocolConformance: Bool = false,
+ stripOverrides: Bool = false,
+ stripDuplicates: Bool = false,
+ stripSynthesized: Bool = false,
+ stripCtorMethod: Bool = false,
+ stripDtorMethod: Bool = false,
+ addSymbolImageComments: Bool = false,
+ addIvarOffsetComments: Bool = false,
+ expandIvarRecordTypeMembers: Bool = false
+ ) {
+ self.stripProtocolConformance = stripProtocolConformance
+ self.stripOverrides = stripOverrides
+ self.stripDuplicates = stripDuplicates
+ self.stripSynthesized = stripSynthesized
+ self.stripCtorMethod = stripCtorMethod
+ self.stripDtorMethod = stripDtorMethod
+ self.addSymbolImageComments = addSymbolImageComments
+ self.addIvarOffsetComments = addIvarOffsetComments
+ self.expandIvarRecordTypeMembers = expandIvarRecordTypeMembers
+ }
+
+}
+
+extension CDGenerationOptions: ReferenceConvertible {
+ public typealias ReferenceType = __CDGenerationOptions
+
+ public func _bridgeToObjectiveC() -> __CDGenerationOptions {
+ let options = __CDGenerationOptions()
+ options.stripProtocolConformance = stripProtocolConformance
+ options.stripOverrides = stripOverrides
+ options.stripSynthesized = stripSynthesized
+ options.stripCtorMethod = stripCtorMethod
+ options.stripDtorMethod = stripDtorMethod
+ options.addSymbolImageComments = addSymbolImageComments
+ options.addIvarOffsetComments = addIvarOffsetComments
+ options.expandIvarRecordTypeMembers = expandIvarRecordTypeMembers
+ return options
+ }
+
+ public static func _forceBridgeFromObjectiveC(_ source: __CDGenerationOptions, result: inout CDGenerationOptions?) {
+ result = CDGenerationOptions(
+ stripProtocolConformance: source.stripProtocolConformance,
+ stripOverrides: source.stripOverrides,
+ stripDuplicates: source.stripDuplicates,
+ stripSynthesized: source.stripSynthesized,
+ stripCtorMethod: source.stripCtorMethod,
+ stripDtorMethod: source.stripDtorMethod,
+ addSymbolImageComments: source.addSymbolImageComments,
+ addIvarOffsetComments: source.addIvarOffsetComments,
+ expandIvarRecordTypeMembers: source.expandIvarRecordTypeMembers
+ )
+ }
+
+ public static func _conditionallyBridgeFromObjectiveC(_ source: __CDGenerationOptions, result: inout CDGenerationOptions?) -> Bool {
+ _forceBridgeFromObjectiveC(source, result: &result)
+ return true
+ }
+
+ public static func _unconditionallyBridgeFromObjectiveC(_ source: __CDGenerationOptions?) -> CDGenerationOptions {
+ if let source = source {
+ var result: CDGenerationOptions?
+ _forceBridgeFromObjectiveC(source, result: &result)
+ return result!
+ }
+ return CDGenerationOptions()
+ }
+
+ public var description: String {
+ "\(self)"
+ }
+
+ public var debugDescription: String {
+ description
+ }
+}
+
+extension CDClassModel {
+ public func semanticLines(with options: CDGenerationOptions) -> CDSemanticString {
+ __semanticLines(with: options as __CDGenerationOptions)
+ }
+}
+
+extension CDProtocolModel {
+ public func semanticLines(with options: CDGenerationOptions) -> CDSemanticString {
+ __semanticLines(with: options as __CDGenerationOptions)
+ }
+}
diff --git a/ClassDumpRuntimeSwift/ClassDumpRuntimeSwift.h b/ClassDumpRuntimeSwift/ClassDumpRuntimeSwift.h
new file mode 100644
index 0000000..10c3f30
--- /dev/null
+++ b/ClassDumpRuntimeSwift/ClassDumpRuntimeSwift.h
@@ -0,0 +1,19 @@
+//
+// ClassDumpRuntimeSwift.h
+// ClassDumpRuntimeSwift
+//
+// Created by JH on 2024/6/7.
+// Copyright © 2024 Leptos. All rights reserved.
+//
+
+#import
+
+//! Project version number for ClassDumpRuntimeSwift.
+FOUNDATION_EXPORT double ClassDumpRuntimeSwiftVersionNumber;
+
+//! Project version string for ClassDumpRuntimeSwift.
+FOUNDATION_EXPORT const unsigned char ClassDumpRuntimeSwiftVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+
diff --git a/ClassDumpTests/CDObjCTests.m b/ClassDumpRuntimeTests/CDObjCTests.m
similarity index 99%
rename from ClassDumpTests/CDObjCTests.m
rename to ClassDumpRuntimeTests/CDObjCTests.m
index 938318e..ee15e13 100644
--- a/ClassDumpTests/CDObjCTests.m
+++ b/ClassDumpRuntimeTests/CDObjCTests.m
@@ -7,7 +7,7 @@
//
#import
-#import
+#import
@interface CDObjCTests : XCTestCase
diff --git a/ClassDumpTests/CDParseAdvancedTests.m b/ClassDumpRuntimeTests/CDParseAdvancedTests.m
similarity index 86%
rename from ClassDumpTests/CDParseAdvancedTests.m
rename to ClassDumpRuntimeTests/CDParseAdvancedTests.m
index 88b8cbb..e6c6d5a 100644
--- a/ClassDumpTests/CDParseAdvancedTests.m
+++ b/ClassDumpRuntimeTests/CDParseAdvancedTests.m
@@ -7,7 +7,7 @@
//
#import
-#import
+#import
@interface CDParseAdvancedTests : XCTestCase
@@ -194,14 +194,41 @@ - (void)testBitfields {
unsigned __int128 f : 100;
unsigned g : 10;
unsigned h : 15;
+ struct BitfieldTestB {
+ unsigned a : 18;
+ unsigned b : 2;
+ unsigned c : 30;
+ unsigned long d : 34;
+ unsigned e : 1;
+ unsigned __int128 f : 100;
+ unsigned g : 10;
+ unsigned h : 15;
+ } nested;
};
- CDParseType *type = [CDTypeParser typeForEncoding:@encode(struct BitfieldTest)];
- XCTAssert([[type stringForVariableName:@"var"] isEqualToString:@"struct BitfieldTest { "
- "unsigned int x0 : 18; unsigned char x1 : 2; "
- "unsigned int x2 : 30; unsigned long x3 : 34; "
- "unsigned char x4 : 1; unsigned __int128 x5 : 100; "
- "unsigned short x6 : 10; unsigned short x7 : 15; "
- "} var"]);
+ CDRecordType *type = (CDRecordType *)[CDTypeParser typeForEncoding:@encode(struct BitfieldTest)];
+ type.expand = YES;
+ NSString *expected =
+ @"struct BitfieldTest { \n"\
+ " unsigned int x0 : 18; \n"\
+ " unsigned char x1 : 2; \n"\
+ " unsigned int x2 : 30; \n"\
+ " unsigned long x3 : 34; \n"\
+ " unsigned char x4 : 1; \n"\
+ " unsigned __int128 x5 : 100; \n"\
+ " unsigned short x6 : 10; \n"\
+ " unsigned short x7 : 15; \n"\
+ " struct BitfieldTestB { \n"\
+ " unsigned int x0 : 18; \n"\
+ " unsigned char x1 : 2; \n"\
+ " unsigned int x2 : 30; \n"\
+ " unsigned long x3 : 34; \n"\
+ " unsigned char x4 : 1; \n"\
+ " unsigned __int128 x5 : 100; \n"\
+ " unsigned short x6 : 10; \n"\
+ " unsigned short x7 : 15; \n"\
+ " } x8; \n"\
+ "} var";
+ XCTAssert([[type stringForVariableName:@"var"] isEqualToString:expected]);
}
- (void)testModifiedFields {
diff --git a/ClassDumpTests/CDParseCppTests.mm b/ClassDumpRuntimeTests/CDParseCppTests.mm
similarity index 85%
rename from ClassDumpTests/CDParseCppTests.mm
rename to ClassDumpRuntimeTests/CDParseCppTests.mm
index 730c5a6..721a565 100644
--- a/ClassDumpTests/CDParseCppTests.mm
+++ b/ClassDumpRuntimeTests/CDParseCppTests.mm
@@ -7,8 +7,8 @@
//
#import
-#import "../ClassDump/ClassDump.h"
-#import "../ClassDump/Services/CDTypeParser.h"
+#import "../ClassDumpRuntime/ClassDumpRuntime.h"
+#import "../ClassDumpRuntime/Services/CDTypeParser.h"
@interface CDParseCppTests : XCTestCase
@@ -29,7 +29,7 @@ @implementation CDParseCppTests
_T inlineArray[2];
};
-namespace ClassDump {
+namespace ClassDumpRuntime {
class Chocolate {
float cocoaPercent;
};
@@ -50,11 +50,11 @@ - (void)testGenerics {
}
- (void)testNamespace {
- CDParseType *type = [CDTypeParser typeForEncoding:@encode(ClassDump::Chocolate)];
+ CDParseType *type = [CDTypeParser typeForEncoding:@encode(ClassDumpRuntime::Chocolate)];
XCTAssert([[type stringForVariableName:@"var"] isEqualToString:@"struct Chocolate { float x0; } var"]);
- type = [CDTypeParser typeForEncoding:@encode(BinaryArray)];
- XCTAssert([[type stringForVariableName:@"var"] isEqualToString:@"struct BinaryArray { "
+ type = [CDTypeParser typeForEncoding:@encode(BinaryArray)];
+ XCTAssert([[type stringForVariableName:@"var"] isEqualToString:@"struct BinaryArray { "
"struct Chocolate { float x0; } x0[2]; "
"} var"]);
}
diff --git a/ClassDumpTests/CDParsePrimitiveTests.m b/ClassDumpRuntimeTests/CDParsePrimitiveTests.m
similarity index 98%
rename from ClassDumpTests/CDParsePrimitiveTests.m
rename to ClassDumpRuntimeTests/CDParsePrimitiveTests.m
index 076d206..d2fd59a 100644
--- a/ClassDumpTests/CDParsePrimitiveTests.m
+++ b/ClassDumpRuntimeTests/CDParsePrimitiveTests.m
@@ -7,7 +7,7 @@
//
#import
-#import
+#import
@interface CDParsePrimitiveTests : XCTestCase
diff --git a/ClassDumpTests/CDProtocolTest.m b/ClassDumpRuntimeTests/CDProtocolTest.m
similarity index 98%
rename from ClassDumpTests/CDProtocolTest.m
rename to ClassDumpRuntimeTests/CDProtocolTest.m
index 9f3feb7..fc8ddee 100644
--- a/ClassDumpTests/CDProtocolTest.m
+++ b/ClassDumpRuntimeTests/CDProtocolTest.m
@@ -7,7 +7,7 @@
//
#import
-#import
+#import
@interface CDProtocolTest : XCTestCase
diff --git a/ClassDumpTests/Info.plist b/ClassDumpRuntimeTests/Info.plist
similarity index 100%
rename from ClassDumpTests/Info.plist
rename to ClassDumpRuntimeTests/Info.plist
diff --git a/Makefile b/Makefile
index 5f35848..8c57c72 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,6 @@ include $(THEOS)/makefiles/common.mk
LIBRARY_NAME = ClassDumpRuntime
ClassDumpRuntime_CFLAGS = -fobjc-arc -I Sources/ClassDumpRuntime/include
-ClassDumpRuntime_FILES = $(wildcard ClassDump/*/*.m) $(wildcard ClassDump/*/*/*.m)
+ClassDumpRuntime_FILES = $(wildcard ClassDumpRuntime/*/*.m) $(wildcard ClassDumpRuntime/*/*/*.m)
include $(THEOS_MAKE_PATH)/library.mk
diff --git a/Package.swift b/Package.swift
index 9ef62fa..ed99cf1 100644
--- a/Package.swift
+++ b/Package.swift
@@ -16,17 +16,35 @@ let package = Package(
products: [
.library(
name: "ClassDumpRuntime",
- targets: ["ClassDumpRuntime"]
+ targets: [
+ "ClassDumpRuntime",
+ ]
+ ),
+ .library(
+ name: "ClassDumpRuntimeSwift",
+ targets: [
+ "ClassDumpRuntime",
+ "ClassDumpRuntimeSwift",
+ ]
),
],
targets: [
.target(
name: "ClassDumpRuntime"
),
+ .target(
+ name: "ClassDumpRuntimeSwift",
+ dependencies: [
+ "ClassDumpRuntime",
+ ],
+ path: "ClassDumpRuntimeSwift"
+ ),
.testTarget(
name: "ClassDumpRuntimeTests",
- dependencies: ["ClassDumpRuntime"],
- path: "ClassDumpTests"
+ dependencies: [
+ "ClassDumpRuntime",
+ ],
+ path: "ClassDumpRuntimeTests"
),
]
)
diff --git a/Sources/ClassDumpRuntime/ClassDump b/Sources/ClassDumpRuntime/ClassDump
deleted file mode 120000
index d7430ae..0000000
--- a/Sources/ClassDumpRuntime/ClassDump
+++ /dev/null
@@ -1 +0,0 @@
-../../ClassDump
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/ClassDumpRuntime b/Sources/ClassDumpRuntime/ClassDumpRuntime
new file mode 120000
index 0000000..fd10884
--- /dev/null
+++ b/Sources/ClassDumpRuntime/ClassDumpRuntime
@@ -0,0 +1 @@
+../../ClassDumpRuntime
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDArrayType.h b/Sources/ClassDumpRuntime/include/ClassDump/CDArrayType.h
deleted file mode 120000
index 3ba15c4..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDArrayType.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/ParseTypes/CDArrayType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDBitFieldType.h b/Sources/ClassDumpRuntime/include/ClassDump/CDBitFieldType.h
deleted file mode 120000
index 1dd0273..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDBitFieldType.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/ParseTypes/CDBitFieldType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDBlockType.h b/Sources/ClassDumpRuntime/include/ClassDump/CDBlockType.h
deleted file mode 120000
index e2d9c36..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDBlockType.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/ParseTypes/CDBlockType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDClassModel.h b/Sources/ClassDumpRuntime/include/ClassDump/CDClassModel.h
deleted file mode 120000
index 426b33a..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDClassModel.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/Reflections/CDClassModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDGenerationOptions.h b/Sources/ClassDumpRuntime/include/ClassDump/CDGenerationOptions.h
deleted file mode 120000
index 112914c..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDGenerationOptions.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/CDGenerationOptions.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDIvarModel.h b/Sources/ClassDumpRuntime/include/ClassDump/CDIvarModel.h
deleted file mode 120000
index 31b6107..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDIvarModel.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/Reflections/CDIvarModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDMethodModel.h b/Sources/ClassDumpRuntime/include/ClassDump/CDMethodModel.h
deleted file mode 120000
index fcfefd5..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDMethodModel.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/Reflections/CDMethodModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDObjectType.h b/Sources/ClassDumpRuntime/include/ClassDump/CDObjectType.h
deleted file mode 120000
index b9abd57..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDObjectType.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/ParseTypes/CDObjectType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDParseType.h b/Sources/ClassDumpRuntime/include/ClassDump/CDParseType.h
deleted file mode 120000
index 90c16f3..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDParseType.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/ParseTypes/CDParseType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDPointerType.h b/Sources/ClassDumpRuntime/include/ClassDump/CDPointerType.h
deleted file mode 120000
index 0176ce9..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDPointerType.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/ParseTypes/CDPointerType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDPrimitiveType.h b/Sources/ClassDumpRuntime/include/ClassDump/CDPrimitiveType.h
deleted file mode 120000
index 742f67e..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDPrimitiveType.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/ParseTypes/CDPrimitiveType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDPropertyAttribute.h b/Sources/ClassDumpRuntime/include/ClassDump/CDPropertyAttribute.h
deleted file mode 120000
index 1a905ef..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDPropertyAttribute.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/Reflections/CDPropertyAttribute.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDPropertyModel.h b/Sources/ClassDumpRuntime/include/ClassDump/CDPropertyModel.h
deleted file mode 120000
index ba564ee..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDPropertyModel.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/Reflections/CDPropertyModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDProtocolModel+Conformance.h b/Sources/ClassDumpRuntime/include/ClassDump/CDProtocolModel+Conformance.h
deleted file mode 120000
index 0ade14a..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDProtocolModel+Conformance.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/Reflections/CDProtocolModel+Conformance.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDProtocolModel.h b/Sources/ClassDumpRuntime/include/ClassDump/CDProtocolModel.h
deleted file mode 120000
index 1ba1373..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDProtocolModel.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/Reflections/CDProtocolModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDRecordType.h b/Sources/ClassDumpRuntime/include/ClassDump/CDRecordType.h
deleted file mode 120000
index 76bfb18..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDRecordType.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/ParseTypes/CDRecordType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDSemanticString.h b/Sources/ClassDumpRuntime/include/ClassDump/CDSemanticString.h
deleted file mode 120000
index dbb7400..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDSemanticString.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/CDSemanticString.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDTypeParser.h b/Sources/ClassDumpRuntime/include/ClassDump/CDTypeParser.h
deleted file mode 120000
index 4f3d914..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDTypeParser.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Services/CDTypeParser.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDUtilities.h b/Sources/ClassDumpRuntime/include/ClassDump/CDUtilities.h
deleted file mode 120000
index 315b735..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDUtilities.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Services/CDUtilities.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/CDVariableModel.h b/Sources/ClassDumpRuntime/include/ClassDump/CDVariableModel.h
deleted file mode 120000
index fb599c5..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/CDVariableModel.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/Models/CDVariableModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDump/ClassDump.h b/Sources/ClassDumpRuntime/include/ClassDump/ClassDump.h
deleted file mode 120000
index 7907f09..0000000
--- a/Sources/ClassDumpRuntime/include/ClassDump/ClassDump.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../ClassDumpRuntime/ClassDump/ClassDump.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDArrayType.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDArrayType.h
new file mode 120000
index 0000000..c068ff4
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDArrayType.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/ParseTypes/CDArrayType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDBitFieldType.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDBitFieldType.h
new file mode 120000
index 0000000..26f3914
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDBitFieldType.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/ParseTypes/CDBitFieldType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDBlockType.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDBlockType.h
new file mode 120000
index 0000000..50db3c1
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDBlockType.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/ParseTypes/CDBlockType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDClassModel.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDClassModel.h
new file mode 120000
index 0000000..cdee1d7
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDClassModel.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/Reflections/CDClassModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDGenerationOptions.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDGenerationOptions.h
new file mode 120000
index 0000000..5f5a5eb
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDGenerationOptions.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/CDGenerationOptions.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDIvarModel.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDIvarModel.h
new file mode 120000
index 0000000..48a6daa
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDIvarModel.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/Reflections/CDIvarModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDMethodModel.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDMethodModel.h
new file mode 120000
index 0000000..f6c903d
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDMethodModel.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/Reflections/CDMethodModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDObjectType.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDObjectType.h
new file mode 120000
index 0000000..c87706f
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDObjectType.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/ParseTypes/CDObjectType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDParseType.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDParseType.h
new file mode 120000
index 0000000..a8d324e
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDParseType.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/ParseTypes/CDParseType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPointerType.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPointerType.h
new file mode 120000
index 0000000..cf1ca04
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPointerType.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/ParseTypes/CDPointerType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPrimitiveType.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPrimitiveType.h
new file mode 120000
index 0000000..da3731a
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPrimitiveType.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/ParseTypes/CDPrimitiveType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPropertyAttribute.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPropertyAttribute.h
new file mode 120000
index 0000000..7b0f535
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPropertyAttribute.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/Reflections/CDPropertyAttribute.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPropertyModel.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPropertyModel.h
new file mode 120000
index 0000000..6a56b41
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDPropertyModel.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/Reflections/CDPropertyModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDProtocolModel+Conformance.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDProtocolModel+Conformance.h
new file mode 120000
index 0000000..7561aa9
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDProtocolModel+Conformance.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/Reflections/CDProtocolModel+Conformance.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDProtocolModel.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDProtocolModel.h
new file mode 120000
index 0000000..9285e7e
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDProtocolModel.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/Reflections/CDProtocolModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDRecordType.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDRecordType.h
new file mode 120000
index 0000000..315b937
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDRecordType.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/ParseTypes/CDRecordType.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDSemanticString.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDSemanticString.h
new file mode 120000
index 0000000..65067e5
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDSemanticString.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/CDSemanticString.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDTypeParser.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDTypeParser.h
new file mode 120000
index 0000000..70a8adf
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDTypeParser.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Services/CDTypeParser.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDUtilities.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDUtilities.h
new file mode 120000
index 0000000..80653d4
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDUtilities.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Services/CDUtilities.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDVariableModel.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDVariableModel.h
new file mode 120000
index 0000000..0a1a1b0
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/CDVariableModel.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/Models/CDVariableModel.h
\ No newline at end of file
diff --git a/Sources/ClassDumpRuntime/include/ClassDumpRuntime/ClassDumpRuntime.h b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/ClassDumpRuntime.h
new file mode 120000
index 0000000..dae1559
--- /dev/null
+++ b/Sources/ClassDumpRuntime/include/ClassDumpRuntime/ClassDumpRuntime.h
@@ -0,0 +1 @@
+../../../../ClassDumpRuntime/ClassDumpRuntime.h
\ No newline at end of file