1#!/usr/bin/env bash
2# Version: 3.0
3# Date: 2023-11-06
4# This bash script generates a CMSIS-DSP Software Pack:
5#
6
7set -o pipefail
8
9# Set version of gen pack library
10# For available versions see https://github.com/Open-CMSIS-Pack/gen-pack/tags.
11# Use the tag name without the prefix "v", e.g., 0.7.0
12REQUIRED_GEN_PACK_LIB="0.9.1"
13
14# Set default command line arguments
15DEFAULT_ARGS=(-c "v")
16
17# Pack warehouse directory - destination
18# Default: ./output
19#
20# PACK_OUTPUT=./output
21
22# Temporary pack build directory,
23# Default: ./build
24#
25# PACK_BUILD=./build
26
27# Specify directory names to be added to pack base directory
28# An empty list defaults to all folders next to this script.
29# Default: empty (all folders)
30#
31PACK_DIRS="
32  ComputeLibrary
33  Documentation
34  Examples
35  Include
36  PrivateInclude
37  Source
38"
39
40# Specify file names to be added to pack base directory
41# Default: empty
42#
43PACK_BASE_FILES="
44  LICENSE
45"
46
47# Specify file names to be deleted from pack build directory
48# Default: empty
49#
50PACK_DELETE_FILES="
51  Documentation/Doxygen
52  Documentation/README.md
53"
54
55# Specify patches to be applied
56# Default: empty
57#
58# PACK_PATCH_FILES=""
59
60# Specify addition argument to packchk
61# Default: empty
62#
63# PACKCHK_ARGS=()
64
65# Specify additional dependencies for packchk
66# Default: empty
67#
68PACKCHK_DEPS="
69  ARM.CMSIS.pdsc
70"
71
72# Optional: restrict fallback modes for changelog generation
73# Default: full
74# Values:
75# - full      Tag annotations, release descriptions, or commit messages (in order)
76# - release   Tag annotations, or release descriptions (in order)
77# - tag       Tag annotations only
78#
79PACK_CHANGELOG_MODE="tag"
80
81#
82# custom pre-processing steps
83#
84# usage: preprocess <build>
85#   <build>  The build folder
86#
87function preprocess() {
88  # add custom steps here to be executed
89  # before populating the pack build folder
90  ./Documentation/Doxygen/gen_doc.sh
91  return 0
92}
93
94#
95# custom post-processing steps
96#
97# usage: postprocess <build>
98#   <build>  The build folder
99#
100function postprocess() {
101  # add custom steps here to be executed
102  # after populating the pack build folder
103  # but before archiving the pack into output folder
104  return 0
105}
106
107############ DO NOT EDIT BELOW ###########
108
109# Set GEN_PACK_LIB_PATH to use a specific gen-pack library root
110# ... instead of bootstrap based on REQUIRED_GEN_PACK_LIB
111if [[ -f "${GEN_PACK_LIB_PATH}/gen-pack" ]]; then
112  . "${GEN_PACK_LIB}/gen-pack"
113else
114  . <(curl -sL "https://raw.githubusercontent.com/Open-CMSIS-Pack/gen-pack/main/bootstrap")
115fi
116
117gen_pack "${DEFAULT_ARGS[@]}" "$@"
118
119exit 0
120