mirror of
https://github.com/opencv/opencv.git
synced 2024-12-18 19:38:02 +08:00
b2dd128ec5
This commit introduces a POM.xml file to allow the build of OpenCV and Java bundles using Maven. An additonal directory has been created 'platforms/maven' to contain the POM and scripts used during the build process. An additional Markdown file is included to give instructions on how to build with Maven.
91 lines
2.9 KiB
Bash
Executable File
91 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#####################################################################
|
|
# This script extracts several properties and then writes them to a
|
|
# to a file, 'build.properties'. These properties include:
|
|
#
|
|
# 1. OpenCV version.
|
|
# 2. OpenVC version as a string for use by Maven.
|
|
# 3. The CPU binary word size.
|
|
# 4. Architecture string.
|
|
# 4. OSGi compatible CPU architecture string.
|
|
#
|
|
# There is no need to execute this script directly as it will be
|
|
# called during the Maven build process.
|
|
#
|
|
# Command-line parameters:
|
|
# $1 - Absolute path to the file containing Open CV version
|
|
# $2 - The build directory and where the output file will be written
|
|
# $3 - The name of the output file to write to.
|
|
#
|
|
# Returns:
|
|
# 0 - Successfully written the properties file.
|
|
# 1 - Error occured such as build directory does not exist
|
|
# or OpenCV version could not be determined or an
|
|
# unexpected error.
|
|
#
|
|
# Kerry Billingham <contact (at) avionicengineers (d0t) com>
|
|
# 20 April 2016
|
|
#
|
|
#####################################################################
|
|
|
|
majorHashDefine="#define CV_VERSION_MAJOR"
|
|
minorHashDefine="#define CV_VERSION_MINOR"
|
|
revisionHashDefine="#define CV_VERSION_REVISION"
|
|
statusHashDefine="#define CV_VERSION_STATUS"
|
|
|
|
#Test build directory exists
|
|
if [ ! -n "$2" ] || [ ! -d $2 ];then
|
|
echo "Build directory not specified or does not exist!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -n "$1" ] && [ -e $1 ];then
|
|
minorVersion=$(grep "${minorHashDefine}" $1 | grep -o ".$")
|
|
majorVersion=$(grep "${majorHashDefine}" $1 | grep -o ".$")
|
|
revision=$(grep "${revisionHashDefine}" $1 | grep -o ".$")
|
|
|
|
bits=$(getconf LONG_BIT)
|
|
architecture=$(arch)
|
|
osgiProcessor="Not Set"
|
|
|
|
case ${architecture} in
|
|
x86*)
|
|
echo "This is x86 (32 | 64) bit"
|
|
case ${bits} in
|
|
32)
|
|
osgiProcessor="x86"
|
|
;;
|
|
64)
|
|
osgiProcessor="x86_64"
|
|
;;
|
|
*)
|
|
osgiProcessor="Unknown"
|
|
esac
|
|
;;
|
|
arm*)
|
|
echo "This is ARM"
|
|
byteOrder=$(lscpu | grep -i "byte order")
|
|
shopt -s nocasematch
|
|
if [[ "${byteOrder}" == *little* ]]; then
|
|
osgiProcessor="arm_le"
|
|
elif [[ "${byteOrder}}" == *big* ]]; then
|
|
osgiProcessor="arm_be"
|
|
fi
|
|
shopt -u nocasematch
|
|
;;
|
|
*)
|
|
echo "This is unknown architecture"
|
|
esac
|
|
|
|
echo "The version number will be ${majorVersion}.${minorVersion}.${revision}"
|
|
echo "opencv.version=${majorVersion}.${minorVersion}.${revision}" > ${2}/${3}
|
|
echo "lib.version.string=${majorVersion}${minorVersion}${revision}" >> ${2}/${3}
|
|
echo "bits=${bits}" >> ${2}/${3}
|
|
echo "architecture=$(arch)" >> ${2}/${3}
|
|
echo "osgi.processor=${osgiProcessor}" >> ${2}/${3}
|
|
exit 0
|
|
else
|
|
echo "Could not locate file $1 to determine versioning."
|
|
exit 1
|
|
fi
|