aboutsummaryrefslogtreecommitdiff
path: root/scripts/buildsystems/make_wrapper
diff options
context:
space:
mode:
authorAlexander Neumann <30894796+Neumann-A@users.noreply.github.com>2020-11-10 18:52:02 +0100
committerGitHub <noreply@github.com>2020-11-10 09:52:02 -0800
commit8de4ee858faf41fc6930c02203d873175940ea98 (patch)
tree64d9e70e029042258ac46d90b9a717e597948306 /scripts/buildsystems/make_wrapper
parent202ada4fcf552cd845fa4fd84778281c01b30199 (diff)
downloadvcpkg-8de4ee858faf41fc6930c02203d873175940ea98.tar.gz
vcpkg-8de4ee858faf41fc6930c02203d873175940ea98.zip
[vcpkg/scripts] Add a way to get cmake compiler settings/flags (#12936)
* add function get_cmake_vars * fine tuning. * apply to make based ports. * add log suffix on not windows platforms * fix c&p error * add previous LINK env * setup env on windows and extract cpp flags correctly. * Apply suggestions from code review * commit changes from fontconfig PR * Apply suggestions from code review Co-authored-by: nicole mazzuca <mazzucan@outlook.com> * cleanup docs * add conversion from somelib.lib to -lsomelib * add missing ar-lib wrapper * small but important regex correction * add latest changes from update_fontconfig PR * Apply suggestions from code review first set which don't need special attention Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com> * Apply suggestions from code review one more simple change Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com> * [x264] set env AS * fix bugs due to refactor * use subpath everywhere * apply changes from CR * remove unnecessary lines 41 & 44 * remove flag transformation * reintroduce the flag / to - transformation for MSVC * Apply suggestions from code review Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com> * rename the function * rename function/variables * transform flags list * Apply suggestions from code review * fix vcpkg_build_make due to the variable name change * fix another case of function renaming regressions * only rename config.log if it exists * actually add the script after vcpkg_common_functions was deleted. * remove setting of ldflags if path contains spaces Co-authored-by: nicole mazzuca <mazzucan@outlook.com> Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
Diffstat (limited to 'scripts/buildsystems/make_wrapper')
-rw-r--r--scripts/buildsystems/make_wrapper/windres-rc130
1 files changed, 130 insertions, 0 deletions
diff --git a/scripts/buildsystems/make_wrapper/windres-rc b/scripts/buildsystems/make_wrapper/windres-rc
new file mode 100644
index 000000000..88cc8425f
--- /dev/null
+++ b/scripts/buildsystems/make_wrapper/windres-rc
@@ -0,0 +1,130 @@
+#! /bin/sh
+# Wrapper for windres to rc which do not understand '-i -o --output-format'.
+# cvtres is invoked by the linker
+scriptversion=2020-08-17.03; # UTC
+
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN* | MSYS*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/* | msys/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_windres_wrapper rc args...
+# Adjust compile command to suit rc instead of windres
+func_windres_wrapper ()
+{
+ echo "FROM WINDRESWRAPPER FUNCTION:$@"
+ echo "RCFLAGS:$(RCFLAGS)"
+ # Assume a capable shell
+ in=
+ out=
+
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ eat=1
+ func_file_conv "$2"
+ out="$file"
+ echo "OUTPUT:$file"
+ set x "$@"
+ shift
+ ;;
+ *.obj)
+ func_file_conv "$1"
+ out="$file"
+ echo "OUTPUT:$file"
+ set x "$@"
+ shift
+ ;;
+ --output-format=*)
+ set x "$@"
+ shift
+ ;;
+ -i)
+ eat=1
+ func_file_conv "$2" mingw
+ in="$file"
+ echo "INPUT:$file"
+ set x "$@"
+ shift
+ ;;
+ -*)
+ set x "$@" "${1//\\\"/\"}"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ echo "$@" -fo "$out" "$in"
+ exec "$@" -fo "$out" "$in"
+ exit 1
+}
+
+eat=
+
+func_windres_wrapper "$@"
+
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End: