mirror of
				https://github.com/zeromq/libzmq.git
				synced 2025-10-26 10:32:58 +01:00 
			
		
		
		
	 9393f06381
			
		
	
	9393f06381
	
	
	
		
			
			Solution: establish a matrix of CI options. On one axis we have the build system (autotools, cmake, android) and on the other axis we have the encryption options (tweetnacl, libsodium or none).
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Use directory of current script as the build directory and working directory
 | |
| cd "$( dirname "${BASH_SOURCE[0]}" )"
 | |
| ANDROID_BUILD_DIR="$(pwd)"
 | |
| 
 | |
| # Get access to android_build functions and variables
 | |
| source ${ANDROID_BUILD_DIR}/android_build_helper.sh
 | |
| 
 | |
| # Choose a C++ standard library implementation from the ndk
 | |
| ANDROID_BUILD_CXXSTL="gnustl_shared_48"
 | |
| 
 | |
| # Set up android build environment and set ANDROID_BUILD_OPTS array
 | |
| android_build_env
 | |
| android_build_opts
 | |
| 
 | |
| # Use a temporary build directory
 | |
| cache="/tmp/android_build/${TOOLCHAIN_NAME}"
 | |
| rm -rf "${cache}"
 | |
| mkdir -p "${cache}"
 | |
| 
 | |
| # Check for environment variable to clear the prefix and do a clean build
 | |
| if [[ $ANDROID_BUILD_CLEAN ]]; then
 | |
|     echo "Doing a clean build (removing previous build and depedencies)..."
 | |
|     rm -rf "${ANDROID_BUILD_PREFIX}"/*
 | |
| fi
 | |
| 
 | |
| if [ -z $CURVE ]; then
 | |
|     CURVE="--disable-curve"
 | |
|     VERIFY="libzmq.so"
 | |
| elif [ $CURVE == "libsodium" ]; then
 | |
|     CURVE="--with-libsodium=yes"
 | |
|     VERIFY="libzmq.so libsodium.so"
 | |
|     ##
 | |
|     # Build libsodium from latest master branch
 | |
| 
 | |
|     (android_build_verify_so "libsodium.so" &> /dev/null) || {
 | |
|         rm -rf "${cache}/libsodium"
 | |
|         (cd "${cache}" && git clone -b stable --depth 1 git://github.com/jedisct1/libsodium.git) || exit 1
 | |
|         (cd "${cache}/libsodium" && ./autogen.sh \
 | |
|             && ./configure --quiet "${ANDROID_BUILD_OPTS[@]}" --disable-soname-versions \
 | |
|             && make -j 4 \
 | |
|             && make install) || exit 1
 | |
|     }
 | |
| elif [ $CURVE == "tweetnacl" ]; then
 | |
|     # Default
 | |
|     CURVE=""
 | |
|     VERIFY="libzmq.so"
 | |
| fi
 | |
| 
 | |
| ##
 | |
| # Build libzmq from local source
 | |
| 
 | |
| LIBTOOL_EXTRA_LDFLAGS='-avoid-version'
 | |
| 
 | |
| (android_build_verify_so ${VERIFY} &> /dev/null) || {
 | |
|     rm -rf "${cache}/libzmq"
 | |
|     (cp -r ../.. "${cache}/libzmq" && cd "${cache}/libzmq" && make clean)
 | |
|     
 | |
|     (cd "${cache}/libzmq" && ./autogen.sh \
 | |
|         && ./configure --quiet "${ANDROID_BUILD_OPTS[@]}" ${CURVE} --without-docs \
 | |
|         && make -j 4 \
 | |
|         && make install) || exit 1
 | |
| }
 | |
| 
 | |
| ##
 | |
| # Verify shared libraries in prefix
 | |
| 
 | |
| android_build_verify_so ${VERIFY}
 | |
| echo "libzmq android build succeeded"
 |