include_guard(GLOBAL) function(_cppbessot_dotenv_escape output_var value) set(escaped "${value}") string(REPLACE "\\" "\\\\" escaped "${escaped}") string(REPLACE "\"" "\\\"" escaped "${escaped}") string(REPLACE "\n" "\\n" escaped "${escaped}") string(REPLACE "\r" "\\r" escaped "${escaped}") string(REPLACE "\t" "\\t" escaped "${escaped}") set(${output_var} "${escaped}" PARENT_SCOPE) endfunction() function(_cppbessot_dotenv_append output_var name value) _cppbessot_dotenv_escape(escaped_value "${value}") set(line "${name}=\"${escaped_value}\"\n") set(${output_var} "${${output_var}}${line}" PARENT_SCOPE) endfunction() function(cppbessot_write_runtime_env_file output_path) set(env_contents "# Generated by cppbessot during CMake configure. Do not edit.\n") _cppbessot_dotenv_append(env_contents "DB_TARGET" "${DB_TARGET}") _cppbessot_dotenv_append(env_contents "CPPBESSOT_DB_PGSQL_PROD_CONNSTR" "${CPPBESSOT_DB_PGSQL_PROD_CONNSTR}") _cppbessot_dotenv_append(env_contents "CPPBESSOT_DB_PGSQL_DEV_CONNSTR" "${CPPBESSOT_DB_PGSQL_DEV_CONNSTR}") _cppbessot_dotenv_append(env_contents "CPPBESSOT_DB_PGSQL_PRODDEV_CONNSTR" "${CPPBESSOT_DB_PGSQL_PRODDEV_CONNSTR}") _cppbessot_dotenv_append(env_contents "CPPBESSOT_DB_PGSQL_TESTS_CONNSTR" "${CPPBESSOT_DB_PGSQL_TESTS_CONNSTR}") _cppbessot_dotenv_append(env_contents "CPPBESSOT_DB_SQLITE_PROD_PATH" "${CPPBESSOT_DB_SQLITE_PROD_PATH}") _cppbessot_dotenv_append(env_contents "CPPBESSOT_DB_SQLITE_DEV_PATH" "${CPPBESSOT_DB_SQLITE_DEV_PATH}") _cppbessot_dotenv_append(env_contents "CPPBESSOT_DB_SQLITE_PRODDEV_PATH" "${CPPBESSOT_DB_SQLITE_PRODDEV_PATH}") _cppbessot_dotenv_append(env_contents "CPPBESSOT_DB_SQLITE_TESTS_PATH" "${CPPBESSOT_DB_SQLITE_TESTS_PATH}") file(WRITE "${output_path}" "${env_contents}") endfunction()