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: [] include-headers: []
install-path: ${BSP_INCLUDEDIR} install-path: ${BSP_INCLUDEDIR}
links: links:
- role: build-dependency
uid: optbspoptflags
- role: build-dependency
uid: optcpukitoptflags
- role: build-dependency
uid: opttestoptflags
- role: build-dependency - role: build-dependency
uid: optabi uid: optabi
- role: build-dependency - role: build-dependency
@@ -17,6 +23,8 @@ links:
uid: optfatalverb uid: optfatalverb
- role: build-dependency - role: build-dependency
uid: optincludes uid: optincludes
- role: build-dependency
uid: optcflags
- role: build-dependency - role: build-dependency
uid: optlinkflags uid: optlinkflags
- role: build-dependency - 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 - get-string: null
- split: null - split: null
- env-assign: null - env-assign: null
- env-append: CFLAGS
- env-append: CXXFLAGS
build-type: option build-type: option
copyrights: copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
@@ -15,7 +13,7 @@ default:
- -ffunction-sections - -ffunction-sections
default-by-variant: [] default-by-variant: []
description: | description: |
Optimization flags passed to the C and C++ compiler Default optimization flags for C and C++ compilers.
enabled-by: true enabled-by: true
links: [] links: []
name: OPTIMIZATION_FLAGS name: OPTIMIZATION_FLAGS

View File

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

View File

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

View File

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

View File

@@ -3,8 +3,6 @@ actions:
- get-string: null - get-string: null
- split: null - split: null
- env-assign: null - env-assign: null
- env-append: CFLAGS
- env-append: CXXFLAGS
build-type: option build-type: option
copyrights: copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
@@ -15,7 +13,7 @@ default:
- -ffunction-sections - -ffunction-sections
default-by-variant: [] default-by-variant: []
description: | description: |
Optimization flags passed to the C and C++ compiler Default optimization flags for C and C++ compilers.
enabled-by: true enabled-by: true
links: [] links: []
name: OPTIMIZATION_FLAGS 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 SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
build-type: group build-type: group
cflags: [] cflags:
- ${CPUKIT_OPTIMIZATION_FLAGS}
copyrights: copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
cppflags: [] cppflags: []
cxxflags: [] cxxflags:
- ${CPUKIT_OPTIMIZATION_FLAGS}
enabled-by: true enabled-by: true
includes: [] includes: []
install: [] install: []

View File

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

View File

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