clang: Generate proper names for import/static libraries.

This commit is contained in:
Alexey Pavlov
2015-12-25 14:32:12 +03:00
parent 9938a2ffb9
commit 084e986bc5
3 changed files with 42 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
--- a/cmake/modules/AddLLVM.cmake 2015-12-25 11:45:24.447038200 +0300
+++ b/cmake/modules/AddLLVM.cmake 2015-12-25 12:14:26.848945700 +0300
@@ -399,10 +399,15 @@
llvm_update_compile_flags(${name})
add_link_opts( ${name} )
if(ARG_OUTPUT_NAME)
- set_target_properties(${name}
- PROPERTIES
- OUTPUT_NAME ${ARG_OUTPUT_NAME}
- )
+ if(MINGW)
+ string(REGEX REPLACE "^lib([A-Za-z]+)" "\\1" LIB_OUTPUT_NAME ${ARG_OUTPUT_NAME})
+ set_target_properties(${name} PROPERTIES OUTPUT_NAME ${LIB_OUTPUT_NAME} RUNTIME_OUTPUT_NAME ${ARG_OUTPUT_NAME} ARCHIVE_OUTPUT_NAME ${LIB_OUTPUT_NAME})
+ else()
+ set_target_properties(${name}
+ PROPERTIES
+ OUTPUT_NAME ${ARG_OUTPUT_NAME}
+ )
+ endif()
endif()
if(ARG_MODULE)

View File

@@ -0,0 +1,11 @@
--- cfe-3.7.0.src/tools/libclang/CMakeLists.txt.orig 2015-12-25 10:56:22.521432100 +0300
+++ cfe-3.7.0.src/tools/libclang/CMakeLists.txt 2015-12-25 12:18:32.484593900 +0300
@@ -74,7 +74,7 @@
set(ENABLE_SHARED SHARED)
endif()
-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32)
+if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND (NOT WIN32 OR MINGW))
set(ENABLE_STATIC STATIC)
endif()

View File

@@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-llvm"
)
pkgver=3.7.0
pkgrel=8
pkgrel=9
pkgdesc="LC language family frontend for LLVM (mingw-w64)"
arch=('any')
url="http://llvm.org"
@@ -37,12 +37,14 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig}
http://llvm.org/releases/${pkgver}/lld-${pkgver}.src.tar.xz{,.sig}
0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch
0002-use-DESTDIR-on-windows.patch
0003-generate-proper-library-names-mingw.patch
0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch
0013-mingw-w64-dont-have-dl-library.patch
0014-use-DESTDIR-on-windows.patch
0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch
0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch
0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch
0018-mingw-enable-static-libclang.patch
0031-COFF-add-the-mingw-alias-for-ImageBase.patch
0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch
0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch
@@ -75,12 +77,14 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153'
'SKIP'
'0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d'
'bf22d86c0546b80cd7212b7e7c3e1b628f00ab3aa3b9cf73ad338bf628f42597'
'6a95ed671876a6de04799d15bf7485d628016bb4a95a6764217ad452d8eed0d8'
'13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de'
'8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af'
'962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7'
'f7bc109b07b5256a068dbe55097c24b46307aea442bec884d8ba455dc3ad18fd'
'59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a'
'47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96'
'0e45e76ee6d6658de52edb7b508a8bcc9f10ff0b295ff2a4e35577136a40c6a5'
'421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7'
'96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87'
'08260b1ee54fad7e0015d66b117937701d2ce4ca1814b012250de03a0dae9317'
@@ -102,6 +106,7 @@ prepare() {
cd "${srcdir}/llvm-${pkgver}.src"
patch -p1 -i ${srcdir}/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch
patch -p1 -i ${srcdir}/0002-use-DESTDIR-on-windows.patch
patch -p1 -i ${srcdir}/0003-generate-proper-library-names-mingw.patch
cd "${srcdir}/cfe-${pkgver}.src"
patch -p1 -i ${srcdir}/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch
@@ -110,6 +115,7 @@ prepare() {
patch -p1 -i ${srcdir}/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch
patch -p1 -i ${srcdir}/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch
patch -p1 -i ${srcdir}/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch
patch -p1 -i ${srcdir}/0018-mingw-enable-static-libclang.patch
cd "${srcdir}/lld-${pkgver}.src"
# patch -p1 -i "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch
@@ -195,6 +201,7 @@ build() {
-DLLVM_ENABLE_FFI=ON \
-DLLVM_ENABLE_SPHINX=ON \
-DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -D_LIBCPP_HAS_NO_CONSTEXPR" \
-DLIBCLANG_BUILD_STATIC=ON \
-DLIBCXX_ENABLE_SHARED=OFF \
-DLIBCXXABI_ENABLE_SHARED=OFF \
../llvm-${pkgver}.src
@@ -219,6 +226,7 @@ package_clang(){
cd build-${CARCH}/tools/clang
make -j1 DESTDIR="$pkgdir" rebuild_cache install
cp -f lib/libclang.a ${pkgdir}$MINGW_PREFIX}/lib/
# .. Unmove
cd "${srcdir}"