summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeo <thinkabit.ukim@gmail.com>2020-01-17 23:41:46 +0100
committerSören Tempel <soeren+git@soeren-tempel.net>2020-02-16 19:05:42 +0100
commite125a764896d884c69cc409e614b65cb336c15e8 (patch)
tree3acfee24bd9075880670dbc504c4190475c68464
parentd0828c06557773f252b645618500699a941bd091 (diff)
downloadabuild-e125a764896d884c69cc409e614b65cb336c15e8.tar.bz2
abuild-e125a764896d884c69cc409e614b65cb336c15e8.tar.xz
newapkbuild: do out-of-source CMake builds by default
It is recommended by upstream CMake (it will warn when you do in-source builds) to keep generated files away from the source.
-rw-r--r--newapkbuild.in24
1 files changed, 20 insertions, 4 deletions
diff --git a/newapkbuild.in b/newapkbuild.in
index 5816578..26724f5 100644
--- a/newapkbuild.in
+++ b/newapkbuild.in
@@ -61,7 +61,7 @@ build_cmake() {
if [ "\$CBUILD" != "\$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
- cmake \\
+ cmake -B build \\
-DCMAKE_INSTALL_PREFIX=/usr \\
-DCMAKE_INSTALL_LIBDIR=lib \\
-DBUILD_SHARED_LIBS=True \\
@@ -69,7 +69,7 @@ build_cmake() {
-DCMAKE_CXX_FLAGS="\$CXXFLAGS" \\
-DCMAKE_C_FLAGS="\$CFLAGS" \\
\${CMAKE_CROSSOPTS} .
- make
+ make -C build
__EOF__
}
@@ -124,6 +124,12 @@ check_make() {
__EOF__
}
+check_cmake() {
+ cat >>APKBUILD<<__EOF__
+ CTEST_OUTPUT_ON_FAILURE=1 make -C build check
+__EOF__
+}
+
check_python() {
cat >>APKBUILD<<__EOF__
python3 setup.py test
@@ -156,6 +162,12 @@ package_make() {
__EOF__
}
+package_cmake() {
+ cat >>APKBUILD<<__EOF__
+ make -C build DESTDIR="\$pkgdir" install
+__EOF__
+}
+
package_autotools() {
package_make
}
@@ -348,8 +360,10 @@ check() {
__EOF__
case "$buildtype" in
- make|cmake|autotools|perl)
+ make|autotools|perl)
check_make;;
+ cmake)
+ check_cmake;;
python)
check_python;;
rust)
@@ -369,8 +383,10 @@ package() {
__EOF__
case "$buildtype" in
- make|cmake)
+ make)
package_make;;
+ cmake)
+ package_cmake;;
autotools)
package_autotools;;
meson)