diff options
author | Isaac Dunham <ibid.ag@gmail.com> | 2015-03-31 19:30:04 -0700 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2015-05-27 07:03:35 +0000 |
commit | 582b47781794e8057c0b01c40719c31fa8aa5c1b (patch) | |
tree | 96448067895918c4e62e39d98a26ad085f61d023 /newapkbuild.in | |
parent | 5aa41e9fb220b0114462fbfdfe965e1bd95b4b03 (diff) | |
download | abuild-582b47781794e8057c0b01c40719c31fa8aa5c1b.tar.gz abuild-582b47781794e8057c0b01c40719c31fa8aa5c1b.tar.bz2 abuild-582b47781794e8057c0b01c40719c31fa8aa5c1b.tar.xz abuild-582b47781794e8057c0b01c40719c31fa8aa5c1b.zip |
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.
Diffstat (limited to 'newapkbuild.in')
-rw-r--r-- | newapkbuild.in | 32 |
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;; |