Procházet zdrojové kódy

Add script to fetch PackChk/SVDConv from their release location.

Jonatan Antoni před 3 roky
rodič
revize
2d17771f8d

binární
CMSIS/Utilities/Linux64/PackChk


binární
CMSIS/Utilities/Linux64/SVDConv


binární
CMSIS/Utilities/Win32/PackChk.exe


binární
CMSIS/Utilities/Win32/SVDConv.exe


+ 63 - 0
CMSIS/Utilities/fetch_devtools.sh

@@ -0,0 +1,63 @@
+#!/bin/bash
+
+PACKCHK_VERSION=1.3.95
+SVDCONV_VERSION=3.3.41
+
+REPO_URL=https://github.com/Open-CMSIS-Pack/devtools
+DOWNLOAD_URL=${REPO_URL}/releases/download/
+DIRNAME=$(dirname $0)
+
+set -o pipefail
+
+function usage {
+  echo "$(basename $0) [-h|--help] [-f|--force]"
+  echo ""
+  echo "Arguments:"
+  echo "  -h|--help   Print this usage message and exit."
+  echo "  -f|--force  Force (re)download."
+  echo ""
+  echo "Environment:"
+  echo " curl"
+  echo " sha256sum"
+  echo ""
+}
+
+function fetch {
+  mkdir -p ${DIRNAME}/$2
+  pushd ${DIRNAME}/$2 >/dev/null
+  curl -O -L $1
+  unzip -o $(basename $1)
+  rm $(basename $1)
+  popd >/dev/null
+}
+
+POSITIONAL=()
+while [[ $# -gt 0 ]]
+do
+  key="$1"
+
+  case $key in
+    '-h'|'--help')
+      usage
+      exit 1
+    ;;
+    '-f'|'--force')
+      FORCE=1      
+    ;;
+    *)    # unknown option
+      POSITIONAL+=("$1") # save it in an array for later
+    ;;
+  esac
+  shift # past argument
+done
+set -- "${POSITIONAL[@]}" # restore positional parameters
+
+fetch "${DOWNLOAD_URL}/tools%2Fpackchk%2F${PACKCHK_VERSION}/packchk-${PACKCHK_VERSION}-darwin64.zip" Darwin64
+fetch "${DOWNLOAD_URL}/tools%2Fpackchk%2F${PACKCHK_VERSION}/packchk-${PACKCHK_VERSION}-linux64.zip" Linux64
+fetch "${DOWNLOAD_URL}/tools%2Fpackchk%2F${PACKCHK_VERSION}/packchk-${PACKCHK_VERSION}-windows64.zip" Win32
+
+fetch "${DOWNLOAD_URL}/tools%2Fsvdconv%2F${SVDCONV_VERSION}/svdconv-${SVDCONV_VERSION}-darwin64.zip" Darwin64
+fetch "${DOWNLOAD_URL}/tools%2Fsvdconv%2F${SVDCONV_VERSION}/svdconv-${SVDCONV_VERSION}-linux64.zip" Linux64
+fetch "${DOWNLOAD_URL}/tools%2Fsvdconv%2F${SVDCONV_VERSION}/svdconv-${SVDCONV_VERSION}-windows64.zip" Win32
+
+exit 0

+ 9 - 9
CMSIS/Utilities/gen_pack.sh

@@ -1,6 +1,6 @@
 #!/bin/bash
-# Version: 1.4
-# Date: 2021-06-29
+# Version: 1.5
+# Date: 2022-04-06
 # This bash script generates a CMSIS Software Pack:
 #
 # Pre-requisites:
@@ -8,11 +8,12 @@
 # - git in path (for Windows: install git for Windows)
 # - 7z in path (zip archiving utility)
 #   e.g. Ubuntu: sudo apt-get install p7zip-full p7zip-rar)
-# - PackChk is taken from latest install CMSIS Pack installed in $CMSIS_PACK_ROOT
 # - xmllint in path (XML schema validation; available only for Linux)
 #
 # Preparation steps:
 # - Generate documentation, see CMSIS/DoxyGen/gen_doc.sh
+# - Populate utilities, see
+#   - CMSIS/Utilities/fetch_devtools.sh
 # - Populate pre-built libraries, see
 #   - CMSIS/RTOS/RTX/LIB/fetch_libs.sh
 #   - CMSIS/RTOS2/RTX/Library/fetch_libs.sh
@@ -35,7 +36,6 @@ function usage {
   echo ""
   echo "Environment:"
   echo " 7z"
-  echo " PackChk"
   if [ $(uname -s) = "Linux" ]; then
     echo " xmllint"
   fi
@@ -111,8 +111,7 @@ case $OS in
     CMSIS_TOOLSDIR="./CMSIS/Utilities/Win32"
     ;;
   'Darwin')
-    echo "Error: CMSIS Tools not available for Mac at present."
-    exit 1
+    CMSIS_TOOLSDIR="./CMSIS/Utilities/Darwin64"
     ;;
   *)
     echo "Error: unrecognized OS $OS"
@@ -151,6 +150,7 @@ PACK_DIRS="
   CMSIS/RTOS2
   CMSIS/Utilities/Win32
   CMSIS/Utilities/Linux64
+  CMSIS/Utilities/Darwin64
   CMSIS/Documentation
 "
 
@@ -189,12 +189,12 @@ if [ $errorlevel -gt 0 ]
 fi
 
 # Pack checking utility check
-PACKCHK=PackChk
+PACKCHK=packchk
 type -a ${PACKCHK}
 errorlevel=$?
 if [ $errorlevel != 0 ]; then
-  echo "Error: No PackChk Utility found"
-  echo "Action: Add PackChk to your path"
+  echo "Error: No packchk Utility found"
+  echo "Action: Add packchk to your path"
   echo "Hint: Included in CMSIS Pack:"
   echo "$CMSIS_PACK_ROOT/ARM/CMSIS/<version>/CMSIS/Utilities/<os>/"
   echo " "

+ 1 - 0
Jenkinsfile

@@ -313,6 +313,7 @@ echo """Stage schedule:
             }
             steps {
                 checkoutScmWithRetry(3)
+                sh('./CMSIS/Utilities/fetch_devtools.sh')
                 sh('./CMSIS/RTOS/RTX/LIB/fetch_libs.sh')
                 sh('./CMSIS/RTOS2/RTX/Library/fetch_libs.sh')