From 99aee53172c6409b76f605753dd5a72d0cb4042b Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Wed, 17 Nov 2021 09:39:46 +0100 Subject: [PATCH] fix: restore macOS compile flags --- script/prepare-llvm-linux.sh | 1 + script/prepare-llvm-macos.sh | 1 + script/prepare-llvm-mingw.sh | 1 + src/CMakeLists.txt | 6 ++++++ 4 files changed, 9 insertions(+) diff --git a/script/prepare-llvm-linux.sh b/script/prepare-llvm-linux.sh index 9e5b4f364f..236b6a8997 100755 --- a/script/prepare-llvm-linux.sh +++ b/script/prepare-llvm-linux.sh @@ -31,6 +31,7 @@ $CP llvm/lib/lib{c++,c++abi,unwind}.* $GMP/lib/libgmp.a stage1/lib/ $CP $GLIBC/lib/libc_nonshared.a stage1/lib/glibc for f in $GLIBC/lib/lib{c,dl,m,rt,pthread}-*; do b=$(basename $f); cp $f stage1/lib/glibc/${b%-*}.so; done OPTIONS=() +echo -n " -DLEAN_STANDALONE=ON" echo -n " -DCMAKE_C_COMPILER=$PWD/stage1/bin/clang -DCMAKE_CXX_COMPILER=$PWD/llvm/bin/clang++ -DLEAN_CXX_STDLIB='-Wl,-Bstatic -lc++ -lc++abi -Wl,-Bdynamic'" # allow C++ code to include /usr since it needs quite a few more headers echo -n " -DLEAN_EXTRA_CXX_FLAGS='--sysroot $PWD/llvm -I/usr/include -I/usr/include/x86_64-linux-gnu'" diff --git a/script/prepare-llvm-macos.sh b/script/prepare-llvm-macos.sh index e1a4a312fb..f539772b8d 100755 --- a/script/prepare-llvm-macos.sh +++ b/script/prepare-llvm-macos.sh @@ -28,6 +28,7 @@ gcp ${GMP:-/usr/local/opt/gmp}/lib/libgmp.a stage1/lib/ cp $SDK/usr/lib/libSystem.tbd stage1/lib/libc # use for linking, use system libs for running gcp llvm/lib/lib{c++,c++abi,unwind}.dylib stage1/lib/libc +echo -n " -DLEAN_STANDALONE=ON" echo -n " -DCMAKE_C_COMPILER=$PWD/stage1/bin/clang -DCMAKE_CXX_COMPILER=$PWD/llvm/bin/clang++" # allow C++ code to include /usr since it needs quite a few more headers # need no-macro-redefined for weird clang stdint.h diff --git a/script/prepare-llvm-mingw.sh b/script/prepare-llvm-mingw.sh index 4c6f85aa65..8578f75d42 100644 --- a/script/prepare-llvm-mingw.sh +++ b/script/prepare-llvm-mingw.sh @@ -30,6 +30,7 @@ cp /clang64/x86_64-w64-mingw32/lib/{crtbegin,crtend,crt2,dllcrt2}.o stage1/lib/ (cd llvm; cp --parents lib/clang/*/lib/*/libclang_rt.builtins* ../stage1) # further dependencies cp /clang64/x86_64-w64-mingw32/lib/lib{m,bcrypt,mingw32,moldname,mingwex,msvcrt,pthread,advapi32,shell32,user32,kernel32,ucrtbase}.* /clang64/lib/libgmp.a llvm/lib/lib{c++,c++abi,unwind}.a stage1/lib/ +echo -n " -DLEAN_STANDALONE=ON" echo -n " -DCMAKE_C_COMPILER=$PWD/stage1/bin/clang.exe -DCMAKE_CXX_COMPILER=$PWD/llvm/bin/clang++.exe -DLEAN_CXX_STDLIB='-lc++ -lc++abi'" echo -n " -DSTAGE0_CMAKE_C_COMPILER=clang -DSTAGE0_CMAKE_CXX_COMPILER=clang++" # allow C++ code to include /usr since it needs quite a few more headers diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 03d36daca0..e935206f8a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -399,6 +399,12 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE) # These are used in lean.mk (and libleanrt) and passed through by stdlib.make # They are not embedded into `leanc` since they are build profile/machine specific set(LEANC_OPTS "${LEANC_OPTS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}") +if(CMAKE_OSX_SYSROOT AND NOT LEAN_STANDALONE) + string(APPEND LEANC_OPTS " ${CMAKE_CXX_SYSROOT_FLAG}${CMAKE_OSX_SYSROOT}") +endif() +if(CMAKE_OSX_DEPLOYMENT_TARGET) + string(APPEND LEANC_OPTS " ${CMAKE_CXX_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") +endif() if(${STAGE} GREATER 1) # reuse C++ parts, which don't change