COMPMID-3023: Conditionally build test framework when needed.

Alters build system to build test framework only when at least one test
suite is needed.

Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Change-Id: I97cfe55b7727210249478e321a9fd150b84f898f
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2653
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giuseppe Rossini <giuseppe.rossini@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/tests/SConscript b/tests/SConscript
index a6668e1..5c95c55 100644
--- a/tests/SConscript
+++ b/tests/SConscript
@@ -26,8 +26,6 @@
 Import('vars')
 Import('install_bin')
 
-SConscript('./framework/SConscript', duplicate=0)
-
 # vars is imported from arm_compute:
 variables = [
     BoolVariable("benchmark_examples", "Build benchmark examples programs", True),
@@ -45,18 +43,31 @@
     new_options.Add(v)
     vars.Add(v)
 
-# Disable floating-point expression contraction (e.g. fused multiply-add operations)
-env.Append(CXXFLAGS = ['-ffp-contract=off'])
-
 # Clone the environment to make sure we're not polluting the arm_compute one:
 test_env = env.Clone()
 vars.Update(test_env)
 
 Help(new_options.GenerateHelpText(test_env))
 
+# Check if we need to build the test framework
+build_test_framework = False
+for opt in new_options.keys():
+    option_value = test_env[opt]
+    if type(option_value) is bool and option_value:
+        build_test_framework = True
+        break
+
+if not build_test_framework:
+    Return()
+else:
+    SConscript('./framework/SConscript', duplicate=0)
+
 Import("arm_compute_test_framework")
 test_env.Append(LIBS = arm_compute_test_framework)
 
+# Disable floating-point expression contraction (e.g. fused multiply-add operations)
+test_env.Append(CXXFLAGS = ['-ffp-contract=off'])
+
 # Remove -Wnoexcept from tests
 if 'g++' in test_env['CXX'] and '-Wnoexcept' in test_env['CXXFLAGS']:
     test_env['CXXFLAGS'].remove("-Wnoexcept")