Mail archive
alpine-devel

[alpine-devel] Re: [PATCH] newapkbuild: add CMake support.

From: Isaac Dunham <ibid.ag_at_gmail.com>
Date: Fri, 8 May 2015 15:26:36 -0700

On Tue, Mar 31, 2015 at 07:30:04PM -0700, Isaac Dunham wrote:
> 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.

Ping.

While I can't test cross-compiling, I can tell that the cmake APKBUILDs
that are in common use are far short of what we need for cross-compiling.

Thanks,
Isaac Dunham

> ---
> 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
> _at_@ -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
> _at_@ -224,6 +252,8 @@ __EOF__
> case "$buildtype" in
> make)
> build_make;;
> + cmake)
> + build_cmake;;
> autotools)
> build_autotools;;
> perl)
> _at_@ -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
> _at_@ -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_at_lists.alpinelinux.org
Help:         alpine-devel+help_at_lists.alpinelinux.org
---
Received on Fri May 08 2015 - 15:26:36 UTC