aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/gettext-libintl/bashify.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/gettext-libintl/bashify.cmake')
-rw-r--r--vcpkg/ports/gettext-libintl/bashify.cmake16
1 files changed, 16 insertions, 0 deletions
diff --git a/vcpkg/ports/gettext-libintl/bashify.cmake b/vcpkg/ports/gettext-libintl/bashify.cmake
new file mode 100644
index 0000000..8b3d87e
--- /dev/null
+++ b/vcpkg/ports/gettext-libintl/bashify.cmake
@@ -0,0 +1,16 @@
+# By using bash builtin expansion, we can avoid
+# expensively spawing three sub-processes (bash, echo, sed).
+foreach(dir IN LISTS SOURCE_DIRS)
+ file(READ "${dir}/configure" script)
+ string(REGEX REPLACE
+ "(\n[a-zA-Z0-9_]*)='`[\$]ECHO \"[\$]([^\"]*)\" \\| [\$]SED \"[\$]delay_single_quote_subst\"`'"
+ [[\1='${\2//\\'/\\'\\\\\\'\\'}']]
+ script "${script}"
+ )
+ string(REPLACE
+ [[ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in]]
+ [[ case "\${!var}" in]]
+ script "${script}"
+ )
+ file(WRITE "${dir}/configure" "${script}")
+endforeach()