mirror of
https://github.com/emqx/neuron.git
synced 2026-10-22 09:23:52 +08:00
Adapt cross compile
This commit is contained in:
+20
-8
@@ -8,7 +8,7 @@ enable_language(C)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "Debug")
|
||||
set(CMAKE_BUILD_TYPE "Release")
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
@@ -47,13 +47,20 @@ configure_file(extern/vector/vector.h ${CMAKE_SOURCE_DIR}/include/vector.h
|
||||
|
||||
# Call this from your own project's makefile.
|
||||
|
||||
if(APPLE)
|
||||
include_directories(/usr/local/include /usr/local/opt/openssl/include)
|
||||
link_directories(/usr/local/lib /usr/local/opt/openssl/lib)
|
||||
if(NOT CMAKE_STAGING_PREFIX)
|
||||
if(APPLE)
|
||||
include_directories(/usr/local/include /usr/local/opt/openssl/include)
|
||||
link_directories(/usr/local/lib /usr/local/opt/openssl/lib)
|
||||
else()
|
||||
link_directories(/usr/local/lib)
|
||||
endif()
|
||||
else()
|
||||
link_directories(/usr/local/lib)
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_STAGING_PREFIX})
|
||||
include_directories(${CMAKE_STAGING_PREFIX}/openssl/include)
|
||||
link_directories(${CMAKE_STAGING_PREFIX}/openssl/lib)
|
||||
endif()
|
||||
|
||||
|
||||
find_package(nng CONFIG REQUIRED)
|
||||
find_package(Threads)
|
||||
|
||||
@@ -95,6 +102,7 @@ set(NEURON_INCLUDE_DIRECTORIES include src plugins)
|
||||
add_executable(neuron)
|
||||
target_sources(neuron PRIVATE ${NEURON_SOURCES})
|
||||
target_include_directories(neuron PRIVATE ${NEURON_INCLUDE_DIRECTORIES})
|
||||
target_include_directories(neuron PUBLIC ${CMAKE_STAGING_PREFIX})
|
||||
if(APPLE)
|
||||
target_link_libraries(neuron nng::nng jansson yaml neuron-base)
|
||||
else()
|
||||
@@ -128,6 +136,7 @@ add_library(neuron-base SHARED)
|
||||
target_sources(neuron-base PRIVATE ${NEURON_BASE_SOURCES} ${NEURON_SRC_PARSE} ${NEURON_SRC_SCHEMA})
|
||||
target_include_directories(neuron-base
|
||||
PRIVATE ${NEURON_BASE_INCLUDE_DIRECTORIES})
|
||||
target_include_directories(neuron-base PRIVATE ${CMAKE_STAGING_PREFIX})
|
||||
target_link_libraries(neuron-base vector-static csptr jansson crypto yaml
|
||||
${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
@@ -141,6 +150,9 @@ add_subdirectory(plugins/modbus)
|
||||
add_subdirectory(plugins/mqtt)
|
||||
add_subdirectory(plugins/opcua)
|
||||
|
||||
# define for tests
|
||||
enable_testing()
|
||||
add_subdirectory(tests)
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
# define for tests
|
||||
enable_testing()
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
|
||||
set(triple aarch64-linux-gnu)
|
||||
|
||||
set(CMAKE_STAGING_PREFIX /opt/externs/libs/${triple})
|
||||
|
||||
if(NOT CMAKE_INSTALL_PREFIX)
|
||||
set(CMAKE_INSTALL_PREFIX .cross/${triple})
|
||||
endif()
|
||||
|
||||
set(CMAKE_STAGING_PREFIX /opt/externs/libs/${triple})
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_STAGING_PREFIX})
|
||||
|
||||
set(CMAKE_C_COMPILER ${triple}-gcc)
|
||||
set(CMAKE_C_FLAGS
|
||||
"-O3 -fPIC"
|
||||
CACHE INTERNAL "")
|
||||
set(CMAKE_C_FLAGS_DEBUG
|
||||
"${CMAKE_C_FLAGS} -g -Wall"
|
||||
CACHE INTERNAL "")
|
||||
set(CMAKE_C_FLAGS_MINSIZEREL
|
||||
"${CMAKE_C_FLAGS} -Os -DNDEBUG"
|
||||
CACHE INTERNAL "")
|
||||
set(CMAKE_C_FLAGS_RELEASE
|
||||
"${CMAKE_C_FLAGS} -O4 -DNDEBUG"
|
||||
CACHE INTERNAL "")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
"${CMAKE_C_FLAGS} -O2 -g"
|
||||
CACHE INTERNAL "")
|
||||
|
||||
# set(CMAKE_CXX_COMPILER ${triple}-g++) set(CMAKE_CXX_FLAGS "-O3 -fPIC" CACHE
|
||||
# INTERNAL "") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g -Wall" CACHE
|
||||
# INTERNAL "") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS} -Os -DNDEBUG"
|
||||
# CACHE INTERNAL "") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O4
|
||||
# -DNDEBUG" CACHE INTERNAL "") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
# "${CMAKE_CXX_FLAGS} -O2 -g" CACHE INTERNAL "")
|
||||
# include_directories(/opt/externs/libs/${triple}/include)
|
||||
# include_directories(/opt/externs/libs/${triple}/openssl/include)
|
||||
|
||||
# set(CMAKE_C_COMPILER ${triple}-gcc) set(CMAKE_CXX_COMPILER ${triple}-g++)
|
||||
|
||||
set(CMAKE_AR ${triple}-ar)
|
||||
set(CMAKE_AR ${triple}-ar)
|
||||
set(CMAKE_LINKER ${triple}-ld)
|
||||
set(CMAKE_NM ${triple}-nm)
|
||||
set(CMAKE_OBJDUMP ${triple}-objdump)
|
||||
set(CMAKE_RANLIB ${triple}-ranlib)
|
||||
|
||||
include_directories(SYSTEM ${CMAKE_STAGING_PREFIX}/include)
|
||||
include_directories(SYSTEM ${CMAKE_STAGING_PREFIX}/openssl/include)
|
||||
set(CMAKE_FIND_ROOT_PATH ${CMAKE_STAGING_PREFIX})
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_SYSROOT ${CMAKE_STAGING_PREFIX})
|
||||
link_directories(${CMAKE_STAGING_PREFIX})
|
||||
@@ -1,10 +1,56 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
set(CMAKE_SYSTEM_PROCESSOR armv7l)
|
||||
|
||||
set(triple arm-linux-gnueabihf)
|
||||
|
||||
set(CMAKE_STAGING_PREFIX /opt/cross/${triple})
|
||||
if(NOT CMAKE_INSTALL_PREFIX)
|
||||
set(CMAKE_INSTALL_PREFIX .cross/${triple})
|
||||
endif()
|
||||
|
||||
set(CMAKE_STAGING_PREFIX /opt/externs/libs/${triple})
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_STAGING_PREFIX})
|
||||
|
||||
set(CMAKE_C_COMPILER ${triple}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${triple}-g++)
|
||||
set(CMAKE_C_FLAGS
|
||||
"-O3 -fPIC"
|
||||
CACHE INTERNAL "")
|
||||
set(CMAKE_C_FLAGS_DEBUG
|
||||
"${CMAKE_C_FLAGS} -g -Wall"
|
||||
CACHE INTERNAL "")
|
||||
set(CMAKE_C_FLAGS_MINSIZEREL
|
||||
"${CMAKE_C_FLAGS} -Os -DNDEBUG"
|
||||
CACHE INTERNAL "")
|
||||
set(CMAKE_C_FLAGS_RELEASE
|
||||
"${CMAKE_C_FLAGS} -O4 -DNDEBUG"
|
||||
CACHE INTERNAL "")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
"${CMAKE_C_FLAGS} -O2 -g"
|
||||
CACHE INTERNAL "")
|
||||
|
||||
# set(CMAKE_CXX_COMPILER ${triple}-g++) set(CMAKE_CXX_FLAGS "-O3 -fPIC" CACHE
|
||||
# INTERNAL "") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g -Wall" CACHE
|
||||
# INTERNAL "") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS} -Os -DNDEBUG"
|
||||
# CACHE INTERNAL "") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O4
|
||||
# -DNDEBUG" CACHE INTERNAL "") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
# "${CMAKE_CXX_FLAGS} -O2 -g" CACHE INTERNAL "")
|
||||
# include_directories(/opt/externs/libs/${triple}/include)
|
||||
# include_directories(/opt/externs/libs/${triple}/openssl/include)
|
||||
|
||||
# set(CMAKE_C_COMPILER ${triple}-gcc) set(CMAKE_CXX_COMPILER ${triple}-g++)
|
||||
|
||||
set(CMAKE_AR ${triple}-ar)
|
||||
set(CMAKE_AR ${triple}-ar)
|
||||
set(CMAKE_LINKER ${triple}-ld)
|
||||
set(CMAKE_NM ${triple}-nm)
|
||||
set(CMAKE_OBJDUMP ${triple}-objdump)
|
||||
set(CMAKE_RANLIB ${triple}-ranlib)
|
||||
|
||||
include_directories(SYSTEM ${CMAKE_STAGING_PREFIX}/include)
|
||||
include_directories(SYSTEM ${CMAKE_STAGING_PREFIX}/openssl/include)
|
||||
set(CMAKE_FIND_ROOT_PATH ${CMAKE_STAGING_PREFIX})
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_SYSROOT ${CMAKE_STAGING_PREFIX})
|
||||
link_directories(${CMAKE_STAGING_PREFIX})
|
||||
|
||||
+188
-89
@@ -1,44 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
system=`uname`
|
||||
system=$(uname)
|
||||
echo "System: $system"
|
||||
|
||||
if [ $system == 'Linux' ];then
|
||||
if [ `whoami` != "root" ];then
|
||||
if [ $system == 'Linux' ]; then
|
||||
if [ $(whoami) != "root" ]; then
|
||||
echo "Please use root access"
|
||||
exit 2
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
|
||||
lib_list=(nng jansson jwt MQTT-C openssl gtest open62541 yaml)
|
||||
lib_list=(zlib openssl nng jansson jwt MQTT-C gtest open62541 yaml)
|
||||
|
||||
list_str=""
|
||||
for var in ${lib_list[*]};do
|
||||
for var in ${lib_list[*]}; do
|
||||
list_str+=$var" "
|
||||
done
|
||||
|
||||
arch=x86_64
|
||||
is_build_all=FALSE
|
||||
pkgname=
|
||||
is_cross=FALSE
|
||||
compiler_opt=
|
||||
install_opt=
|
||||
cross_compiler_prefix=
|
||||
ssl_lib_flag=
|
||||
git_url_prefix="https://github.com/"
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0 "
|
||||
echo " -a Build all dependencies"
|
||||
echo " -i Specify installation options (opts: $list_str)"
|
||||
echo " -n Specify dependence name (opts: $list_str)"
|
||||
echo " -c Cross compiler mode (default: FALSE)"
|
||||
echo " -p Cross compiler prefix (opts: x86_64-linux-gnu, arm-linux-gnueabihf, aarch64-linux-gnu, ...)"
|
||||
echo " -s System architecture (only for openssl, opts: x86_64, armv4, aarch64, ...) "
|
||||
echo " -r Use github repository SSH url (default: HTTPS url)"
|
||||
}
|
||||
|
||||
if [ $# -eq 0 ];then
|
||||
usage
|
||||
exit
|
||||
if [ $# -eq 0 ]; then
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
|
||||
# nng
|
||||
function build_nng()
|
||||
{
|
||||
function build_nng() {
|
||||
echo "Building nng (v1.5.2)"
|
||||
if [ ! -d nng ];then
|
||||
git clone -b v1.5.2 https://github.com/nanomsg/nng.git
|
||||
if [ ! -d nng ]; then
|
||||
git clone -b v1.5.2 ${git_url_prefix}nanomsg/nng.git
|
||||
fi
|
||||
cd nng
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja -DBUILD_SHARED_LIBS=1 ..
|
||||
cmake -G Ninja -DBUILD_SHARED_LIBS=OFF -DNNG_TESTS=OFF ${compiler_opt} ${install_opt} ..
|
||||
ninja
|
||||
ninja install
|
||||
|
||||
@@ -47,17 +61,18 @@ function build_nng()
|
||||
}
|
||||
|
||||
# jansson
|
||||
function build_jansson()
|
||||
{
|
||||
function build_jansson() {
|
||||
echo "Building jansson"
|
||||
if [ ! -d jansson ];then
|
||||
git clone https://github.com/akheron/jansson.git
|
||||
if [ ! -d jansson ]; then
|
||||
git clone ${git_url_prefix}akheron/jansson.git
|
||||
fi
|
||||
cd jansson
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja -DJANSSON_BUILD_DOCS=OFF ..
|
||||
cmake -G Ninja -DJANSSON_BUILD_DOCS=OFF \
|
||||
-DJANSSON_EXAMPLES=OFF \
|
||||
${compiler_opt} ${install_opt} ..
|
||||
ninja
|
||||
ninja install
|
||||
|
||||
@@ -66,17 +81,16 @@ function build_jansson()
|
||||
}
|
||||
|
||||
# jwt
|
||||
function build_jwt()
|
||||
{
|
||||
function build_jwt() {
|
||||
echo "Building libjwt"
|
||||
if [ ! -d libjwt ];then
|
||||
git clone https://github.com/benmcollins/libjwt.git
|
||||
if [ ! -d libjwt ]; then
|
||||
git clone ${git_url_prefix}benmcollins/libjwt.git
|
||||
fi
|
||||
cd libjwt
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja -DBUILD_EXAMPLES=OFF $ssl_lib_flag ..
|
||||
cmake -G Ninja -DBUILD_EXAMPLES=OFF ${ssl_lib_flag} ${compiler_opt} ${install_opt} ..
|
||||
ninja
|
||||
ninja install
|
||||
|
||||
@@ -85,86 +99,140 @@ function build_jwt()
|
||||
}
|
||||
|
||||
# MQTT-C
|
||||
function build_MQTT-C()
|
||||
{
|
||||
function build_MQTT-C() {
|
||||
echo "Building MQTT-C (1.1.5)"
|
||||
if [ ! -d MQTT-C ];then
|
||||
git clone -b 1.1.5 https://github.com/LiamBindle/MQTT-C.git
|
||||
if [ ! -d MQTT-C ]; then
|
||||
git clone -b 1.1.5 ${git_url_prefix}neugates/MQTT-C.git
|
||||
fi
|
||||
cd MQTT-C
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DMQTT_C_OpenSSL_SUPPORT=ON ..
|
||||
cmake -G Ninja -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DMQTT_C_OpenSSL_SUPPORT=ON \
|
||||
-DMQTT_C_EXAMPLES=OFF \
|
||||
${ssl_lib_flag} ${compiler_opt} ${install_opt} ..
|
||||
ninja
|
||||
ninja install
|
||||
echo "Leaving MQTT-C "
|
||||
cd ../../
|
||||
}
|
||||
|
||||
function build_yaml()
|
||||
{
|
||||
git clone https://github.com/yaml/libyaml.git
|
||||
function build_yaml() {
|
||||
echo "Building yaml"
|
||||
git clone ${git_url_prefix}yaml/libyaml.git
|
||||
cd libyaml
|
||||
rm -rf build
|
||||
mkdir build && cd build && cmake DBUILD_SHARED_LIBS=1 .. && make
|
||||
make install
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja -DBUILD_SHARED_LIBS=ON ${compiler_opt} ${install_opt} ..
|
||||
ninja
|
||||
ninja install
|
||||
|
||||
echo "Leaving yaml"
|
||||
cd ../../
|
||||
}
|
||||
|
||||
function install_tool()
|
||||
{
|
||||
function install_tool() {
|
||||
ubuntu=$1
|
||||
centos=$2
|
||||
darwin=$3
|
||||
|
||||
case "$system" in
|
||||
"Linux") release=`awk -F= '/^NAME/{print $2}' /etc/os-release`
|
||||
case "$release" in
|
||||
"\"Ubuntu\"")
|
||||
apt-get -y install $ubuntu
|
||||
;;
|
||||
"\"CentOS Linux\"")
|
||||
yum install -y $centos
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
"Darwin")
|
||||
brew install $darwin
|
||||
;;
|
||||
case "$system" in
|
||||
"Linux")
|
||||
release=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
|
||||
case "$release" in
|
||||
"\"Ubuntu\"")
|
||||
apt-get -y install $ubuntu
|
||||
;;
|
||||
"\"CentOS Linux\"")
|
||||
yum install -y $centos
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
"Darwin")
|
||||
brew install $darwin
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unsupported System!"
|
||||
echo "Please install library manually!"
|
||||
;;
|
||||
echo "Unsupported System!"
|
||||
echo "Please install library manually!"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function build_openssl()
|
||||
{
|
||||
echo "Installing openssl"
|
||||
install_tool libssl-dev openssl-devel openssl
|
||||
function build_zlib() {
|
||||
echo "Installing zlib"
|
||||
if [ ! -d zlib ]; then
|
||||
git clone ${git_url_prefix}madler/zlib.git
|
||||
fi
|
||||
|
||||
cd zlib
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja ${compiler_opt} ${install_opt} ..
|
||||
ninja
|
||||
ninja install
|
||||
echo "Leaving zlib "
|
||||
cd ../../
|
||||
}
|
||||
|
||||
function build_gtest()
|
||||
{
|
||||
function build_openssl() {
|
||||
echo "Installing openssl (1.1.1)"
|
||||
if [ $is_cross == "TRUE" ]; then
|
||||
if [ ! -n "$cross_compiler_prefix" ]; then
|
||||
echo "Error: cross_compiler_prefix must be set"
|
||||
usage
|
||||
return
|
||||
fi
|
||||
|
||||
if [ ! -d openssl ]; then
|
||||
git clone -b OpenSSL_1_1_1-stable ${git_url_prefix}openssl/openssl.git
|
||||
fi
|
||||
|
||||
cd openssl
|
||||
make clean
|
||||
mkdir -p ${install_dir}/openssl/ssl
|
||||
./Configure ${system,}-${arch} no-asm shared \
|
||||
--prefix=${install_dir}/openssl \
|
||||
--openssldir=${install_dir}/openssl/ssl \
|
||||
--cross-compile-prefix=${cross_compiler_prefix}- \
|
||||
--with-zlib-include=${install_dir}/zlib/include \
|
||||
--with-zlib-lib=${install_dir}/zlib/lib
|
||||
make
|
||||
make install
|
||||
cd ../
|
||||
|
||||
else
|
||||
install_tool libssl-dev openssl-devel openssl
|
||||
fi
|
||||
}
|
||||
|
||||
function build_gtest() {
|
||||
echo "Install gtest"
|
||||
install_tool libgtest-dev gtest-devel googletest
|
||||
if [ $is_cross != "TRUE" ]; then
|
||||
install_tool libgtest-dev gtest-devel googletest
|
||||
fi
|
||||
}
|
||||
|
||||
function build_open62541() {
|
||||
echo "Install open62541 (v1.2.2)"
|
||||
|
||||
if [ ! -d open62541 ];then
|
||||
git clone -b v1.2.2 https://github.com/open62541/open62541.git
|
||||
if [ ! -d open62541 ]; then
|
||||
git clone -b v1.2.2 ${git_url_prefix}open62541/open62541.git
|
||||
fi
|
||||
cd open62541
|
||||
cd open62541
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja -DBUILD_SHARED_LIBS=OFF -DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_ENCRYPTION=ON -DUA_ENABLE_ENCRYPTION_OPENSSL=ON ..
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DUA_ENABLE_AMALGAMATION=ON \
|
||||
-DUA_ENABLE_ENCRYPTION=ON \
|
||||
-DUA_ENABLE_ENCRYPTION_OPENSSL=ON \
|
||||
${ssl_lib_flag} ${compiler_opt} ${install_opt} ..
|
||||
ninja
|
||||
ninja install
|
||||
|
||||
@@ -172,37 +240,33 @@ function build_open62541() {
|
||||
cd ../../
|
||||
}
|
||||
|
||||
current=`pwd`
|
||||
current=$(pwd)
|
||||
externs="/opt/externs"
|
||||
|
||||
if [ ! -d $externs ];then
|
||||
if [ ! -d $externs ]; then
|
||||
mkdir $externs
|
||||
fi
|
||||
|
||||
echo "Entering $externs"
|
||||
cd $externs
|
||||
|
||||
ssl_lib_flag=""
|
||||
case "$system" in
|
||||
"Linux") ssl_lib_flag=""
|
||||
;;
|
||||
"Darwin") ssl_lib_flag="-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
while getopts "a-:i:h" OPT; do
|
||||
while getopts "h:c-:r-:a-:n:p:s:" OPT; do
|
||||
case ${OPT} in
|
||||
a)
|
||||
echo "Build ${list_str}"
|
||||
for var in ${lib_list[*]};do
|
||||
build_$var
|
||||
done
|
||||
c)
|
||||
is_cross=TRUE
|
||||
;;
|
||||
i)
|
||||
s)
|
||||
arch=$OPTARG
|
||||
;;
|
||||
p)
|
||||
cross_compiler_prefix=$OPTARG
|
||||
;;
|
||||
r)
|
||||
git_url_prefix="git@github.com:"
|
||||
;;
|
||||
a)
|
||||
is_build_all=TRUE
|
||||
;;
|
||||
n)
|
||||
pkgname=$OPTARG
|
||||
build_$pkgname
|
||||
;;
|
||||
h)
|
||||
usage
|
||||
@@ -215,6 +279,41 @@ while getopts "a-:i:h" OPT; do
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $is_cross == "TRUE" ]; then
|
||||
install_dir=${externs}/libs/${cross_compiler_prefix}
|
||||
compiler_opt="-DCMAKE_C_COMPILER=${cross_compiler_prefix}-gcc \
|
||||
-DCMAKE_STAGING_PREFIX=${install_dir} -DCMAKE_PREFIX_PATH=${install_dir}"
|
||||
install_opt="-DCMAKE_INSTALL_PREFIX=${install_dir}"
|
||||
ssl_lib_flag="-DOPENSSL_ROOT_DIR=${install_dir}/openssl \
|
||||
-DOPENSSL_INCLUDE_DIR==${install_dir}/openssl/include \
|
||||
-DOPENSSL_LIBRARIES='${install_dir}/openssl/lib/libssl.so ${install_dir}/openssl/lib/libcrypto.so'"
|
||||
|
||||
echo "Entering $externs"
|
||||
else
|
||||
case "$system" in
|
||||
"Linux")
|
||||
ssl_lib_flag=""
|
||||
;;
|
||||
"Darwin")
|
||||
ssl_lib_flag="-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl"
|
||||
;;
|
||||
*) ;;
|
||||
|
||||
esac
|
||||
fi
|
||||
|
||||
mkdir -p ${install_dir}
|
||||
|
||||
if [ $is_build_all == "TRUE" ]; then
|
||||
echo "Build ${list_str}"
|
||||
for var in ${lib_list[*]}; do
|
||||
install_opt=${install_opt}/$var
|
||||
build_$var
|
||||
done
|
||||
else
|
||||
install_opt=${install_opt}/$pkgname
|
||||
build_$pkgname
|
||||
fi
|
||||
|
||||
echo "Leaving $externs"
|
||||
cd $current
|
||||
|
||||
|
||||
Reference in New Issue
Block a user