From 0841f641fce5fa0384f8f427d28b7c669712fa47 Mon Sep 17 00:00:00 2001 From: Jake Prickett Date: Tue, 3 Mar 2020 05:33:04 -0500 Subject: [PATCH] Update Build Podspec & Dependencies Script with weissi's Updates (#189) Co-authored-by: Jake Prickett --- scripts/build_podspec.sh | 3 +-- scripts/list_topsorted_dependencies.sh | 16 +++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/scripts/build_podspec.sh b/scripts/build_podspec.sh index 7e6f59b8..7ec2963b 100755 --- a/scripts/build_podspec.sh +++ b/scripts/build_podspec.sh @@ -57,8 +57,7 @@ tmpdir=$(mktemp -d /tmp/.build_podspecsXXXXXX) echo "Building podspec in $tmpdir" -# We only want to generate Podspec files for the two targets -targets=( "SwiftNIOHPACK" "SwiftNIOHTTP2" ) +targets=( $("${here}/list_topsorted_dependencies.sh" -l -r | sed 's/^NIO/SwiftNIO/') ) for target in "${targets[@]}"; do diff --git a/scripts/list_topsorted_dependencies.sh b/scripts/list_topsorted_dependencies.sh index fa22fe19..4e19393e 100755 --- a/scripts/list_topsorted_dependencies.sh +++ b/scripts/list_topsorted_dependencies.sh @@ -23,7 +23,7 @@ function usage() { echo "OPTIONS:" echo " -l: Only dependencies of library targets" echo " -r: Reverse the output" - echo " -d : Prints the dependencies of the given package" + echo " -d : Prints the dependencies of the given module" } function tac_compat() { @@ -34,7 +34,7 @@ tmpfile=$(mktemp /tmp/.list_topsorted_dependencies_XXXXXX) only_libs=false do_reversed=false -package_dependency="" +module_dependency="" while getopts "lrd:" opt; do case $opt in l) @@ -44,7 +44,7 @@ while getopts "lrd:" opt; do do_reversed=true ;; d) - package_dependency="$OPTARG" + module_dependency="$OPTARG" ;; \?) usage @@ -58,24 +58,26 @@ if $do_reversed; then transform=tac_compat fi -if [[ ! -z "$package_dependency" ]]; then +if [[ ! -z "$module_dependency" ]]; then swift package dump-package | jq -r ".targets | - map(select(.name == \"$package_dependency\" and .type == \"regular\") | .dependencies | map(.byName | first)) | .[] | .[]" + map(select(.name == \"$module_dependency\" and .type == \"regular\") | .dependencies | map(.byName | first)) | .[] | .[]" exit 0 fi ( cd "$here/.." if $only_libs; then + find Sources -name 'main.swift' | cut -d/ -f2 >> "$tmpfile" swift package dump-package | jq '.products | map(select(.type | has("library") | not)) | map(.name) | .[]' | tr -d '"' \ >> "$tmpfile" fi swift package dump-package | jq '.targets | + map (.name) as $names | map(.name as $name | select(.name == $name and .type == "regular") | - { "\($name)": .dependencies | map(.byName | first) } ) | + { "\($name)": .dependencies | map(.byName | first) | map(. as $current | $names | map(select($current == .))) | flatten } ) | map(to_entries[]) | map("\(.key) \(.value | .[])") | .[]' | \ @@ -87,4 +89,4 @@ swift package dump-package | jq '.targets | done ) -rm "$tmpfile" +rm "$tmpfile" \ No newline at end of file