:-'Generic Commit'
This commit is contained in:
parent
26a7e2da1b
commit
a192dd502a
@ -144,26 +144,24 @@ CMAKE_FILE="CMakeLists.txt"
|
|||||||
|
|
||||||
function get_executable_name() {
|
function get_executable_name() {
|
||||||
EXECUTABLE_NAME=""
|
EXECUTABLE_NAME=""
|
||||||
local target_name=""
|
local var_value=""
|
||||||
|
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
if [[ "$line" =~ add_executable.* ]]; then
|
# Look for set(PROJECT_EXE_NAME ipdemo)
|
||||||
target_name=$(echo "$line" | sed 's/.*add_executable(\([^ ]*\).*/\1/' | tr -d ')')
|
if [[ "$line" =~ set\(PROJECT_EXE_NAME[[:space:]]+([a-zA-Z0-9_]+)\) ]]; then
|
||||||
EXECUTABLE_NAME=$target_name
|
var_value=$(echo "$line" | sed -n 's/.*set(PROJECT_EXE_NAME[[:space:]]\+\([a-zA-Z0-9_]\+\)).*/\\1/p')
|
||||||
elif [[ "$line" =~ set_target_properties.*OUTPUT_NAME.* ]]; then
|
fi
|
||||||
local prop_target_name
|
# Look for add_executable(${PROJECT_EXE_NAME}
|
||||||
prop_target_name=$(echo "$line" | sed 's/.*set_target_properties(\([^ ]*\).*/\1/' | tr -d ' ')
|
if [[ "$line" =~ add_executable\(\$\{PROJECT_EXE_NAME\} ]]; then
|
||||||
if [[ "$prop_target_name" == "$target_name" ]]; then
|
EXECUTABLE_NAME="$var_value"
|
||||||
EXECUTABLE_NAME=$(echo "$line" | sed 's/.*OUTPUT_NAME \([^)]*\).*/\1/' | tr -d ')')
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
done < "${SOURCE_DIR}/${CMAKE_FILE}"
|
done < "${SOURCE_DIR}/${CMAKE_FILE}"
|
||||||
|
|
||||||
if [[ -z "$EXECUTABLE_NAME" ]]; then
|
if [[ -z "$EXECUTABLE_NAME" ]]; then
|
||||||
echo "Executable name not found."
|
echo "Executable name not found."
|
||||||
else
|
else
|
||||||
echo "Executable name: $EXECUTABLE_NAME"
|
echo "Executable name: $EXECUTABLE_NAME"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function build_arch() {
|
function build_arch() {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
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
|
# Force static linking globally
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
|
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
|
||||||
add_executable(ipdemo ${SOURCES})
|
add_executable(${PROJECT_EXE_NAME} ${SOURCES})
|
||||||
add_dependencies(ipdemo run_prebuild_script)
|
add_dependencies(${PROJECT_EXE_NAME} run_prebuild_script)
|
||||||
|
|
||||||
# Set include directories
|
# Set include directories
|
||||||
# build dir goes first so that we can use the generated version.hpp
|
# 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>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src/autogen>
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||||
)
|
)
|
||||||
@ -90,19 +91,19 @@ FetchContent_Declare(
|
|||||||
FetchContent_MakeAvailable(nlohmann_json)
|
FetchContent_MakeAvailable(nlohmann_json)
|
||||||
|
|
||||||
# Link libraries
|
# Link libraries
|
||||||
target_link_libraries(ipdemo PRIVATE
|
target_link_libraries(${PROJECT_EXE_NAME} PRIVATE
|
||||||
libassert::assert
|
libassert::assert
|
||||||
cpptrace::cpptrace
|
cpptrace::cpptrace
|
||||||
nlohmann_json::nlohmann_json
|
nlohmann_json::nlohmann_json
|
||||||
)
|
)
|
||||||
|
|
||||||
# Set static linking flags
|
# Set static linking flags
|
||||||
set_target_properties(ipdemo PROPERTIES
|
set_target_properties(${PROJECT_EXE_NAME} PROPERTIES
|
||||||
LINK_FLAGS "-static"
|
LINK_FLAGS "-static"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Install targets
|
# Install targets
|
||||||
install(TARGETS ipdemo
|
install(TARGETS ${PROJECT_EXE_NAME}
|
||||||
RUNTIME DESTINATION $ENV{HOME}/.local/bin
|
RUNTIME DESTINATION $ENV{HOME}/.local/bin
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user