dep

Package manager for embedded C libraries
git clone git://git.finwo.net/app/dep
Log | Files | Refs | README | LICENSE

commit 4f13ae30511a23c47baca9d5d7accd1d7b9f61b7
parent 413a2b23f52223d1af792e297e2497737b6f9f78
Author: finwo <finwo@pm.me>
Date:   Mon,  1 Jan 2024 21:35:49 +0100

Added os-specific build step support

Diffstat:
Mdist/dep | 23++++++++++++++++++++++-
Msrc/command/install/index.sh | 11++++++++++-
Asrc/util/ostype.sh | 16++++++++++++++++
3 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/dist/dep b/dist/dep @@ -226,6 +226,19 @@ function cmd_add { cmds[${#cmds[*]}]="a" cmds[${#cmds[*]}]="add" +function ostype { + case "$OSTYPE" in + darwin*) echo "osx" ;; + linux*) echo "lin" ;; + bsd*) echo "bsd" ;; + msys*) echo "win" ;; + cygwin*) echo "win" ;; + *) echo "unknown" ;; + esac +} + +# None + read -r -d '' help_topics[install] <<- EOF Usage: dep [global options] install @@ -373,7 +386,7 @@ function cmd_install_dep { cmd_install_dep "$depname" "$deplink" done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "dependencies.") - # Handle any build-steps defined in the package.ini + # Handle any global build-steps defined in the package.ini if [ ! -z "$ISNEW" ]; then while read line; do buildcmd=${line#*=} @@ -381,6 +394,14 @@ function cmd_install_dep { done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "build." | sort --human-numeric-sort) fi + # Handle any os-generic build-steps defined in the package.ini + if [ ! -z "$ISNEW" ] && ; then + while read line; do + buildcmd=${line#*=} + bash -c "cd ${CMD_INSTALL_PKG_DEST}/${name} ; ${buildcmd}" + done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "build-$(ostype)." | sort --human-numeric-sort) + fi + # Build the package's exports if ! grep "${name}" "${CMD_INSTALL_PKG_DEST}/.dep/exported" &>/dev/null ; then echo "${name}" >> "${CMD_INSTALL_PKG_DEST}/.dep/exported" diff --git a/src/command/install/index.sh b/src/command/install/index.sh @@ -1,4 +1,5 @@ # #include "util/ini.sh" +# #include "util/ostype.sh" read -r -d '' help_topics[install] <<- EOF # #include "help.txt" @@ -141,7 +142,7 @@ function cmd_install_dep { cmd_install_dep "$depname" "$deplink" done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "dependencies.") - # Handle any build-steps defined in the package.ini + # Handle any global build-steps defined in the package.ini if [ ! -z "$ISNEW" ]; then while read line; do buildcmd=${line#*=} @@ -149,6 +150,14 @@ function cmd_install_dep { done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "build." | sort --human-numeric-sort) fi + # Handle any os-generic build-steps defined in the package.ini + if [ ! -z "$ISNEW" ] && ; then + while read line; do + buildcmd=${line#*=} + bash -c "cd ${CMD_INSTALL_PKG_DEST}/${name} ; ${buildcmd}" + done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "build-$(ostype)." | sort --human-numeric-sort) + fi + # Build the package's exports if ! grep "${name}" "${CMD_INSTALL_PKG_DEST}/.__NAME/exported" &>/dev/null ; then echo "${name}" >> "${CMD_INSTALL_PKG_DEST}/.__NAME/exported" diff --git a/src/util/ostype.sh b/src/util/ostype.sh @@ -0,0 +1,16 @@ +# #ifndef __OSTYPE_SH__ +# #define __OSTYPE_SH__ + +function ostype { + case "$OSTYPE" in + darwin*) echo "osx" ;; + linux*) echo "lin" ;; + bsd*) echo "bsd" ;; + msys*) echo "win" ;; + cygwin*) echo "win" ;; + *) echo "unknown" ;; + esac +} + +# __OSTYPE_SH__ +# #endif