mirror of
https://github.com/radio95-rnt/rds95.git
synced 2026-02-26 20:33:53 +01:00
74 lines
2.5 KiB
CMake
74 lines
2.5 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
project(rds95 VERSION 1.6)
|
|
|
|
add_compile_options(-Wall -Werror -Wextra -pedantic -O2 -std=c18 -march=native -DVERSION=\"${PROJECT_VERSION}\")
|
|
|
|
file(GLOB INIH_FILES "inih/*.c")
|
|
add_library(inih OBJECT ${INIH_FILES})
|
|
|
|
file(GLOB SOURCES src/*.c)
|
|
|
|
add_executable(rds95 ${SOURCES})
|
|
|
|
find_package(Lua REQUIRED)
|
|
|
|
target_include_directories(rds95 PRIVATE ${LUA_INCLUDE_DIR})
|
|
target_link_libraries(rds95 PRIVATE m pthread pulse pulse-simple inih ${LUA_LIBRARIES})
|
|
|
|
install(TARGETS rds95 DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
|
|
|
|
install(CODE
|
|
"
|
|
# Define the paths for the source and destination files
|
|
set(PREFIX_FILE \"${CMAKE_CURRENT_SOURCE_DIR}/.script_prefix.lua\")
|
|
set(SCRIPTS_DIR \"${CMAKE_CURRENT_SOURCE_DIR}/scripts\")
|
|
set(DEST_FILE \"/etc/rds95.lua\")
|
|
|
|
# Initialize content variable
|
|
set(FINAL_CONTENT \"\")
|
|
|
|
# Check if scripts directory exists and contains .lua files
|
|
if(EXISTS \${SCRIPTS_DIR} AND IS_DIRECTORY \${SCRIPTS_DIR})
|
|
file(GLOB LUA_SCRIPTS \"\${SCRIPTS_DIR}/*.lua\")
|
|
list(LENGTH LUA_SCRIPTS SCRIPT_COUNT)
|
|
|
|
if(SCRIPT_COUNT GREATER 0)
|
|
message(STATUS \"Found \${SCRIPT_COUNT} Lua script(s) in scripts directory.\")
|
|
list(SORT LUA_SCRIPTS)
|
|
|
|
foreach(LUA_SCRIPT \${LUA_SCRIPTS})
|
|
get_filename_component(SCRIPT_NAME \${LUA_SCRIPT} NAME)
|
|
message(STATUS \"Adding script: \${SCRIPT_NAME}\")
|
|
file(READ \${LUA_SCRIPT} SCRIPT_CONTENT)
|
|
set(FINAL_CONTENT \"\${FINAL_CONTENT}\n\${SCRIPT_CONTENT}\")
|
|
endforeach()
|
|
else()
|
|
message(STATUS \"No Lua scripts found in scripts directory.\")
|
|
endif()
|
|
else()
|
|
message(STATUS \"Scripts directory not found.\")
|
|
endif()
|
|
|
|
# Check if the optional prefix file exists
|
|
if(EXISTS \${PREFIX_FILE})
|
|
message(STATUS \"Prefix file found. Adding .script_prefix.lua.\")
|
|
file(READ \${PREFIX_FILE} PREFIX_CONTENT)
|
|
set(FINAL_CONTENT \"\${PREFIX_CONTENT}\")
|
|
else()
|
|
message(STATUS \"Prefix file not found.\")
|
|
endif()
|
|
|
|
# Write the resulting content to the destination file
|
|
message(STATUS \"Installing script file to \${DEST_FILE}\")
|
|
file(WRITE \${DEST_FILE} \"\${FINAL_CONTENT}\")
|
|
|
|
# Change ownership to the user who invoked sudo (if applicable)
|
|
if(DEFINED ENV{SUDO_USER})
|
|
message(STATUS \"Changing ownership of \${DEST_FILE} to \$ENV{SUDO_USER}\")
|
|
execute_process(COMMAND chown \$ENV{SUDO_USER}:\$ENV{SUDO_USER} \${DEST_FILE})
|
|
else()
|
|
message(STATUS \"No SUDO_USER detected, skipping chown\")
|
|
endif()
|
|
"
|
|
) |