build: Allow separate optimization flags

Allow separate optimization flags for the BSP, cpukit, and tests.  For example,
the BSP and cpukit may be built without optimization if coverage
instrumentation is enabled, however, the tests may still use optimization.

Update #4670.
This commit is contained in:
Sebastian Huber
2022-06-27 11:28:34 +02:00
parent a0aaa394b6
commit a13047ca0e
13 changed files with 93 additions and 20 deletions

View File

@@ -7,6 +7,12 @@ guard: __BSP_OPTIONS_H
include-headers: []
install-path: ${BSP_INCLUDEDIR}
links:
- role: build-dependency
uid: optbspoptflags
- role: build-dependency
uid: optcpukitoptflags
- role: build-dependency
uid: opttestoptflags
- role: build-dependency
uid: optabi
- role: build-dependency
@@ -17,6 +23,8 @@ links:
uid: optfatalverb
- role: build-dependency
uid: optincludes
- role: build-dependency
uid: optcflags
- role: build-dependency
uid: optlinkflags
- role: build-dependency

View File

@@ -0,0 +1,18 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- get-string: null
- substitute: null
- split: null
- env-assign: null
build-type: option
copyrights:
- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
default: ${OPTIMIZATION_FLAGS}
default-by-variant: []
description: |
Optimization flags passed to C and C++ compilers for the BSP.
enabled-by: true
format: '{}'
links: []
name: BSP_OPTIMIZATION_FLAGS
type: build

View File

@@ -0,0 +1,17 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- set-value: |
${BSP_OPTIMIZATION_FLAGS}
- substitute: null
- split: null
- env-assign: null
build-type: option
copyrights:
- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
default: null
default-by-variant: []
description: ''
enabled-by: true
links: []
name: BSP_CFLAGS
type: build

View File

@@ -0,0 +1,18 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- get-string: null
- substitute: null
- split: null
- env-assign: null
build-type: option
copyrights:
- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
default: ${OPTIMIZATION_FLAGS}
default-by-variant: []
description: |
Optimization flags passed to C and C++ compilers for the CPU kit.
enabled-by: true
format: '{}'
links: []
name: CPUKIT_OPTIMIZATION_FLAGS
type: build

View File

@@ -3,8 +3,6 @@ actions:
- get-string: null
- split: null
- env-assign: null
- env-append: CFLAGS
- env-append: CXXFLAGS
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
@@ -15,7 +13,7 @@ default:
- -ffunction-sections
default-by-variant: []
description: |
Optimization flags passed to the C and C++ compiler
Default optimization flags for C and C++ compilers.
enabled-by: true
links: []
name: OPTIMIZATION_FLAGS

View File

@@ -3,8 +3,6 @@ actions:
- get-string: null
- split: null
- env-assign: null
- env-append: CFLAGS
- env-append: CXXFLAGS
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
@@ -15,7 +13,7 @@ default:
- -ffunction-sections
default-by-variant: []
description: |
Optimization flags passed to the C and C++ compiler
Default optimization flags for C and C++ compilers.
enabled-by: true
links: []
name: OPTIMIZATION_FLAGS

View File

@@ -3,8 +3,6 @@ actions:
- get-string: null
- split: null
- env-assign: null
- env-append: CFLAGS
- env-append: CXXFLAGS
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
@@ -15,7 +13,7 @@ default:
- -ffunction-sections
default-by-variant: []
description: |
Optimization flags passed to the C and C++ compiler
Default optimization flags for C and C++ compilers.
enabled-by: true
links: []
name: OPTIMIZATION_FLAGS

View File

@@ -3,8 +3,6 @@ actions:
- get-string: null
- split: null
- env-assign: null
- env-append: CFLAGS
- env-append: CXXFLAGS
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
@@ -15,7 +13,7 @@ default:
- -ffunction-sections
default-by-variant: []
description: |
Optimization flags passed to the C and C++ compiler
Default optimization flags for C and C++ compilers.
enabled-by: true
links: []
name: OPTIMIZATION_FLAGS

View File

@@ -3,8 +3,6 @@ actions:
- get-string: null
- split: null
- env-assign: null
- env-append: CFLAGS
- env-append: CXXFLAGS
build-type: option
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
@@ -15,7 +13,7 @@ default:
- -ffunction-sections
default-by-variant: []
description: |
Optimization flags passed to the C and C++ compiler
Default optimization flags for C and C++ compilers.
enabled-by: true
links: []
name: OPTIMIZATION_FLAGS

View File

@@ -0,0 +1,18 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
actions:
- get-string: null
- substitute: null
- split: null
- env-assign: null
build-type: option
copyrights:
- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
default: ${OPTIMIZATION_FLAGS}
default-by-variant: []
description: |
Optimization flags passed to C and C++ compiler for tests.
enabled-by: true
format: '{}'
links: []
name: TEST_OPTIMIZATION_FLAGS
type: build

View File

@@ -1,10 +1,12 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
build-type: group
cflags: []
cflags:
- ${CPUKIT_OPTIMIZATION_FLAGS}
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
cppflags: []
cxxflags: []
cxxflags:
- ${CPUKIT_OPTIMIZATION_FLAGS}
enabled-by: true
includes: []
install: []

View File

@@ -1,10 +1,12 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
build-type: group
cflags: []
cflags:
- ${TEST_OPTIMIZATION_FLAGS}
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
cppflags: []
cxxflags: []
cxxflags:
- ${TEST_OPTIMIZATION_FLAGS}
enabled-by: true
includes:
- ${BSP_INCLUDES}

View File

@@ -625,7 +625,7 @@ class BSPItem(Item):
+ bld.env.BSP_INCLUDES
+ self.substitute(bld, self.data["includes"]),
self.substitute(bld, self.data["cppflags"]),
self.substitute(bld, self.data["cflags"]),
bld.env.BSP_CFLAGS + self.substitute(bld, self.data["cflags"]),
[],
[],
[],