mirror of
https://github.com/partic2/libffi
synced 2026-11-09 17:47:19 +00:00
Merge pull request #123 from ehsan/clang-cl
Add support for building with clang-cl
This commit is contained in:
@@ -146,12 +146,17 @@ It's also possible to build libffi on Windows platforms with
|
||||
Microsoft's Visual C++ compiler. In this case, use the msvcc.sh
|
||||
wrapper script during configuration like so:
|
||||
|
||||
path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\"
|
||||
path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP="cl -nologo -EP"
|
||||
|
||||
For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64" and
|
||||
CXX="path/to/msvcc.sh -m64". You may also need to specify --build
|
||||
appropriately.
|
||||
|
||||
It is also possible to build libffi on Windows platforms with the LLVM
|
||||
project's clang-cl compiler, like below:
|
||||
|
||||
path/to/configure CC="path/to/msvcc.sh -clang-cl" CXX="path/to/msvcc.sh -clang-cl" LD=link CPP="clang-cl -EP"
|
||||
|
||||
When building with MSVC under a MingW environment, you may need to
|
||||
remove the line in configure that sets 'fix_srcfile_path' to a 'cygpath'
|
||||
command. ('cygpath' is not present in MingW, and is not required when
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@ extern "C" {
|
||||
|
||||
#ifndef LIBFFI_ASM
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if defined(_MSC_VER) && !defined(__clang__)
|
||||
#define __attribute__(X)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
|
||||
args_orig=$@
|
||||
args="-nologo -W3"
|
||||
md=-MD
|
||||
static_crt=
|
||||
debug_crt=
|
||||
cl="cl"
|
||||
ml="ml"
|
||||
safeseh="-safeseh"
|
||||
@@ -63,11 +64,15 @@ do
|
||||
shift 1
|
||||
;;
|
||||
-m64)
|
||||
cl="cl" # "$MSVC/x86_amd64/cl"
|
||||
ml="ml64" # "$MSVC/x86_amd64/ml64"
|
||||
safeseh=
|
||||
shift 1
|
||||
;;
|
||||
-clang-cl)
|
||||
cl="clang-cl"
|
||||
safeseh=
|
||||
shift 1
|
||||
;;
|
||||
-O0)
|
||||
args="$args -Od"
|
||||
shift 1
|
||||
@@ -110,9 +115,14 @@ do
|
||||
defines="$defines $1"
|
||||
shift 1
|
||||
;;
|
||||
-DUSE_STATIC_RTL)
|
||||
# Link against static CRT.
|
||||
static_crt=1
|
||||
shift 1
|
||||
;;
|
||||
-DUSE_DEBUG_RTL)
|
||||
# Link against debug CRT.
|
||||
md=-MDd
|
||||
debug_crt=1
|
||||
shift 1
|
||||
;;
|
||||
-c)
|
||||
@@ -207,6 +217,16 @@ if [ -n "$opt" ]; then
|
||||
args="$args -link -OPT:REF -OPT:ICF -INCREMENTAL:NO"
|
||||
fi
|
||||
|
||||
if [ -n "$static_crt" ]; then
|
||||
md=-MT
|
||||
else
|
||||
md=-MD
|
||||
fi
|
||||
|
||||
if [ -n "$debug_crt" ]; then
|
||||
md="${md}d"
|
||||
fi
|
||||
|
||||
if [ -n "$assembly" ]; then
|
||||
if [ -z "$outdir" ]; then
|
||||
outdir="."
|
||||
|
||||
Reference in New Issue
Block a user