summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsaac Dunham <ibid.ag@gmail.com>2015-03-31 19:30:04 -0700
committerNatanael Copa <ncopa@alpinelinux.org>2015-05-27 07:03:35 +0000
commit582b47781794e8057c0b01c40719c31fa8aa5c1b (patch)
tree96448067895918c4e62e39d98a26ad085f61d023
parent5aa41e9fb220b0114462fbfdfe965e1bd95b4b03 (diff)
downloadabuild-582b47781794e8057c0b01c40719c31fa8aa5c1b.tar.bz2
abuild-582b47781794e8057c0b01c40719c31fa8aa5c1b.tar.xz
newapkbuild: add CMake support.
This is a first try that *might* work for cross-compiling packages with an absolute bare minimum of requirements, if you're lucky. I can't debug that part further, but the references should help with it.
-rw-r--r--newapkbuild.in32
1 files changed, 32 insertions, 0 deletions
diff --git a/newapkbuild.in b/newapkbuild.in
index 952980f..d2951e4 100644
--- a/newapkbuild.in
+++ b/newapkbuild.in
@@ -52,6 +52,34 @@ build_autotools() {
__EOF__
}
+build_cmake() {
+# References:
+# http://www.cmake.org/Wiki/CMake_Useful_Variables
+# http://www.vtk.org/Wiki/CMake_Cross_Compiling
+# This is incomplete: CMAKE_{HOST_,}SYSTEM_PROCESSOR needs to be set,
+# and likewise CMAKE_FIND_ROOT_PATH and a few other details.
+
+ sed -i -e 's/^\(makedepends="\)/\1cmake /' APKBUILD
+ cat >>APKBUILD<<__EOF__
+ if [ "$CBUILD" != "$CHOST" ]
+ then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake \\
+ -DCMAKE_INSTALL_PREFIX=/usr \\
+ -DCMAKE_INSTALL_LIBDIR=lib \\
+ -DBUILD_SHARED_LIBS=True \\
+ -DCMAKE_BUILD_TYPE=Release \\
+ -DCMAKE_CXX_COMPILER="\${CXX:-g++}" \\
+ -DCMAKE_C_COMPILER="\${CC:-gcc}" \\
+ -DCMAKE_CXX_FLAGS="\$CXXFLAGS" \\
+ -DCMAKE_CXX_FLAGS="\$CFLAGS" \\
+ ${CMAKE_CROSSOPTS} \\
+ || return 1
+ make || return 1
+__EOF__
+}
+
build_perl() {
cat >>APKBUILD<<__EOF__
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
@@ -224,6 +252,8 @@ __EOF__
case "$buildtype" in
make)
build_make;;
+ cmake)
+ build_cmake;;
autotools)
build_autotools;;
perl)
@@ -281,6 +311,7 @@ Options:
-l Set package license to LICENSE
-u Set package URL
-a Create autotools (use ./configure ...)
+ -C Create CMake pakckage (Assume cmake/ is there)
-p Create perl package (Assume Makefile.PL is there)
-y Create python package (Assume setup.py is there)
-s Use sourceforge source URL
@@ -295,6 +326,7 @@ while getopts "acd:fhl:n:pyu:s" opt; do
case $opt in
'a') buildtype="autotools";;
'c') cpinitd=1;;
+ 'C') buildtype="cmake";;
'd') pkgdesc="$OPTARG";;
'f') force=1;;
'h') usage; exit;;