X-Original-To: alpine-aports@mail.alpinelinux.org Delivered-To: alpine-aports@mail.alpinelinux.org Received: from mail.alpinelinux.org (dallas-a1.alpinelinux.org [127.0.0.1]) by mail.alpinelinux.org (Postfix) with ESMTP id 0BE36DC0C58 for ; Sat, 9 May 2015 21:21:52 +0000 (UTC) Received: from mail-pd0-f178.google.com (mail-pd0-f178.google.com [209.85.192.178]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id C972EDC00F4 for ; Sat, 9 May 2015 21:21:46 +0000 (UTC) Received: by pdea3 with SMTP id a3so117023835pde.3 for ; Sat, 09 May 2015 14:21:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=OW59iYGNTPhEwTZ9fr038sV7VlTwNhYWCgEsislaPLY=; b=dIOkHaqljhuLEQY8cAREcTREJObEnSEV/7pkEh5Y/6TEBTCPyOn46TJg6q9fv0aJeK UUPpemeks7YGIgzVEmyuLwiJ1IGS/zcAsOWsYHKdnOnqkS7HVW9z6ZN9K8NPFv3zybR1 WSjh7pTuyigYE5q+0oF46K+JSMovmtT/wBXyto3xXCbkE1x7bIyWjkRGimVNwLMjVe7g YmOvwWGBzOTSA3MtQDUw8d5zULUSrG4gLuu+CZqA5HR5W1VBMrPpA/lq9U+MdDWToEw5 dpNZW91fMCffcI90RxCtUrsRU/j1mXI+b5w0z7h+v+jj40KjGjLfYPkm1JN3FxptRKKN 69rg== X-Received: by 10.66.141.77 with SMTP id rm13mr7249881pab.14.1431206505559; Sat, 09 May 2015 14:21:45 -0700 (PDT) Received: from localhost.localdomain ([50.0.225.244]) by mx.google.com with ESMTPSA id lc14sm8833547pab.33.2015.05.09.14.21.44 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 09 May 2015 14:21:44 -0700 (PDT) From: Isaac Dunham To: alpine-aports@lists.alpinelinux.org Cc: Isaac Dunham Subject: [alpine-aports] [PATCH] [abuild] newapkbuild: add CMake support. Date: Sat, 9 May 2015 14:21:46 -0700 Message-Id: <1431206506-10508-1-git-send-email-ibid.ag@gmail.com> X-Mailer: git-send-email 2.3.7 X-Virus-Scanned: ClamAV using ClamSMTP X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: 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. Despite the lack of testing, it's a lot closer to what we need than most of the APKBUILDs in aports. --- newapkbuild.in | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) 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;; -- 2.3.7 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---