summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSR_team2021-11-30 00:05:48 +0300
committerSR_team2021-11-30 00:05:48 +0300
commit8237bce3209067134e63e00d5f16309135abed8c (patch)
tree849ca3e8c2ffb9d1e5fffdc67a69fafc8c61e7be
downloadaur-8237bce3209067134e63e00d5f16309135abed8c.tar.gz
Initial commit
-rw-r--r--.SRCINFO33
-rw-r--r--PKGBUILD59
-rw-r--r--msvc-cmake.sh6
-rw-r--r--toolchain-msvc.cmake22
4 files changed, 120 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..784475588cfc
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,33 @@
+pkgbase = msvc-wine-git
+ pkgdesc = MSVC compiler with CMake toolchains. Compiler work in Wine64
+ pkgver = 16.11.7
+ pkgrel = 1
+ url = https://github.com/mstorsjo/msvc-wine
+ arch = x86_64
+ license = EULA
+ makedepends = git
+ makedepends = sed
+ makedepends = python
+ makedepends = python-simplejson
+ makedepends = python-six
+ makedepends = msitools
+ depends = wine
+ depends = cmake
+ provides = msvc-x86-cmake
+ provides = msvc-x64-cmake
+ provides = msvc-arm-cmake
+ provides = msvc-arm64-cmake
+ conflicts = msvc-wine
+ conflicts = msvc-wine-git
+ options = !strip
+ options = libtool
+ options = staticlibs
+ options = emptydirs
+ source = git+https://github.com/mstorsjo/msvc-wine.git
+ source = msvc-cmake.sh
+ source = toolchain-msvc.cmake
+ sha256sums = SKIP
+ sha256sums = 8629fdbc948fa42640ac93388316b776e9c51e9cd5ff05be9506e96547b98e59
+ sha256sums = 52efc3ad1f5575f35cf9319ade41a23ace667156bdc5f66e4e32527bc8b64c5d
+
+pkgname = msvc-wine-git
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..83d70dce7524
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,59 @@
+pkgname=msvc-wine-git
+pkgver=16.11.7
+pkgrel=1
+pkgdesc='MSVC compiler with CMake toolchains. Compiler work in Wine64'
+arch=('x86_64')
+url='https://github.com/mstorsjo/msvc-wine'
+license=(EULA)
+depends=(wine cmake)
+makedepends=(git sed python python-simplejson python-six msitools)
+provides=(msvc-x86-cmake msvc-x64-cmake msvc-arm-cmake msvc-arm64-cmake)
+conflicts=(msvc-wine msvc-wine-git)
+source=('git+https://github.com/mstorsjo/msvc-wine.git'
+ 'msvc-cmake.sh'
+ 'toolchain-msvc.cmake')
+sha256sums=('SKIP'
+ '8629fdbc948fa42640ac93388316b776e9c51e9cd5ff05be9506e96547b98e59'
+ '52efc3ad1f5575f35cf9319ade41a23ace667156bdc5f66e4e32527bc8b64c5d')
+options=('!strip' 'libtool' 'staticlibs' 'emptydirs')
+
+_architectures="x86 x64 arm arm64"
+
+pkgver() {
+ VS_VERSION=`python msvc-wine/vsdownload.py --print-version | grep "Loaded installer manifest for "`
+ echo -n ${VS_VERSION:30}
+}
+
+prepare() {
+ for _arch in ${_architectures}; do
+ sed "s|@PROCESSOR@|${_arch}|g" toolchain-msvc.cmake > toolchain-${_arch}.cmake
+ sed "s|@PROCESSOR@|${_arch}|g" msvc-cmake.sh > msvc-${_arch}-cmake
+ done
+}
+
+build() {
+ cd msvc-wine
+ mkdir -p "${srcdir}/../cache"
+ python vsdownload.py --accept-license --dest "${srcdir}/msvc" --cache "${srcdir}/../cache"
+ sh install.sh "${srcdir}/msvc"
+ cd -
+}
+
+package() {
+ for _arch in ${_architectures}; do
+ cat "${srcdir}/msvc/bin/${_arch}/msvcenv.sh" | sed 's/BASE=.*/BASE='z:\\\\\\\\opt\\\\\\\\msvc/ > "${srcdir}/msvc/bin/${_arch}/msvcenv.sh.patched"
+ cat "${srcdir}/msvc/bin/${_arch}/msvcenv.sh.patched" | sed 's/BASE_UNIX=.*/BASE_UNIX='\\/opt\\/msvc/ > "${srcdir}/msvc/bin/${_arch}/msvcenv.sh"
+ rm "${srcdir}/msvc/bin/${_arch}/msvcenv.sh.patched"
+ done
+
+ mkdir -p "${pkgdir}/opt/msvc"
+ mv "${srcdir}/msvc" "${pkgdir}/opt/msvc"
+
+ mkdir -p "${pkgdir}/usr/bin"
+
+ for _arch in ${_architectures}; do
+ mkdir -p "${pkgdir}/opt/msvc/cmake/find_root/${_arch}"
+ mv "${srcdir}/toolchain-${_arch}.cmake" "${pkgdir}/opt/msvc/cmake/toolchain-${_arch}.cmake"
+ mv "${srcdir}/msvc-${_arch}-cmake" "${pkgdir}/usr/bin/msvc-${_arch}-cmake"
+ done
+}
diff --git a/msvc-cmake.sh b/msvc-cmake.sh
new file mode 100644
index 000000000000..32b607eeac34
--- /dev/null
+++ b/msvc-cmake.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+cmake \
+ -DCMAKE_TOOLCHAIN_FILE=/opt/msvc/cmake/toolchain-@PROCESSOR@.cmake \
+ -DCMAKE_CROSSCOMPILING_EMULATOR=/usr/bin/wine \
+ "$@"
diff --git a/toolchain-msvc.cmake b/toolchain-msvc.cmake
new file mode 100644
index 000000000000..480abf17d825
--- /dev/null
+++ b/toolchain-msvc.cmake
@@ -0,0 +1,22 @@
+set (CMAKE_SYSTEM_NAME Windows)
+
+# specify the cross compiler
+set (CMAKE_C_COMPILER /opt/msvc/bin/@PROCESSOR@/cl)
+set (CMAKE_CXX_COMPILER /opt/msvc/bin/@PROCESSOR@/cl)
+
+# where is the target environment
+set (CMAKE_FIND_ROOT_PATH /opt/msvc/cmake/find_root/@PROCESSOR@)
+
+# search for programs in the build host directories
+set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+# for libraries and headers in the target directories
+set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+# set the resource compiler
+set (CMAKE_RC_COMPILER /opt/msvc/bin/@PROCESSOR@/rc)
+
+# skip c/cxx compiler checks
+set (CMAKE_C_COMPILER_WORKS 1)
+set (CMAKE_CXX_COMPILER_WORKS 1)