Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
jami-client-android
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
savoirfairelinux
jami-client-android
Commits
fd8a9aea
Commit
fd8a9aea
authored
5 years ago
by
Adrien Béraud
Browse files
Options
Downloads
Patches
Plain Diff
build: cleanup
Change-Id: I23cbc1542bc065521f80ec6d521674d1921d6b43
parent
df31e7e4
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
build-daemon.sh
+41
-83
41 additions, 83 deletions
build-daemon.sh
configure.sh
+5
-20
5 additions, 20 deletions
configure.sh
with
46 additions
and
103 deletions
build-daemon.sh
+
41
−
83
View file @
fd8a9aea
#! /bin/bash
#! /bin/bash
# Build Ring daemon for architecture specified by ANDROID_ABI
# Build Jami daemon for architecture specified by ANDROID_ABI
#for OSX/BSD
realpath
()
{
[[
$1
=
/
*
]]
&&
echo
"
$1
"
||
echo
"
$PWD
/
${
1
#./
}
"
}
set
-e
set
-e
if
[
-z
"
$ANDROID_NDK
"
-o
-z
"
$ANDROID_SDK
"
]
;
then
if
[
-z
"
$ANDROID_NDK
"
-o
-z
"
$ANDROID_SDK
"
]
;
then
...
@@ -13,18 +7,16 @@ if [ -z "$ANDROID_NDK" -o -z "$ANDROID_SDK" ]; then
...
@@ -13,18 +7,16 @@ if [ -z "$ANDROID_NDK" -o -z "$ANDROID_SDK" ]; then
echo
"They must point to your NDK and SDK directories."
echo
"They must point to your NDK and SDK directories."
exit
1
exit
1
fi
fi
if
[
-z
"
$ANDROID_ABI
"
]
;
then
if
[
-z
"
$ANDROID_ABI
"
]
;
then
echo
"Please set ANDROID_ABI to your architecture: armeabi-v7a, x86."
echo
"Please set ANDROID_ABI to your architecture: armeabi-v7a, x86."
exit
1
exit
1
fi
fi
ANDROID_TOPLEVEL_DIR
=
"
`
pwd
`
"
ANDROID_TOPLEVEL_DIR
=
"
`
pwd
`
"
ANDROID_APP_DIR
=
"
$
(
pwd
)
/ring-android"
ANDROID_APP_DIR
=
"
$
{
ANDROID_TOPLEVEL_DIR
}
/ring-android"
HAVE_ARM
=
0
HAVE_ARM
=
0
HAVE_X86
=
0
HAVE_X86
=
0
HAVE_MIPS
=
0
HAVE_64
=
0
HAVE_64
=
0
# Set up ABI variables
# Set up ABI variables
...
@@ -41,12 +33,6 @@ elif [ ${ANDROID_ABI} = "x86_64" ] ; then
...
@@ -41,12 +33,6 @@ elif [ ${ANDROID_ABI} = "x86_64" ] ; then
HAVE_X86
=
1
HAVE_X86
=
1
HAVE_64
=
1
HAVE_64
=
1
PLATFORM_SHORT_ARCH
=
"x86_64"
PLATFORM_SHORT_ARCH
=
"x86_64"
elif
[
${
ANDROID_ABI
}
=
"mips"
]
;
then
TARGET_TUPLE
=
"mipsel-linux-android"
PJ_TARGET_TUPLE
=
"mips-unknown-linux-androideabi"
PATH_HOST
=
$TARGET_TUPLE
HAVE_MIPS
=
1
PLATFORM_SHORT_ARCH
=
"mips"
elif
[
${
ANDROID_ABI
}
=
"arm64-v8a"
]
;
then
elif
[
${
ANDROID_ABI
}
=
"arm64-v8a"
]
;
then
TARGET_TUPLE
=
"aarch64-linux-android"
TARGET_TUPLE
=
"aarch64-linux-android"
PJ_TARGET_TUPLE
=
"aarch64-unknown-linux-android"
PJ_TARGET_TUPLE
=
"aarch64-unknown-linux-android"
...
@@ -79,25 +65,19 @@ if [ ! -d "$ANDROID_TOOLCHAIN" ]; then
...
@@ -79,25 +65,19 @@ if [ ! -d "$ANDROID_TOOLCHAIN" ]; then
--install-dir
=
$ANDROID_TOOLCHAIN
--install-dir
=
$ANDROID_TOOLCHAIN
fi
fi
GCCVER
=
clang
CXXSTL
=
"/"
${
GCCVER
}
export
GCCVER
export
CXXSTL
export
ANDROID_API
export
ANDROID_API
export
TARGET_TUPLE
export
TARGET_TUPLE
export
PATH_HOST
export
HAVE_ARM
export
HAVE_ARM
export
HAVE_X86
export
HAVE_X86
export
HAVE_MIPS
export
HAVE_64
export
HAVE_64
export
PLATFORM_SHORT_ARCH
# Add the NDK toolchain to the PATH, needed both for contribs and for building
# Add the NDK toolchain to the PATH, needed both for contribs and for building
# stub libraries
# stub libraries
NDK_TOOLCHAIN_PATH
=
`
echo
${
ANDROID_TOOLCHAIN
}
/bin
`
NDK_TOOLCHAIN_PATH
=
"
${
ANDROID_TOOLCHAIN
}
/bin
"
export
NDK_TOOLCHAIN_PATH
=
${
NDK_TOOLCHAIN_PATH
}
CROSS_COMPILE
=
${
NDK_TOOLCHAIN_PATH
}
/
${
TARGET_TUPLE
}
-
export
PATH
=
${
NDK_TOOLCHAIN_PATH
}
:
${
PATH
}
export
PATH
=
${
NDK_TOOLCHAIN_PATH
}
:
${
PATH
}
export
CROSS_COMPILE
=
"
${
CROSS_COMPILE
}
"
export
SYSROOT
=
$ANDROID_TOOLCHAIN
/sysroot
if
[
-z
"
$DAEMON_DIR
"
]
;
then
if
[
-z
"
$DAEMON_DIR
"
]
;
then
DAEMON_DIR
=
"
$(
pwd
)
/../daemon"
DAEMON_DIR
=
"
$(
pwd
)
/../daemon"
...
@@ -109,18 +89,34 @@ if [ ! -d "$DAEMON_DIR" ]; then
...
@@ -109,18 +89,34 @@ if [ ! -d "$DAEMON_DIR" ]; then
echo
'If you cloned the daemon in a custom location override'
\
echo
'If you cloned the daemon in a custom location override'
\
'DAEMON_DIR to point to it'
'DAEMON_DIR to point to it'
echo
"You can also use our meta repo which contains both:
echo
"You can also use our meta repo which contains both:
https://
gerrit-ring.savoirfairelinux.com
/#/admin/projects/ring-project"
https://
review.jami.net
/#/admin/projects/ring-project"
exit
1
exit
1
fi
fi
export
DAEMON_DIR
# Setup LDFLAGS
# Setup LDFLAGS
if
[
${
ANDROID_ABI
}
=
"armeabi-v7a"
]
;
then
if
[
${
ANDROID_ABI
}
=
"armeabi-v7a"
]
;
then
EXTRA_CFLAGS
=
"
${
EXTRA_CFLAGS
}
-march=armv7-a -mthumb -mfpu=vfpv3-d16"
EXTRA_CFLAGS
=
"
${
EXTRA_CFLAGS
}
-march=armv7-a -mthumb -mfpu=vfpv3-d16"
EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
-march=armv7-a -mthumb -mfpu=vfpv3-d16"
EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
-march=armv7-a -mthumb -mfpu=vfpv3-d16"
elif
[
${
ANDROID_ABI
}
=
"arm64-v8a"
]
;
then
elif
[
${
ANDROID_ABI
}
=
"arm64-v8a"
]
;
then
EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
-L
${
ANDROID_TOOLCHAIN
}
/sysroot
/usr/lib -L
${
ANDROID_TOOLCHAIN
}
/
${
TARGET_TUPLE
}
/lib"
EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
-L
${
SYSROOT
}
/usr/lib -L
${
ANDROID_TOOLCHAIN
}
/
${
TARGET_TUPLE
}
/lib"
fi
fi
EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
-L
${
ANDROID_TOOLCHAIN
}
/
${
TARGET_TUPLE
}
/
${
LIBDIR
}
/
${
ANDROID_ABI
}
-L
${
ANDROID_TOOLCHAIN
}
/
${
TARGET_TUPLE
}
/
${
LIBDIR
}
"
EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
-L
${
ANDROID_TOOLCHAIN
}
/
${
TARGET_TUPLE
}
/
${
LIBDIR
}
/
${
ANDROID_ABI
}
-L
${
ANDROID_TOOLCHAIN
}
/
${
TARGET_TUPLE
}
/
${
LIBDIR
}
"
EXTRA_CFLAGS
=
"
${
EXTRA_CFLAGS
}
-fPIC"
EXTRA_CXXFLAGS
=
"
${
EXTRA_CXXFLAGS
}
-fPIC"
EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
-L
${
SYSROOT
}
/usr/
${
LIBDIR
}
"
echo
"EXTRA_CFLAGS=
${
EXTRA_CFLAGS
}
"
>>
config.mak
echo
"EXTRA_CXXFLAGS=
${
EXTRA_CXXFLAGS
}
"
>>
config.mak
echo
"EXTRA_LDFLAGS=
${
EXTRA_LDFLAGS
}
"
>>
config.mak
if
[
"
${
RELEASE
}
"
-eq
1
]
;
then
echo
"Daemon in release mode."
OPTS
=
""
STRIP_ARG
=
"-s "
else
echo
"Daemon in debug mode."
OPTS
=
"--enable-debug"
fi
# Make in //
# Make in //
UNAMES
=
$(
uname
-s
)
UNAMES
=
$(
uname
-s
)
...
@@ -135,7 +131,7 @@ fi
...
@@ -135,7 +131,7 @@ fi
# Build buildsystem tools
# Build buildsystem tools
cd
$DAEMON_DIR
/extras/tools
cd
$DAEMON_DIR
/extras/tools
export
PATH
=
`
pwd
`
/
extras/tools/
build/bin:
$PATH
export
PATH
=
`
pwd
`
/build/bin:
$PATH
echo
"Building tools"
echo
"Building tools"
./bootstrap
./bootstrap
make
$MAKEFLAGS
make
$MAKEFLAGS
...
@@ -152,63 +148,30 @@ PACKAGEDIR=$PACKAGEDIR $JNIDIR/make-swig.sh
...
@@ -152,63 +148,30 @@ PACKAGEDIR=$PACKAGEDIR $JNIDIR/make-swig.sh
############
############
# Contribs #
# Contribs #
############
############
cd
$DAEMON_DIR
echo
"Building the contribs"
echo
"Building the contribs"
mkdir
-p
contrib/native-
${
TARGET_TUPLE
}
CONTRIB_DIR
=
${
DAEMON_DIR
}
/contrib/native-
${
TARGET_TUPLE
}
CONTRIB_SYSROOT
=
${
DAEMON_DIR
}
/contrib/
${
TARGET_TUPLE
}
CROSS_COMPILE
=
${
NDK_TOOLCHAIN_PATH
}
/
${
TARGET_TUPLE
}
-
mkdir
-p
${
CONTRIB_DIR
}
export
CROSS_COMPILE
=
"
${
CROSS_COMPILE
}
"
mkdir
-p
${
CONTRIB_SYSROOT
}
/lib/pkgconfig
mkdir
-p
contrib/
${
TARGET_TUPLE
}
/lib/pkgconfig
cd
$DAEMON_DIR
/contrib/native-
${
TARGET_TUPLE
}
../bootstrap
--host
=
${
TARGET_TUPLE
}
--disable-libav
--enable-ffmpeg
--disable-speexdsp
# Always strip symbols for libring.so remove it if you want to debug the daemon
STRIP_ARG
=
"-s "
EXTRA_CFLAGS
=
"
${
EXTRA_CFLAGS
}
-DNDEBUG -fPIC -fno-integrated-as"
EXTRA_CXXFLAGS
=
"
${
EXTRA_CXXFLAGS
}
-DNDEBUG -fPIC"
EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
-L
${
SYSROOT
}
/usr/
${
LIBDIR
}
"
if
[
"
${
RELEASE
}
"
-eq
1
]
;
then
echo
"Daemon in release mode."
OPTS
=
""
else
echo
"Daemon in debug mode."
OPTS
=
"--enable-debug"
fi
export
SYSROOT
=
$ANDROID_TOOLCHAIN
/sysroot
cd
${
CONTRIB_DIR
}
echo
"EXTRA_CFLAGS=
${
EXTRA_CFLAGS
}
"
>>
config.mak
../bootstrap
--host
=
${
TARGET_TUPLE
}
--enable-ffmpeg
--disable-speexdsp
echo
"EXTRA_CXXFLAGS=
${
EXTRA_CXXFLAGS
}
"
>>
config.mak
echo
"EXTRA_LDFLAGS=
${
EXTRA_LDFLAGS
}
"
>>
config.mak
export
RING_EXTRA_CFLAGS
=
"
${
EXTRA_CFLAGS
}
"
export
RING_EXTRA_CXXFLAGS
=
"
${
EXTRA_CXXFLAGS
}
"
export
RING_EXTRA_LDFLAGS
=
"
${
EXTRA_LDFLAGS
}
"
make list
make list
make fetch
make fetch
export
PATH
=
"
$PATH
:
$
PWD
/../
$TARGET_TUPLE
/bin"
export
PATH
=
"
$PATH
:
$
CONTRIB_SYSROOT
/bin"
make
$MAKEFLAGS
make
$MAKEFLAGS
############
############
# Make
Ring
#
# Make
Jami daemon
#
############
############
cd
$DAEMON_DIR
DAEMON_BUILD_DIR
=
"
${
DAEMON_DIR
}
/build-android-
${
TARGET_TUPLE
}
"
RING_SRC_DIR
=
"
${
DAEMON_DIR
}
"
mkdir
-p
${
DAEMON_BUILD_DIR
}
RING_BUILD_DIR
=
"
`
realpath
build-android-
${
TARGET_TUPLE
}
`
"
export
RING_SRC_DIR
=
"
${
RING_SRC_DIR
}
"
export
RING_BUILD_DIR
=
"
${
RING_BUILD_DIR
}
"
mkdir
-p
build-android-
${
TARGET_TUPLE
}
cd
${
ANDROID_APP_DIR
}
if
[
!
-f
config.h
]
;
then
if
[
!
-f
config.h
]
;
then
echo
"Bootstraping"
cd
${
DAEMON_DIR
}
cd
${
DAEMON_DIR
}
./autogen.sh
./autogen.sh
cd
"
${
DAEMON_
DIR
}
/build-android-
${
TARGET_TUPLE
}
"
cd
"
${
DAEMON_
BUILD_DIR
}
"
echo
"Configuring with
${
OPTS
}
"
echo
"Configuring with
${
OPTS
}
"
CFLAGS
=
"
${
EXTRA_CFLAGS
}
"
\
CFLAGS
=
"
${
EXTRA_CFLAGS
}
"
\
CXXFLAGS
=
"
${
EXTRA_CXXFLAGS
}
"
\
CXXFLAGS
=
"
${
EXTRA_CXXFLAGS
}
"
\
...
@@ -221,11 +184,6 @@ if [ ${ANDROID_API} = "android-21" ] ; then
...
@@ -221,11 +184,6 @@ if [ ${ANDROID_API} = "android-21" ] ; then
# doesn't have any shm functions and/or symbols. */
# doesn't have any shm functions and/or symbols. */
export
ac_cv_header_sys_shm_h
=
no
export
ac_cv_header_sys_shm_h
=
no
fi
fi
if
[
${
ANDROID_ABI
}
=
"x86"
-a
${
ANDROID_API
}
!=
"android-21"
]
;
then
# NDK x86 libm.so has nanf symbol but no nanf definition, we don't known if
# intel devices has nanf. Assume they don't have it.
export
ac_cv_lib_m_nanf
=
no
fi
echo
"Building dring
${
MAKEFLAGS
}
"
echo
"Building dring
${
MAKEFLAGS
}
"
V
=
99 make
$MAKEFLAGS
V
=
99 make
$MAKEFLAGS
...
@@ -257,7 +215,7 @@ STATIC_LIBS_ALL="-llog -lOpenSLES -landroid \
...
@@ -257,7 +215,7 @@ STATIC_LIBS_ALL="-llog -lOpenSLES -landroid \
LIBRING_JNI_DIR
=
${
ANDROID_APP_DIR
}
/app/src/main/libs/
${
ANDROID_ABI
}
LIBRING_JNI_DIR
=
${
ANDROID_APP_DIR
}
/app/src/main/libs/
${
ANDROID_ABI
}
echo
"Building
Ring
JNI library for Android to
${
LIBRING_JNI_DIR
}
"
echo
"Building
Jami
JNI library for Android to
${
LIBRING_JNI_DIR
}
"
mkdir
-p
${
LIBRING_JNI_DIR
}
mkdir
-p
${
LIBRING_JNI_DIR
}
${
NDK_TOOLCHAIN_PATH
}
/clang++
\
${
NDK_TOOLCHAIN_PATH
}
/clang++
\
...
@@ -267,11 +225,11 @@ ${NDK_TOOLCHAIN_PATH}/clang++ \
...
@@ -267,11 +225,11 @@ ${NDK_TOOLCHAIN_PATH}/clang++ \
-Wno-unused-function
\
-Wno-unused-function
\
-Wno-unused-parameter
\
-Wno-unused-parameter
\
${
JNIDIR
}
/ring_wrapper.cpp
\
${
JNIDIR
}
/ring_wrapper.cpp
\
${
RING
_BUILD_DIR
}
/src/.libs/libring.a
\
${
DAEMON
_BUILD_DIR
}
/src/.libs/libring.a
\
-static-libstdc
++
\
-static-libstdc
++
\
-isystem
${
RING_SRC
_DIR
}
/contrib/
${
TARGET_TUPLE
}
/include
\
-isystem
${
DAEMON
_DIR
}
/contrib/
${
TARGET_TUPLE
}
/include
\
-I
${
RING_SRC
_DIR
}
/src
\
-I
${
DAEMON
_DIR
}
/src
\
-L
${
RING_SRC
_DIR
}
/contrib/
${
TARGET_TUPLE
}
/lib
\
-L
${
DAEMON
_DIR
}
/contrib/
${
TARGET_TUPLE
}
/lib
\
${
STATIC_LIBS_ALL
}
\
${
STATIC_LIBS_ALL
}
\
${
STRIP_ARG
}
--std
=
c++14
-O3
-fPIC
\
${
STRIP_ARG
}
--std
=
c++14
-O3
-fPIC
\
-o
${
LIBRING_JNI_DIR
}
/libring.so
-o
${
LIBRING_JNI_DIR
}
/libring.so
This diff is collapsed.
Click to expand it.
configure.sh
+
5
−
20
View file @
fd8a9aea
...
@@ -4,32 +4,17 @@ if [ -z "$ANDROID_NDK" ]; then
...
@@ -4,32 +4,17 @@ if [ -z "$ANDROID_NDK" ]; then
echo
"Please set the ANDROID_NDK environment variable with its path."
echo
"Please set the ANDROID_NDK environment variable with its path."
exit
1
exit
1
fi
fi
if
[
-z
"
$NDK_TOOLCHAIN_PATH
"
]
;
then
echo
"Please set the NDK_TOOLCHAIN_PATH environment variable with its path."
exit
1
fi
if
[
-z
"
$ANDROID_ABI
"
]
;
then
if
[
-z
"
$ANDROID_ABI
"
]
;
then
echo
"Please set ANDROID_ABI to your architecture: armeabi-v7a, armeabi, arm64-v8a, x86, x86_64 or mips."
echo
"Please set ANDROID_ABI to your architecture: armeabi-v7a, armeabi, arm64-v8a, x86, x86_64 or mips."
exit
1
exit
1
fi
fi
# ANDROID_API must be previously set by compile.sh or env.sh
if
[
-z
"
$ANDROID_API
"
]
;
then
if
[
-z
"
$ANDROID_API
"
]
;
then
echo
"ANDROID_API not set, call ./compile.sh first"
echo
"ANDROID_API not set, call ./compile.sh first"
exit
1
exit
1
fi
fi
CPPFLAGS
=
"-I
${
RING_SRC_DIR
}
/contrib/
${
TARGET_TUPLE
}
/include "
CPPFLAGS
=
"
${
CPPFLAGS
}
-I
${
DAEMON_DIR
}
/contrib/
${
TARGET_TUPLE
}
/include "
\
LDFLAGS
=
"
$LDFLAGS
-L
${
RING_SRC_DIR
}
/contrib/
${
TARGET_TUPLE
}
/lib "
LDFLAGS
=
"
${
LDFLAGS
}
-L
${
DAEMON_DIR
}
/contrib/
${
TARGET_TUPLE
}
/lib "
\
SYSROOT
=
$NDK_TOOLCHAIN_PATH
/sysroot
CPPFLAGS
=
"
$CPPFLAGS
"
\
CFLAGS
=
"
$CFLAGS
${
RING_EXTRA_CFLAGS
}
"
\
CXXFLAGS
=
"
$CXXFLAGS
${
RING_EXTRA_CXXFLAGS
}
"
\
LDFLAGS
=
"
$LDFLAGS
${
RING_EXTRA_LDFLAGS
}
"
\
CC
=
"
${
CROSS_COMPILE
}
clang"
\
CC
=
"
${
CROSS_COMPILE
}
clang"
\
CXX
=
"
${
CROSS_COMPILE
}
clang++"
\
CXX
=
"
${
CROSS_COMPILE
}
clang++"
\
NM
=
"
${
CROSS_COMPILE
}
nm"
\
NM
=
"
${
CROSS_COMPILE
}
nm"
\
...
@@ -37,8 +22,8 @@ STRIP="${CROSS_COMPILE}strip" \
...
@@ -37,8 +22,8 @@ STRIP="${CROSS_COMPILE}strip" \
RANLIB
=
"
${
CROSS_COMPILE
}
ranlib"
\
RANLIB
=
"
${
CROSS_COMPILE
}
ranlib"
\
AR
=
"
${
CROSS_COMPILE
}
ar"
\
AR
=
"
${
CROSS_COMPILE
}
ar"
\
AS
=
"
${
CROSS_COMPILE
}
as"
\
AS
=
"
${
CROSS_COMPILE
}
as"
\
PKG_CONFIG_LIBDIR
=
$
RING_SRC
_DIR
/contrib/
$TARGET_TUPLE
/lib/pkgconfig
\
PKG_CONFIG_LIBDIR
=
$
DAEMON
_DIR
/contrib/
$TARGET_TUPLE
/lib/pkgconfig
\
$
RING_SRC
_DIR
/configure
--host
=
$TARGET_TUPLE
$EXTRA_PARAMS
\
$
DAEMON
_DIR
/configure
--host
=
$TARGET_TUPLE
$EXTRA_PARAMS
\
--disable-shared
--with-opensl
--without-dbus
--without-alsa
--without-pulse
--without-speexdsp
--enable-accel
\
--disable-shared
--with-opensl
--without-dbus
--without-alsa
--without-pulse
--without-speexdsp
--enable-accel
\
--prefix
=
$
RING_SRC
_DIR
/install-android-
$TARGET_TUPLE
\
--prefix
=
$
DAEMON
_DIR
/install-android-
$TARGET_TUPLE
\
$*
$*
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment