~alpine/devel

newapkbuild: add CMake support. v1 PROPOSED

Isaac Dunham: 1
 newapkbuild: add CMake support.

 1 files changed, 32 insertions(+), 0 deletions(-)
Please use alpine-aports for patches. They will be visible in
patchwork.alpinelinux.org and not forgotten.
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.alpinelinux.org/~alpine/devel/patches/954/mbox | git am -3
Learn more about email & git

[alpine-devel] [PATCH] newapkbuild: add CMake support. Export this patch

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.
---
 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.4


---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---