summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD75
1 files changed, 49 insertions, 26 deletions
diff --git a/PKGBUILD b/PKGBUILD
index bb3467db116..158f5b4475f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
_reponame=reflective-rapidjson
pkgname=mingw-w64-reflective-rapidjson
_name=${pkgname#mingw-w64-}
-pkgver=0.0.8
+pkgver=0.0.9
pkgrel=1
arch=('any')
pkgdesc='Code generator for serializing/deserializing C++ objects to/from JSON using Clang and RapidJSON (mingw-w64)'
@@ -20,45 +20,68 @@ url="https://github.com/Martchus/${_reponame}"
source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('18b99bd820e033eba5aa8b40eca3d3c6fe06722eafe6ea79c298d8b5bc7f434a')
options=(!buildflags staticlibs !strip !emptydirs)
-_architectures='i686-w64-mingw32 x86_64-w64-mingw32'
-[[ $NO_STATIC_LIBS ]] || _configurations='-DENABLE_STATIC_LIBS:BOOL=ON'
-[[ $NO_SHARED_LIBS ]] && _configurations+=' -DDISABLE_SHARED_LIBS:BOOL=ON'
+
+_architectures=('i686-w64-mingw32' 'x86_64-w64-mingw32')
+_configurations=()
+[[ $NO_SHARED_LIBS ]] || _configurations+=('shared')
+[[ $NO_STATIC_LIBS ]] || _configurations+=('static')
build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
- for _arch in ${_architectures}; do
- mkdir -p "build-${_arch}" && pushd "build-${_arch}"
- # disable building the code generator since it is not useful for cross-compilation
- ${_arch}-cmake -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX="/usr/${_arch}" \
- -DNO_GENERATOR=ON \
- ${_configurations} \
- ../
- # workaround issue https://gitlab.kitware.com/cmake/cmake/issues/19095
- find -iname 'includes_CXX.rsp' -exec sed -i -e "s|-isystem /usr/$_arch/include ||" {} \;
+ declare -A _config_flags=(
+ [shared]='
+ -DBUILD_SHARED_LIBS:BOOL=ON
+ '
+ [static]='
+ -DBUILD_SHARED_LIBS:BOOL=OFF
+ -DCMAKE_FIND_LIBRARY_SUFFIXES:STRING=.a;.lib
+ -DSTATIC_LINKAGE:BOOL=ON
+ -DSTATIC_LIBRARY_LINKAGE:BOOL=ON
+ '
+ )
- make
- popd
+ for _arch in "${_architectures[@]}"; do
+ for _cfg in "${_configurations[@]}"; do
+ msg2 "${_arch}-${_cfg}"
+ mkdir -p "build-${_arch}-${_cfg}" && pushd "build-${_arch}-${_cfg}"
+ ${_arch}-cmake \
+ -DCMAKE_BUILD_TYPE:STRING='Release' \
+ -DCMAKE_INSTALL_PREFIX="/usr/${_arch}" \
+ -DCONFIGURATION_NAME:STRING="${_cfg}" \
+ -DCONFIGURATION_PACKAGE_SUFFIX:STRING="-${_cfg}" \
+ -DNO_GENERATOR:BOOL=ON \
+ -DENABLE_TARGETS_FOR_MINGW64_CROSS_PACKAGING:BOOL=ON \
+ ${_config_flags[$_cfg]} \
+ ../
+ make
+ popd
+ done
done
}
check() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
- for _arch in ${_architectures}; do
- mkdir -p "build-${_arch}" && pushd "build-${_arch}"
- export WINEPATH="/usr/${_arch}/bin"
- export WINEDEBUG=-all
- make check
- popd
+
+ for _arch in "${_architectures[@]}"; do
+ for _cfg in "${_configurations[@]}"; do
+ msg2 "${_arch}-${_cfg}"
+ pushd "build-${_arch}-${_cfg}"
+ make WINEPATH="/usr/${_arch}/bin" WINEDEBUG=-all check
+ popd
+ done
done
}
package() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
- for _arch in ${_architectures}; do
- mkdir -p "build-${_arch}" && pushd "build-${_arch}"
- make DESTDIR="${pkgdir}" install-mingw-w64-strip
- popd
+
+ for _arch in "${_architectures[@]}"; do
+ for _cfg in "${_configurations[@]}"; do
+ msg2 "${_arch}-${_cfg}"
+ pushd "build-${_arch}-${_cfg}"
+ make DESTDIR="${pkgdir}" install-mingw-w64-strip
+ popd
+ done
done
}