LIEF 0.11.5 - new package
This commit is contained in:
83
mingw-w64-python-lief/PKGBUILD
Normal file
83
mingw-w64-python-lief/PKGBUILD
Normal file
@@ -0,0 +1,83 @@
|
||||
# Maintainer: Marcelo Duarte https://github.com/marcelotduarte
|
||||
|
||||
_realname=lief
|
||||
pkgbase=mingw-w64-python-${_realname}
|
||||
pkgname=${MINGW_PACKAGE_PREFIX}-python-${_realname}
|
||||
pkgdesc="LIEF - Library to Instrument Executable Formats (mingw-w64)"
|
||||
pkgver=0.11.5
|
||||
pkgrel=1
|
||||
arch=('any')
|
||||
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
|
||||
url="https://github.com/lief-project/LIEF/"
|
||||
license=("Apache-2.0")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-python")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-ccache"
|
||||
"${MINGW_PACKAGE_PREFIX}-cmake"
|
||||
"${MINGW_PACKAGE_PREFIX}-ninja"
|
||||
"${MINGW_PACKAGE_PREFIX}-python"
|
||||
"${MINGW_PACKAGE_PREFIX}-python-setuptools")
|
||||
options=('staticlibs' '!strip' '!debug')
|
||||
source=(https://github.com/lief-project/LIEF/archive/${pkgver}.tar.gz
|
||||
lief.patch)
|
||||
sha256sums=('6d6d57304a56850958e4ce54f3da2ea2b9eb856ccbab61c6cde9cba15d7c9da5'
|
||||
'c3734f00930a3ad5942367eb69fe8b6db9652205eebe1936b8ca5596cd4ff926')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/LIEF-${pkgver}"
|
||||
patch -p1 -i "${srcdir}/lief.patch"
|
||||
${MINGW_PREFIX}/bin/python setup.py egg_info
|
||||
}
|
||||
|
||||
build() {
|
||||
echo "Building for Python - ${MSYSTEM}"
|
||||
cd "${srcdir}/LIEF-${pkgver}"
|
||||
[[ -d build-${MSYSTEM} ]] && rm -rf build-${MSYSTEM}
|
||||
mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM}
|
||||
|
||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX" \
|
||||
${MINGW_PREFIX}/bin/cmake.exe -LAH \
|
||||
-G"Ninja" \
|
||||
-DCMAKE_BUILD_TYPE="Release" \
|
||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||
-DLIEF_PYTHON_API=ON \
|
||||
-DLIEF_DISABLE_FROZEN=OFF \
|
||||
-DCMAKE_SKIP_RPATH=ON \
|
||||
-DLIEF_INSTALL_PYTHON=ON \
|
||||
-DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe \
|
||||
-DCMAKE_VERBOSE_MAKEFILE=ON \
|
||||
-DCMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS=OFF \
|
||||
-DCMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS=OFF \
|
||||
-DLIEF_ELF=off -DLIEF_MACHO=off -DLIEF_OAT=off -DLIEF_DEX=off -DLIEF_VDEX=off -DLIEF_ART=off \
|
||||
${_conf} \
|
||||
..
|
||||
#-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
#-DBUILD_STATIC_LIBS:BOOL=OFF
|
||||
|
||||
mkdir -p api/python/lief
|
||||
|
||||
MSYS2_ARG_CONV_EXCL="--include-paths=;--typesystem-paths=" \
|
||||
${MINGW_PREFIX}/bin/cmake.exe --build .
|
||||
|
||||
MSYS2_ARG_CONV_EXCL="--include-paths=;--typesystem-paths=" \
|
||||
${MINGW_PREFIX}/bin/cmake.exe --build . --target pyLIEF --config Release
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/LIEF-${pkgver}"
|
||||
DESTDIR=${pkgdir} ${MINGW_PREFIX}/bin/cmake.exe --install build-${MSYSTEM}
|
||||
|
||||
local _PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
|
||||
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/*.pc; do
|
||||
sed -s "s|${_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${_f}"
|
||||
done
|
||||
|
||||
# Install egg-info and .pyd
|
||||
_pythonpath=`${MINGW_PREFIX}/bin/python -c "from sysconfig import get_path; print(get_path('platlib'))"`
|
||||
_site_packages=${pkgdir}$(cygpath ${_pythonpath})
|
||||
mkdir -p $_site_packages
|
||||
cp -r ${_realname}.egg-info $_site_packages/${_realname}-${pkgver}
|
||||
cp build-${MSYSTEM}/api/python/lief.pyd $_site_packages/lief.pyd
|
||||
|
||||
install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
|
||||
44
mingw-w64-python-lief/lief.patch
Executable file
44
mingw-w64-python-lief/lief.patch
Executable file
@@ -0,0 +1,44 @@
|
||||
diff --git a/cmake/FindPythonLibsNew.cmake b/cmake/FindPythonLibsNew.cmake
|
||||
index 919a384..931d49e 100644
|
||||
--- a/cmake/FindPythonLibsNew.cmake
|
||||
+++ b/cmake/FindPythonLibsNew.cmake
|
||||
@@ -141,7 +141,7 @@ string(REGEX REPLACE "\\\\" "/" PYTHON_PREFIX ${PYTHON_PREFIX})
|
||||
string(REGEX REPLACE "\\\\" "/" PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIR})
|
||||
string(REGEX REPLACE "\\\\" "/" PYTHON_SITE_PACKAGES ${PYTHON_SITE_PACKAGES})
|
||||
|
||||
-if(CMAKE_HOST_WIN32)
|
||||
+if(CMAKE_HOST_WIN32 AND NOT (MSYS OR MINGW))
|
||||
set(PYTHON_LIBRARY
|
||||
"${PYTHON_PREFIX}/libs/Python${PYTHON_LIBRARY_SUFFIX}.lib")
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 79e91b6..1f32d2f 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -201,7 +201,7 @@ class BuildLibrary(build_ext):
|
||||
]
|
||||
|
||||
|
||||
- if platform.system() == "Windows":
|
||||
+ if platform.system() == "Windows" and not sysconfig.get_platform().startswith("mingw"):
|
||||
from setuptools import msvc
|
||||
|
||||
cmake_args += [
|
||||
@@ -241,7 +241,7 @@ class BuildLibrary(build_ext):
|
||||
if self.distribution.doc:
|
||||
targets['doc'] = "lief-doc"
|
||||
|
||||
- if platform.system() == "Windows":
|
||||
+ if platform.system() == "Windows" and not sysconfig.get_platform().startswith("mingw"):
|
||||
build_cmd = ['cmake', '--build', '.', '--target', "lief_samples"] + build_args
|
||||
#log.info(" ".join(build_cmd))
|
||||
|
||||
@@ -299,7 +299,7 @@ class BuildLibrary(build_ext):
|
||||
libsuffix = pylief_dst.split(".")[-1]
|
||||
|
||||
pylief_path = os.path.join(cmake_library_output_directory, "{}.{}".format(PACKAGE_NAME, libsuffix))
|
||||
- if platform.system() == "Windows":
|
||||
+ if platform.system() == "Windows" and not sysconfig.get_platform().startswith("mingw"):
|
||||
pylief_base = pathlib.Path(cmake_library_output_directory) / "Release" / "api" / "python"
|
||||
pylief_path = pylief_base / "Release" / "{}.{}".format(PACKAGE_NAME, libsuffix)
|
||||
if not pylief_path.is_file():
|
||||
Reference in New Issue
Block a user