From 16b2ce5b52b69069706c25f16ff46370604f8298 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 2 Jun 2025 08:03:02 +1200 Subject: [PATCH] 'Generic Commit' --- {test => ipdemo}/.ccache/0/CACHEDIR.TAG | 0 {test => ipdemo}/.ccache/0/a/stats | 0 .../0/c/aaicapo17sbvoqmjgn2cmlcheirsr2eM | Bin {test => ipdemo}/.ccache/0/c/stats | 0 {test => ipdemo}/.ccache/0/stats | 0 {test => ipdemo}/.ccache/1/1/stats | 0 {test => ipdemo}/.ccache/1/2/stats | 0 {test => ipdemo}/.ccache/1/e/stats | 0 {test => ipdemo}/.ccache/2/5/stats | 0 {test => ipdemo}/.ccache/2/CACHEDIR.TAG | 0 {test => ipdemo}/.ccache/2/d/stats | 0 .../2/e/9dc3onnqn8rat9gvebfkmhom2hm37teR | Bin {test => ipdemo}/.ccache/2/stats | 0 {test => ipdemo}/.ccache/3/4/stats | 0 {test => ipdemo}/.ccache/3/7/stats | 0 {test => ipdemo}/.ccache/3/e/stats | 0 .../4/0/38skoanmcjl0asrltg5foudrhoa98l6R | Bin {test => ipdemo}/.ccache/4/CACHEDIR.TAG | 0 .../4/b/e63vp6nheqb9ljsvvflf2rprmqrdtmuR | Bin {test => ipdemo}/.ccache/4/stats | 0 .../6/1/99hro0kcqvitm08ph1qp23lc096dpjgM | Bin {test => ipdemo}/.ccache/6/CACHEDIR.TAG | 0 .../6/c/cfpg24omtabmcf0551a884a2i1480imR | Bin {test => ipdemo}/.ccache/6/stats | 0 {test => ipdemo}/.ccache/9/CACHEDIR.TAG | 0 .../9/a/fd2897kchp5ong36tqk6obhs3al8grgM | Bin {test => ipdemo}/.ccache/9/stats | 0 .../a/2/802tu8tqcjankp7asf9phvduq5nid82M | Bin .../a/9/49to0fu7pau2cla8merd8b3g64qh2noM | Bin {test => ipdemo}/.ccache/a/CACHEDIR.TAG | 0 {test => ipdemo}/.ccache/a/stats | 0 .../b/1/80mp1h8inh43vbck35d22ai3d9s5e94R | Bin {test => ipdemo}/.ccache/b/CACHEDIR.TAG | 0 {test => ipdemo}/.ccache/b/stats | 0 .../c/0/3a34k150ga9nserg9pef8uij1gdvajeM | Bin {test => ipdemo}/.ccache/c/CACHEDIR.TAG | 0 {test => ipdemo}/.ccache/c/stats | 0 .../f/4/8dp5jdv5s35vp9ugponj5s5qe8v4b9qR | Bin {test => ipdemo}/.ccache/f/CACHEDIR.TAG | 0 {test => ipdemo}/.ccache/f/stats | 0 {test => ipdemo}/.ccache/tmp/.cleaned | 0 .../.ccache/tmp/inode-cache-64.v2 | Bin {test => ipdemo}/CMakeLists.txt | 21 +++-- {test => ipdemo}/cmake_prebuild.sh | 0 {test => ipdemo}/src/autogen/version.hpp | 0 {test => ipdemo}/src/httplib.hpp | 0 {test => ipdemo}/src/main.cpp | 0 {test => ipdemo}/src/version.hpp.in | 0 src/dropshell-build | 85 ++++++++---------- test.sh | 4 +- 50 files changed, 50 insertions(+), 60 deletions(-) rename {test => ipdemo}/.ccache/0/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/0/a/stats (100%) rename {test => ipdemo}/.ccache/0/c/aaicapo17sbvoqmjgn2cmlcheirsr2eM (100%) rename {test => ipdemo}/.ccache/0/c/stats (100%) rename {test => ipdemo}/.ccache/0/stats (100%) rename {test => ipdemo}/.ccache/1/1/stats (100%) rename {test => ipdemo}/.ccache/1/2/stats (100%) rename {test => ipdemo}/.ccache/1/e/stats (100%) rename {test => ipdemo}/.ccache/2/5/stats (100%) rename {test => ipdemo}/.ccache/2/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/2/d/stats (100%) rename {test => ipdemo}/.ccache/2/e/9dc3onnqn8rat9gvebfkmhom2hm37teR (100%) rename {test => ipdemo}/.ccache/2/stats (100%) rename {test => ipdemo}/.ccache/3/4/stats (100%) rename {test => ipdemo}/.ccache/3/7/stats (100%) rename {test => ipdemo}/.ccache/3/e/stats (100%) rename {test => ipdemo}/.ccache/4/0/38skoanmcjl0asrltg5foudrhoa98l6R (100%) rename {test => ipdemo}/.ccache/4/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/4/b/e63vp6nheqb9ljsvvflf2rprmqrdtmuR (100%) rename {test => ipdemo}/.ccache/4/stats (100%) rename {test => ipdemo}/.ccache/6/1/99hro0kcqvitm08ph1qp23lc096dpjgM (100%) rename {test => ipdemo}/.ccache/6/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/6/c/cfpg24omtabmcf0551a884a2i1480imR (100%) rename {test => ipdemo}/.ccache/6/stats (100%) rename {test => ipdemo}/.ccache/9/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/9/a/fd2897kchp5ong36tqk6obhs3al8grgM (100%) rename {test => ipdemo}/.ccache/9/stats (100%) rename {test => ipdemo}/.ccache/a/2/802tu8tqcjankp7asf9phvduq5nid82M (100%) rename {test => ipdemo}/.ccache/a/9/49to0fu7pau2cla8merd8b3g64qh2noM (100%) rename {test => ipdemo}/.ccache/a/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/a/stats (100%) rename {test => ipdemo}/.ccache/b/1/80mp1h8inh43vbck35d22ai3d9s5e94R (100%) rename {test => ipdemo}/.ccache/b/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/b/stats (100%) rename {test => ipdemo}/.ccache/c/0/3a34k150ga9nserg9pef8uij1gdvajeM (100%) rename {test => ipdemo}/.ccache/c/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/c/stats (100%) rename {test => ipdemo}/.ccache/f/4/8dp5jdv5s35vp9ugponj5s5qe8v4b9qR (100%) rename {test => ipdemo}/.ccache/f/CACHEDIR.TAG (100%) rename {test => ipdemo}/.ccache/f/stats (100%) rename {test => ipdemo}/.ccache/tmp/.cleaned (100%) rename {test => ipdemo}/.ccache/tmp/inode-cache-64.v2 (100%) rename {test => ipdemo}/CMakeLists.txt (86%) rename {test => ipdemo}/cmake_prebuild.sh (100%) rename {test => ipdemo}/src/autogen/version.hpp (100%) rename {test => ipdemo}/src/httplib.hpp (100%) rename {test => ipdemo}/src/main.cpp (100%) rename {test => ipdemo}/src/version.hpp.in (100%) diff --git a/test/.ccache/0/CACHEDIR.TAG b/ipdemo/.ccache/0/CACHEDIR.TAG similarity index 100% rename from test/.ccache/0/CACHEDIR.TAG rename to ipdemo/.ccache/0/CACHEDIR.TAG diff --git a/test/.ccache/0/a/stats b/ipdemo/.ccache/0/a/stats similarity index 100% rename from test/.ccache/0/a/stats rename to ipdemo/.ccache/0/a/stats diff --git a/test/.ccache/0/c/aaicapo17sbvoqmjgn2cmlcheirsr2eM b/ipdemo/.ccache/0/c/aaicapo17sbvoqmjgn2cmlcheirsr2eM similarity index 100% rename from test/.ccache/0/c/aaicapo17sbvoqmjgn2cmlcheirsr2eM rename to ipdemo/.ccache/0/c/aaicapo17sbvoqmjgn2cmlcheirsr2eM diff --git a/test/.ccache/0/c/stats b/ipdemo/.ccache/0/c/stats similarity index 100% rename from test/.ccache/0/c/stats rename to ipdemo/.ccache/0/c/stats diff --git a/test/.ccache/0/stats b/ipdemo/.ccache/0/stats similarity index 100% rename from test/.ccache/0/stats rename to ipdemo/.ccache/0/stats diff --git a/test/.ccache/1/1/stats b/ipdemo/.ccache/1/1/stats similarity index 100% rename from test/.ccache/1/1/stats rename to ipdemo/.ccache/1/1/stats diff --git a/test/.ccache/1/2/stats b/ipdemo/.ccache/1/2/stats similarity index 100% rename from test/.ccache/1/2/stats rename to ipdemo/.ccache/1/2/stats diff --git a/test/.ccache/1/e/stats b/ipdemo/.ccache/1/e/stats similarity index 100% rename from test/.ccache/1/e/stats rename to ipdemo/.ccache/1/e/stats diff --git a/test/.ccache/2/5/stats b/ipdemo/.ccache/2/5/stats similarity index 100% rename from test/.ccache/2/5/stats rename to ipdemo/.ccache/2/5/stats diff --git a/test/.ccache/2/CACHEDIR.TAG b/ipdemo/.ccache/2/CACHEDIR.TAG similarity index 100% rename from test/.ccache/2/CACHEDIR.TAG rename to ipdemo/.ccache/2/CACHEDIR.TAG diff --git a/test/.ccache/2/d/stats b/ipdemo/.ccache/2/d/stats similarity index 100% rename from test/.ccache/2/d/stats rename to ipdemo/.ccache/2/d/stats diff --git a/test/.ccache/2/e/9dc3onnqn8rat9gvebfkmhom2hm37teR b/ipdemo/.ccache/2/e/9dc3onnqn8rat9gvebfkmhom2hm37teR similarity index 100% rename from test/.ccache/2/e/9dc3onnqn8rat9gvebfkmhom2hm37teR rename to ipdemo/.ccache/2/e/9dc3onnqn8rat9gvebfkmhom2hm37teR diff --git a/test/.ccache/2/stats b/ipdemo/.ccache/2/stats similarity index 100% rename from test/.ccache/2/stats rename to ipdemo/.ccache/2/stats diff --git a/test/.ccache/3/4/stats b/ipdemo/.ccache/3/4/stats similarity index 100% rename from test/.ccache/3/4/stats rename to ipdemo/.ccache/3/4/stats diff --git a/test/.ccache/3/7/stats b/ipdemo/.ccache/3/7/stats similarity index 100% rename from test/.ccache/3/7/stats rename to ipdemo/.ccache/3/7/stats diff --git a/test/.ccache/3/e/stats b/ipdemo/.ccache/3/e/stats similarity index 100% rename from test/.ccache/3/e/stats rename to ipdemo/.ccache/3/e/stats diff --git a/test/.ccache/4/0/38skoanmcjl0asrltg5foudrhoa98l6R b/ipdemo/.ccache/4/0/38skoanmcjl0asrltg5foudrhoa98l6R similarity index 100% rename from test/.ccache/4/0/38skoanmcjl0asrltg5foudrhoa98l6R rename to ipdemo/.ccache/4/0/38skoanmcjl0asrltg5foudrhoa98l6R diff --git a/test/.ccache/4/CACHEDIR.TAG b/ipdemo/.ccache/4/CACHEDIR.TAG similarity index 100% rename from test/.ccache/4/CACHEDIR.TAG rename to ipdemo/.ccache/4/CACHEDIR.TAG diff --git a/test/.ccache/4/b/e63vp6nheqb9ljsvvflf2rprmqrdtmuR b/ipdemo/.ccache/4/b/e63vp6nheqb9ljsvvflf2rprmqrdtmuR similarity index 100% rename from test/.ccache/4/b/e63vp6nheqb9ljsvvflf2rprmqrdtmuR rename to ipdemo/.ccache/4/b/e63vp6nheqb9ljsvvflf2rprmqrdtmuR diff --git a/test/.ccache/4/stats b/ipdemo/.ccache/4/stats similarity index 100% rename from test/.ccache/4/stats rename to ipdemo/.ccache/4/stats diff --git a/test/.ccache/6/1/99hro0kcqvitm08ph1qp23lc096dpjgM b/ipdemo/.ccache/6/1/99hro0kcqvitm08ph1qp23lc096dpjgM similarity index 100% rename from test/.ccache/6/1/99hro0kcqvitm08ph1qp23lc096dpjgM rename to ipdemo/.ccache/6/1/99hro0kcqvitm08ph1qp23lc096dpjgM diff --git a/test/.ccache/6/CACHEDIR.TAG b/ipdemo/.ccache/6/CACHEDIR.TAG similarity index 100% rename from test/.ccache/6/CACHEDIR.TAG rename to ipdemo/.ccache/6/CACHEDIR.TAG diff --git a/test/.ccache/6/c/cfpg24omtabmcf0551a884a2i1480imR b/ipdemo/.ccache/6/c/cfpg24omtabmcf0551a884a2i1480imR similarity index 100% rename from test/.ccache/6/c/cfpg24omtabmcf0551a884a2i1480imR rename to ipdemo/.ccache/6/c/cfpg24omtabmcf0551a884a2i1480imR diff --git a/test/.ccache/6/stats b/ipdemo/.ccache/6/stats similarity index 100% rename from test/.ccache/6/stats rename to ipdemo/.ccache/6/stats diff --git a/test/.ccache/9/CACHEDIR.TAG b/ipdemo/.ccache/9/CACHEDIR.TAG similarity index 100% rename from test/.ccache/9/CACHEDIR.TAG rename to ipdemo/.ccache/9/CACHEDIR.TAG diff --git a/test/.ccache/9/a/fd2897kchp5ong36tqk6obhs3al8grgM b/ipdemo/.ccache/9/a/fd2897kchp5ong36tqk6obhs3al8grgM similarity index 100% rename from test/.ccache/9/a/fd2897kchp5ong36tqk6obhs3al8grgM rename to ipdemo/.ccache/9/a/fd2897kchp5ong36tqk6obhs3al8grgM diff --git a/test/.ccache/9/stats b/ipdemo/.ccache/9/stats similarity index 100% rename from test/.ccache/9/stats rename to ipdemo/.ccache/9/stats diff --git a/test/.ccache/a/2/802tu8tqcjankp7asf9phvduq5nid82M b/ipdemo/.ccache/a/2/802tu8tqcjankp7asf9phvduq5nid82M similarity index 100% rename from test/.ccache/a/2/802tu8tqcjankp7asf9phvduq5nid82M rename to ipdemo/.ccache/a/2/802tu8tqcjankp7asf9phvduq5nid82M diff --git a/test/.ccache/a/9/49to0fu7pau2cla8merd8b3g64qh2noM b/ipdemo/.ccache/a/9/49to0fu7pau2cla8merd8b3g64qh2noM similarity index 100% rename from test/.ccache/a/9/49to0fu7pau2cla8merd8b3g64qh2noM rename to ipdemo/.ccache/a/9/49to0fu7pau2cla8merd8b3g64qh2noM diff --git a/test/.ccache/a/CACHEDIR.TAG b/ipdemo/.ccache/a/CACHEDIR.TAG similarity index 100% rename from test/.ccache/a/CACHEDIR.TAG rename to ipdemo/.ccache/a/CACHEDIR.TAG diff --git a/test/.ccache/a/stats b/ipdemo/.ccache/a/stats similarity index 100% rename from test/.ccache/a/stats rename to ipdemo/.ccache/a/stats diff --git a/test/.ccache/b/1/80mp1h8inh43vbck35d22ai3d9s5e94R b/ipdemo/.ccache/b/1/80mp1h8inh43vbck35d22ai3d9s5e94R similarity index 100% rename from test/.ccache/b/1/80mp1h8inh43vbck35d22ai3d9s5e94R rename to ipdemo/.ccache/b/1/80mp1h8inh43vbck35d22ai3d9s5e94R diff --git a/test/.ccache/b/CACHEDIR.TAG b/ipdemo/.ccache/b/CACHEDIR.TAG similarity index 100% rename from test/.ccache/b/CACHEDIR.TAG rename to ipdemo/.ccache/b/CACHEDIR.TAG diff --git a/test/.ccache/b/stats b/ipdemo/.ccache/b/stats similarity index 100% rename from test/.ccache/b/stats rename to ipdemo/.ccache/b/stats diff --git a/test/.ccache/c/0/3a34k150ga9nserg9pef8uij1gdvajeM b/ipdemo/.ccache/c/0/3a34k150ga9nserg9pef8uij1gdvajeM similarity index 100% rename from test/.ccache/c/0/3a34k150ga9nserg9pef8uij1gdvajeM rename to ipdemo/.ccache/c/0/3a34k150ga9nserg9pef8uij1gdvajeM diff --git a/test/.ccache/c/CACHEDIR.TAG b/ipdemo/.ccache/c/CACHEDIR.TAG similarity index 100% rename from test/.ccache/c/CACHEDIR.TAG rename to ipdemo/.ccache/c/CACHEDIR.TAG diff --git a/test/.ccache/c/stats b/ipdemo/.ccache/c/stats similarity index 100% rename from test/.ccache/c/stats rename to ipdemo/.ccache/c/stats diff --git a/test/.ccache/f/4/8dp5jdv5s35vp9ugponj5s5qe8v4b9qR b/ipdemo/.ccache/f/4/8dp5jdv5s35vp9ugponj5s5qe8v4b9qR similarity index 100% rename from test/.ccache/f/4/8dp5jdv5s35vp9ugponj5s5qe8v4b9qR rename to ipdemo/.ccache/f/4/8dp5jdv5s35vp9ugponj5s5qe8v4b9qR diff --git a/test/.ccache/f/CACHEDIR.TAG b/ipdemo/.ccache/f/CACHEDIR.TAG similarity index 100% rename from test/.ccache/f/CACHEDIR.TAG rename to ipdemo/.ccache/f/CACHEDIR.TAG diff --git a/test/.ccache/f/stats b/ipdemo/.ccache/f/stats similarity index 100% rename from test/.ccache/f/stats rename to ipdemo/.ccache/f/stats diff --git a/test/.ccache/tmp/.cleaned b/ipdemo/.ccache/tmp/.cleaned similarity index 100% rename from test/.ccache/tmp/.cleaned rename to ipdemo/.ccache/tmp/.cleaned diff --git a/test/.ccache/tmp/inode-cache-64.v2 b/ipdemo/.ccache/tmp/inode-cache-64.v2 similarity index 100% rename from test/.ccache/tmp/inode-cache-64.v2 rename to ipdemo/.ccache/tmp/inode-cache-64.v2 diff --git a/test/CMakeLists.txt b/ipdemo/CMakeLists.txt similarity index 86% rename from test/CMakeLists.txt rename to ipdemo/CMakeLists.txt index 6d6131f..4a33425 100644 --- a/test/CMakeLists.txt +++ b/ipdemo/CMakeLists.txt @@ -1,6 +1,13 @@ +# Get the current date in yyyy.mmdd.hhmm format +execute_process( + COMMAND date "+%Y.%m%d.%H%M" + OUTPUT_VARIABLE PROJECT_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE +) + cmake_minimum_required(VERSION 3.10) -set(PROJECT_EXE_NAME ipdemo) -project(${PROJECT_EXE_NAME} VERSION 1.0.0 LANGUAGES CXX) +get_filename_component(PROJECT_EXE_NAME "${CMAKE_CURRENT_SOURCE_DIR}" NAME) +project(${PROJECT_EXE_NAME} VERSION ${PROJECT_VERSION} LANGUAGES CXX) # Force static linking globally set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") @@ -24,15 +31,6 @@ endif() set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG") -# Configure version information -string(TIMESTAMP CURRENT_YEAR "%Y") -string(TIMESTAMP CURRENT_MONTH "%m") -string(TIMESTAMP CURRENT_DAY "%d") -string(TIMESTAMP CURRENT_HOUR "%H") -string(TIMESTAMP CURRENT_MINUTE "%M") -set(PROJECT_VERSION "${CURRENT_YEAR}.${CURRENT_MONTH}${CURRENT_DAY}.${CURRENT_HOUR}${CURRENT_MINUTE}") -string(TIMESTAMP RELEASE_DATE "%Y-%m-%d") - # Configure version.hpp file configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/version.hpp.in" @@ -46,6 +44,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) # Auto-detect source files file(GLOB_RECURSE SOURCES "src/*.cpp") file(GLOB_RECURSE HEADERS "src/*.hpp") +file(GLOB_RECURSE HEADERS "src/*.h") # Add custom target to run cmake_prebuild.sh at the start of the build process add_custom_target(run_prebuild_script ALL diff --git a/test/cmake_prebuild.sh b/ipdemo/cmake_prebuild.sh similarity index 100% rename from test/cmake_prebuild.sh rename to ipdemo/cmake_prebuild.sh diff --git a/test/src/autogen/version.hpp b/ipdemo/src/autogen/version.hpp similarity index 100% rename from test/src/autogen/version.hpp rename to ipdemo/src/autogen/version.hpp diff --git a/test/src/httplib.hpp b/ipdemo/src/httplib.hpp similarity index 100% rename from test/src/httplib.hpp rename to ipdemo/src/httplib.hpp diff --git a/test/src/main.cpp b/ipdemo/src/main.cpp similarity index 100% rename from test/src/main.cpp rename to ipdemo/src/main.cpp diff --git a/test/src/version.hpp.in b/ipdemo/src/version.hpp.in similarity index 100% rename from test/src/version.hpp.in rename to ipdemo/src/version.hpp.in diff --git a/src/dropshell-build b/src/dropshell-build index e67269d..bb7bb73 100755 --- a/src/dropshell-build +++ b/src/dropshell-build @@ -11,11 +11,6 @@ ARCHS=( HOSTARCH=$(uname -m) -SOURCE_DIR="" -BUILD_DIR="" -OUTPUT_DIR="" -EXECUTABLE_NAME="" - # set flags from command line RELEASE=0 MULTIBUILD=0 @@ -40,54 +35,46 @@ function die() { exit 1 } +function centerlittletitle() { + local TITLE="$1" + local WIDTH + # Try tput cols, then stty size, else default to 80 + if command -v tput &> /dev/null; then + WIDTH=$(tput cols 2>/dev/null) + elif command -v stty &> /dev/null && [ -t 1 ]; then + WIDTH=$(stty size 2>/dev/null | awk '{print $2}') + fi + # Fallback to 80 if WIDTH is empty or not a number + if ! [[ "$WIDTH" =~ ^[0-9]+$ ]]; then + WIDTH=80 + fi + local SPACES=$(( (WIDTH - ${#TITLE}) / 2 )) + printf '%*s\n' "$WIDTH" '' | tr ' ' '-' + printf "%*s%s\n" "$SPACES" "" "$TITLE" + printf '%*s\n' "$WIDTH" '' | tr ' ' '-' +} + +OLD_PWD="$PWD" +trap 'cd "${OLD_PWD}"' EXIT # ---------------------------------------------------------------------------------------------------------- # BUILD # ---------------------------------------------------------------------------------------------------------- -CMAKE_FILE="CMakeLists.txt" - -function get_executable_name() { - local var_value="" - local CMAKEFILEPATH="${1:-}" - [ -n "${CMAKEFILEPATH:-}" ] || die "No CMake file path given!" - CMAKEFILEPATH="$CMAKEFILEPATH/${CMAKE_FILE}" - [ -f "${CMAKEFILEPATH}" ] || die "${CMAKE_FILE} not found in ${CMAKEFILEPATH}" - - echo "Getting executable name from ${CMAKEFILEPATH}" - - while IFS= read -r line; do - # Look for set(PROJECT_EXE_NAME ipdemo) - if [[ "$line" =~ set\(PROJECT_EXE_NAME[[:space:]]+([a-zA-Z0-9_-]+)\) ]]; then - var_value=$(echo "$line" | sed -E 's/.*set\(PROJECT_EXE_NAME[[:space:]]+([a-zA-Z0-9_-]+)\).*/\1/') - fi - # Look for add_executable(${PROJECT_EXE_NAME} - if [[ "$line" =~ add_executable\([[:space:]]*\$\{PROJECT_EXE_NAME\}[[:space:]] ]]; then - echo "Found executable name: $var_value" - EXECUTABLE_NAME="$var_value" - fi - done < "${CMAKEFILEPATH}" - - [[ -n "$EXECUTABLE_NAME" ]] || die "Executable name not found." - echo "Executable name: $EXECUTABLE_NAME" -} - function build_arch() { local ARCH="$1" local CMAKE_DIR="$2" - local BUILD_DIR="${CMAKE_DIR}/build" + local ARCH_BUILD_DIR="${CMAKE_DIR}/build/build.$ARCH" local OUTPUT_DIR="${CMAKE_DIR}/output" - local PREVDIR="$PWD" local JOBS; JOBS=$(nproc) # Set JOBS to the number of available CPU cores cd "${CMAKE_DIR}" || exit 1 - local ARCH_BUILD_DIR=${BUILD_DIR}/${ARCH} mkdir -p "${ARCH_BUILD_DIR}" - echo "Building for ${ARCH} in ${ARCH_BUILD_DIR}, from ${SOURCE_DIR}" + echo "Building for ${ARCH} in ${ARCH_BUILD_DIR}" if [ ! -f "${HOME}/.musl-cross/${ARCH}-linux-musl-cross/bin/${ARCH}-linux-musl-g++" ]; then echo "Musl cross toolchain not found for ${ARCH}." @@ -122,16 +109,22 @@ function build_arch() { cd "${ARCH_BUILD_DIR}" || exit 1 ninja -k0 -j"${JOBS}" - if [ "$RELEASE" -eq 1 ]; then - upx "${ARCH_BUILD_DIR}/${EXECUTABLE_NAME}" - fi + # the rest is optional. - if [ ! -d "${OUTPUT_DIR}" ]; then - mkdir -p "${OUTPUT_DIR}" - fi - cp "${ARCH_BUILD_DIR}/${EXECUTABLE_NAME}" "${OUTPUT_DIR}/${EXECUTABLE_NAME}.${ARCH}" - - cd "${PREVDIR}" || exit 1 + # loop through the build directory and find executables + for executable in "${ARCH_BUILD_DIR}"/*; do + if [ -f "$executable" ] && [ -x "$executable" ]; then + local TARGET_NAME="${executable##*/}" + local TARGET_PATH="${OUTPUT_DIR}/${TARGET_NAME}.${ARCH}" + mkdir -p "${OUTPUT_DIR}" + cp "${executable}" "${TARGET_PATH}" + if command -v upx &> /dev/null ; then + echo "Compressing $TARGET_PATH with upx" + upx "${TARGET_PATH}" + fi + centerlittletitle "Built $TARGET_PATH" + fi + done } function build() { @@ -161,8 +154,6 @@ function buildspawn() { # make canonical CMAKE_DIR=$(realpath "$CMAKE_DIR") - get_executable_name "$CMAKE_DIR" - FLAGS="" [ $MULTIBUILD -eq 0 ] || FLAGS="$FLAGS -m" [ $RELEASE -eq 0 ] || FLAGS="$FLAGS -r" diff --git a/test.sh b/test.sh index 2868114..d61e357 100755 --- a/test.sh +++ b/test.sh @@ -6,9 +6,9 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" echo "Testing dropshell-build" -DROPSHELL_BUILD_TAG="test" "${SCRIPT_DIR}/src/dropshell-build" "${SCRIPT_DIR}/test" +DROPSHELL_BUILD_TAG="test" "${SCRIPT_DIR}/src/dropshell-build" "${SCRIPT_DIR}/ipdemo" -"${SCRIPT_DIR}/test/output/ipdemo.x86_64" +"${SCRIPT_DIR}/ipdemo/output/ipdemo.x86_64"