:-'Generic Commit'
This commit is contained in:
parent
26a7e2da1b
commit
a192dd502a
@ -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() {
|
||||
|
@ -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
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src/autogen>
|
||||
${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
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user