diff --git a/.gitignore b/.gitignore index cd4490c..d75adfe 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,6 @@ DerivedData/ .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata .netrc -XCFrameworks/ \ No newline at end of file +XCFrameworks/ +docs/ +symbol-graphs/ \ No newline at end of file diff --git a/MachOKit.docc/MachOKit.md b/MachOKit.docc/MachOKit.md new file mode 100644 index 0000000..223e1f4 --- /dev/null +++ b/MachOKit.docc/MachOKit.md @@ -0,0 +1,3 @@ +# ``MachOKit`` + +🔬 A Swift library for parsing MachO files to obtain various information. diff --git a/MachOKit.docc/MachOKitC.md b/MachOKit.docc/MachOKitC.md new file mode 100644 index 0000000..350c556 --- /dev/null +++ b/MachOKit.docc/MachOKitC.md @@ -0,0 +1,3 @@ +# ``MachOKitC`` + +🔬 A Swift library for parsing MachO files to obtain various information. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dff3b8b --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +.PHONY: xcframework +xcframework: + bash scripts/xcframework.sh + +.PHONY: docc +docc: + bash scripts/docc.sh + +.PHONY: docc-preview +docc-preview: + bash scripts/docc-preview.sh diff --git a/scripts/docc-preview.sh b/scripts/docc-preview.sh new file mode 100644 index 0000000..943cee0 --- /dev/null +++ b/scripts/docc-preview.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +TARGET='MachOKit' + +preview_docc() { + mkdir -p docs + + $(xcrun --find docc) preview \ + "./${TARGET}.docc" \ + --additional-symbol-graph-dir symbol-graphs \ + --output-path "docs" +} + +sh ./scripts/generate-symbols.sh + +preview_docc diff --git a/scripts/docc.sh b/scripts/docc.sh new file mode 100644 index 0000000..e579c88 --- /dev/null +++ b/scripts/docc.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +TARGET='MachOKit' +REPO_NAME='MachOKit' + +generate_docc() { + mkdir -p docs + + $(xcrun --find docc) convert \ + "./${TARGET}.docc" \ + --output-path "docs" \ + --hosting-base-path "${REPO_NAME}" \ + --additional-symbol-graph-dir ./symbol-graphs +} + +sh ./scripts/generate-symbols.sh + +generate_docc diff --git a/scripts/generate-symbols.sh b/scripts/generate-symbols.sh new file mode 100644 index 0000000..6b73e90 --- /dev/null +++ b/scripts/generate-symbols.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +SYMBOL_DIR='./symbol-graphs' + +clean_build() { + rm -rf ./.build +} + +clean_xcbuild() { + destination=$1 + scheme=$2 + + xcodebuild -scheme "$scheme" \ + -destination "generic/platform=${destination}" \ + clean +} + +clean_symbol() { + rm -rf SYMBOL_DIR +} + +generate_symbol_graphs() { + destination=$1 + scheme=$2 + + mkdir -p .build/symbol-graphs + mkdir -p symbol-graphs + + xcodebuild clean build -scheme "${scheme}"\ + -destination "generic/platform=${destination}" \ + OTHER_SWIFT_FLAGS="-emit-extension-block-symbols -emit-symbol-graph -emit-symbol-graph-dir $(pwd)/.build/symbol-graphs" + + mv "./.build/symbol-graphs/${scheme}.symbols.json" "${SYMBOL_DIR}/${scheme}_${destination}.symbols.json" +} + + +clean_build +clean_xcbuild ios MachOKitC +clean_xcbuild ios MachOKit + +clean_symbol + +generate_symbol_graphs ios MachOKitC +generate_symbol_graphs ios MachOKit