From a192dd502a14d4e7b6c07afa37f917ede8759b57 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 28 May 2025 16:03:14 +1200 Subject: [PATCH] :-'Generic Commit' --- dropshell-build/dropshell-build.sh | 24 +++++++++++------------- dropshell-build/test/CMakeLists.txt | 15 ++++++++------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/dropshell-build/dropshell-build.sh b/dropshell-build/dropshell-build.sh index 77f7ce4..7a0b3c9 100755 --- a/dropshell-build/dropshell-build.sh +++ b/dropshell-build/dropshell-build.sh @@ -144,26 +144,24 @@ CMAKE_FILE="CMakeLists.txt" function get_executable_name() { EXECUTABLE_NAME="" - local target_name="" + local var_value="" while IFS= read -r line; do - if [[ "$line" =~ add_executable.* ]]; then - target_name=$(echo "$line" | sed 's/.*add_executable(\([^ ]*\).*/\1/' | tr -d ')') - EXECUTABLE_NAME=$target_name - elif [[ "$line" =~ set_target_properties.*OUTPUT_NAME.* ]]; then - local prop_target_name - prop_target_name=$(echo "$line" | sed 's/.*set_target_properties(\([^ ]*\).*/\1/' | tr -d ' ') - if [[ "$prop_target_name" == "$target_name" ]]; then - EXECUTABLE_NAME=$(echo "$line" | sed 's/.*OUTPUT_NAME \([^)]*\).*/\1/' | tr -d ')') + # Look for set(PROJECT_EXE_NAME ipdemo) + if [[ "$line" =~ set\(PROJECT_EXE_NAME[[:space:]]+([a-zA-Z0-9_]+)\) ]]; then + var_value=$(echo "$line" | sed -n 's/.*set(PROJECT_EXE_NAME[[:space:]]\+\([a-zA-Z0-9_]\+\)).*/\\1/p') + fi + # Look for add_executable(${PROJECT_EXE_NAME} + if [[ "$line" =~ add_executable\(\$\{PROJECT_EXE_NAME\} ]]; then + EXECUTABLE_NAME="$var_value" fi - fi done < "${SOURCE_DIR}/${CMAKE_FILE}" if [[ -z "$EXECUTABLE_NAME" ]]; then - echo "Executable name not found." + echo "Executable name not found." else - echo "Executable name: $EXECUTABLE_NAME" -fi + echo "Executable name: $EXECUTABLE_NAME" + fi } function build_arch() { diff --git a/dropshell-build/test/CMakeLists.txt b/dropshell-build/test/CMakeLists.txt index a59bab8..946fa5f 100644 --- a/dropshell-build/test/CMakeLists.txt +++ b/dropshell-build/test/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 3.10) -project(ipdemo VERSION 1.0.0 LANGUAGES CXX) +set(PROJECT_EXE_NAME ipdemo) +project(${PROJECT_EXE_NAME} VERSION 1.0.0 LANGUAGES CXX) # Force static linking globally set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") @@ -54,12 +55,12 @@ add_custom_target(run_prebuild_script ALL ) # Add executable -add_executable(ipdemo ${SOURCES}) -add_dependencies(ipdemo run_prebuild_script) +add_executable(${PROJECT_EXE_NAME} ${SOURCES}) +add_dependencies(${PROJECT_EXE_NAME} run_prebuild_script) # Set include directories # build dir goes first so that we can use the generated version.hpp -target_include_directories(ipdemo PRIVATE +target_include_directories(${PROJECT_EXE_NAME} PRIVATE $ ${CMAKE_CURRENT_SOURCE_DIR}/src ) @@ -90,19 +91,19 @@ FetchContent_Declare( FetchContent_MakeAvailable(nlohmann_json) # Link libraries -target_link_libraries(ipdemo PRIVATE +target_link_libraries(${PROJECT_EXE_NAME} PRIVATE libassert::assert cpptrace::cpptrace nlohmann_json::nlohmann_json ) # Set static linking flags -set_target_properties(ipdemo PROPERTIES +set_target_properties(${PROJECT_EXE_NAME} PROPERTIES LINK_FLAGS "-static" ) # Install targets -install(TARGETS ipdemo +install(TARGETS ${PROJECT_EXE_NAME} RUNTIME DESTINATION $ENV{HOME}/.local/bin )