mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-22 05:27:19 +00:00
61 lines
2.1 KiB
CMake
61 lines
2.1 KiB
CMake
# Parses a config file for a specific option and appends the new option if it does not exist
|
|
# If the new option does exist, this function will do nothing.
|
|
# file_name: The name of the file to parse
|
|
# old_option_name: The name of the option to find
|
|
# new_option_name: The name of the option to add
|
|
function(UpdateConfigOption file_name old_option_name new_option_name)
|
|
string(APPEND old_option_name "=")
|
|
string(APPEND new_option_name "=")
|
|
message(STATUS "Checking " ${file_name} " for " ${old_option_name} " and adding " ${new_option_name} " if it does not exist")
|
|
if(NOT EXISTS ${file_name})
|
|
message(STATUS ${file_name} " does not exist. Doing nothing")
|
|
return()
|
|
endif()
|
|
file(READ ${file_name} current_file_contents)
|
|
string(REPLACE "\\\n" "" current_file_contents ${current_file_contents})
|
|
string(REPLACE "\n" ";" current_file_contents ${current_file_contents})
|
|
set(parsed_current_file_contents "")
|
|
|
|
# Remove comment lines so they do not interfere with the variable parsing
|
|
foreach(line ${current_file_contents})
|
|
string(FIND ${line} "#" is_comment)
|
|
|
|
if(NOT ${is_comment} EQUAL 0)
|
|
string(APPEND parsed_current_file_contents ${line})
|
|
endif()
|
|
endforeach()
|
|
|
|
set(found_new_option -1)
|
|
set(found_old_option -1)
|
|
set(current_value -1)
|
|
|
|
foreach(line ${current_file_contents})
|
|
string(FIND ${line} ${old_option_name} old_option_in_file)
|
|
|
|
if(${old_option_in_file} EQUAL 0)
|
|
set(found_old_option 1)
|
|
set(current_value ${line})
|
|
endif()
|
|
|
|
string(FIND ${line} ${new_option_name} found_new_option_in_file)
|
|
|
|
if(${found_new_option_in_file} EQUAL 0)
|
|
set(found_new_option 1)
|
|
endif()
|
|
endforeach(line ${current_file_contents})
|
|
|
|
if(${found_old_option} EQUAL 1 AND NOT ${found_new_option} EQUAL 1)
|
|
string(REPLACE ${old_option_name} ${new_option_name} current_value ${current_value})
|
|
file(APPEND ${file_name} "\n" ${current_value})
|
|
endif()
|
|
endfunction()
|
|
|
|
function(DoAppleMariaDBCopy target location)
|
|
if(APPLE)
|
|
add_custom_command(TARGET ${target} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${MARIADBCPP_SHARED_LIBRARY_LOCATION}
|
|
${location})
|
|
endif()
|
|
endfunction()
|