aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Tello <pablo.tello@arm.com>2017-06-21 15:39:47 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-09-17 14:14:20 +0100
commitc6cb35a1935cde168f4b72d8782c21a344e78623 (patch)
treebdd5ec8c02702868d6a0b63db49c9bb3e5a253e0
parentee12254d4aae887ba654aa26bebc2e1330fc0a88 (diff)
downloadComputeLibrary-c6cb35a1935cde168f4b72d8782c21a344e78623.tar.gz
COMPMID-345: Updated scons scripts to link computer_vision statically against libgcc, libstdc++ and computer_vision.
This is needed to run 'computer_vision' on the ARM 8.2-a + FP16 Fast model. Change-Id: I66d6427e4d4117b7995c35ec9df1dea5b3f22205 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/78429 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
-rw-r--r--SConscript16
-rw-r--r--SConstruct5
-rw-r--r--examples/SConscript6
-rw-r--r--tests/SConscript6
4 files changed, 23 insertions, 10 deletions
diff --git a/SConscript b/SConscript
index 970466e5ae..a53501d405 100644
--- a/SConscript
+++ b/SConscript
@@ -178,7 +178,7 @@ shared_core_objects = [arm_compute_env.SharedObject(f) for f in core_files]
arm_compute_core_a = build_library('arm_compute_core-static', static_core_objects, static=True)
Export('arm_compute_core_a')
-if env['os'] != 'bare_metal':
+if env['os'] != 'bare_metal' and not env['standalone']:
arm_compute_core_so = build_library('arm_compute_core', shared_core_objects, static=False)
Export('arm_compute_core_so')
@@ -188,12 +188,20 @@ static_objects = [arm_compute_env.StaticObject(f) for f in files]
arm_compute_a = build_library('arm_compute-static', static_core_objects + static_objects, static=True)
Export('arm_compute_a')
-if env['os'] != 'bare_metal':
+if env['os'] != 'bare_metal' and not env['standalone']:
arm_compute_so = build_library('arm_compute', shared_core_objects + shared_objects, static=False)
Export('arm_compute_so')
-alias = arm_compute_env.Alias("arm_compute", [arm_compute_a, arm_compute_so])
+if env['standalone']:
+ alias = arm_compute_env.Alias("arm_compute", [arm_compute_a])
+else:
+ alias = arm_compute_env.Alias("arm_compute", [arm_compute_a, arm_compute_so])
+
Default(alias)
Default(generate_embed)
-Depends([alias,arm_compute_core_so, arm_compute_core_a], generate_embed)
+
+if env['standalone']:
+ Depends([alias,arm_compute_core_a], generate_embed)
+else:
+ Depends([alias,arm_compute_core_so, arm_compute_core_a], generate_embed)
diff --git a/SConstruct b/SConstruct
index 3927e3acc9..e23b2d239e 100644
--- a/SConstruct
+++ b/SConstruct
@@ -44,6 +44,7 @@ vars.AddVariables(
EnumVariable("build", "Build type", "cross_compile", allowed_values=("native", "cross_compile")),
BoolVariable("examples", "Build example programs", True),
BoolVariable("Werror", "Enable/disable the -Werror compilation flag", True),
+ BoolVariable("standalone", "Builds the tests as standalone executables, links statically with libgcc, libstdc++ and libarm_compute", False),
BoolVariable("opencl", "Enable OpenCL support", True),
BoolVariable("neon", "Enable Neon support", False),
BoolVariable("embed_kernels", "Embed OpenCL kernels in library binary", False),
@@ -161,6 +162,10 @@ if not GetOption("help"):
if compiler_ver == '4.8.3':
env.Append(CXXFLAGS = ['-Wno-array-bounds'])
+if env['standalone']:
+ env.Append(CXXFLAGS = ['-fPIC'])
+ env.Append(LINKFLAGS = ['-static-libgcc','-static-libstdc++'])
+
if env['Werror']:
env.Append(CXXFLAGS = ['-Werror'])
diff --git a/examples/SConscript b/examples/SConscript
index 748f771ec7..04569c6ceb 100644
--- a/examples/SConscript
+++ b/examples/SConscript
@@ -23,8 +23,6 @@ import SCons
import os.path
Import('env')
-Import('arm_compute_a')
-Import('arm_compute_so')
if env['opencl']:
Import('opencl')
@@ -38,10 +36,12 @@ examples_env.Append(LIBPATH = ["#build/%s/opencl-1.2-stubs" % env['build_dir']])
# Build examples
utils = examples_env.Object("../utils/Utils.cpp")
-if env['os'] in ['android', 'bare_metal']:
+if env['os'] in ['android', 'bare_metal'] or env['standalone']:
+ Import('arm_compute_a')
arm_compute_lib = arm_compute_a
arm_compute_dependency = arm_compute_a
else:
+ Import('arm_compute_so')
arm_compute_lib = "arm_compute"
arm_compute_dependency = arm_compute_so
diff --git a/tests/SConscript b/tests/SConscript
index 6be4ddb35e..8da1d2fa33 100644
--- a/tests/SConscript
+++ b/tests/SConscript
@@ -24,8 +24,6 @@ import os.path
Import('env')
Import('vars')
-Import('arm_compute_a')
-Import('arm_compute_so')
# vars is imported from arm_compute:
variables = [
@@ -49,10 +47,12 @@ vars.Update(common_env)
Help(new_options.GenerateHelpText(common_env))
-if env['os'] in ['android', 'bare_metal']:
+if env['os'] in ['android', 'bare_metal'] or env['standalone']:
+ Import('arm_compute_a')
common_env.Append(LIBS = [arm_compute_a])
arm_compute_lib = arm_compute_a
else:
+ Import('arm_compute_so')
common_env.Append(LIBS = ["arm_compute"])
arm_compute_lib = arm_compute_so