summaryrefslogtreecommitdiff
blob: 58cfca04132e8f260859e6e999909e0b3bb94fe1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
https://github.com/oneapi-src/oneTBB/pull/716
https://bugs.gentoo.org/865837

From 9595b9699ae6863d1e0cf770a89728eafcaf8845 Mon Sep 17 00:00:00 2001
From: Christoph Erhardt <github@sicherha.de>
Date: Wed, 5 Jan 2022 15:13:32 +0100
Subject: [PATCH] Fix overeager stripping of compile flag

The existing regex strips all occurrences of the given string from
`${CMAKE_CXX_FLAGS}`, regardless of whether it is just a substring of a
flag. For instance, `-Werror=format-security` gets truncated to
`=format-security`.

The new regex makes sure that only whole words get replaced.

Signed-off-by: Christoph Erhardt <github@sicherha.de>
--- a/third-party/tbb/cmake/utils.cmake
+++ b/third-party/tbb/cmake/utils.cmake
@@ -18,7 +18,7 @@ macro(tbb_remove_compile_flag flag)
     set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY COMPILE_OPTIONS ${_tbb_compile_options})
     unset(_tbb_compile_options)
     if (CMAKE_CXX_FLAGS)
-        string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+        string(REGEX REPLACE "(^|[ \t\r\n]+)${flag}($|[ \t\r\n]+)" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
     endif()
 endmacro()