aboutsummaryrefslogtreecommitdiff
path: root/cmake/remove-ordinals.cmake
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2023-09-27 22:46:20 +0300
committerJia Tan <jiat0218@gmail.com>2023-10-31 18:44:59 +0800
commit661549ecb7a9b136d72a01c137d9776c75d52d51 (patch)
treebedf6138347e66d510a91638dc2454a29ca67a42 /cmake/remove-ordinals.cmake
parentCMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR. (diff)
downloadxz-661549ecb7a9b136d72a01c137d9776c75d52d51.tar.xz
CMake: Create liblzma.def when building liblzma.dll with MinGW-w64.
Diffstat (limited to 'cmake/remove-ordinals.cmake')
-rw-r--r--cmake/remove-ordinals.cmake26
1 files changed, 26 insertions, 0 deletions
diff --git a/cmake/remove-ordinals.cmake b/cmake/remove-ordinals.cmake
new file mode 100644
index 00000000..96419d52
--- /dev/null
+++ b/cmake/remove-ordinals.cmake
@@ -0,0 +1,26 @@
+#############################################################################
+#
+# remove-ordinals.cmake
+#
+# Removes the ordinal numbers from a DEF file that has been created by
+# GNU ld or LLVM lld option --output-def (when creating a Windows DLL).
+# This should be equivalent: sed 's/ \+@ *[0-9]\+//'
+#
+# Usage:
+#
+# cmake -DINPUT_FILE=infile.def.in \
+# -DOUTPUT_FILE=outfile.def \
+# -P remove-ordinals.cmake
+#
+#############################################################################
+#
+# Author: Lasse Collin
+#
+# This file has been put into the public domain.
+# You can do whatever you want with this file.
+#
+#############################################################################
+
+file(READ "${INPUT_FILE}" STR)
+string(REGEX REPLACE " +@ *[0-9]+" "" STR "${STR}")
+file(WRITE "${OUTPUT_FILE}" "${STR}")