From d9bfdcc774d6d8bccd485c8887b6da4363ff596b Mon Sep 17 00:00:00 2001 From: Yichao Yu Date: Mon, 16 May 2022 19:39:52 -0400 Subject: [PATCH] Allow override of prefix-map build flag By placing it before user supplied flags from the environment variables. --- CMakeLists.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e59fa562d3..bc2494e4a2e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,8 @@ configure_file( ${CMAKE_BINARY_DIR}/git_revision.h ) +# Custom flags that we'll put in front to allow override from ENV +set(PREFIX_FLAGS_COMMON "") set(FLAGS_COMMON "-D__USE_LARGEFILE64 -pthread") set(supports32bit true) set(x86ish false) @@ -69,18 +71,18 @@ configure_file(src/preload/rr_page.ld.in src/preload/rr_page.ld @ONLY) include(CheckCCompilerFlag) CHECK_C_COMPILER_FLAG("-fmacro-prefix-map=foo=bar" SUPPORTS_MACRO_PREFIX_MAP) if (SUPPORTS_MACRO_PREFIX_MAP) - set(FLAGS_COMMON "${FLAGS_COMMON} -fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=") + set(PREFIX_FLAGS_COMMON "${PREFIX_FLAGS_COMMON} -fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=") endif() -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS_COMMON} -Wstrict-prototypes -std=gnu11") +set(CMAKE_C_FLAGS "${PREFIX_FLAGS_COMMON} ${CMAKE_C_FLAGS} ${FLAGS_COMMON} -Wstrict-prototypes -std=gnu11") # Define __STDC_LIMIT_MACROS so |#include | works as expected. # Define __STDC_FORMAT_MACROS so |#include | works as expected. include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++14" SUPPORTS_CXX14) if (SUPPORTS_CXX14) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS_COMMON} -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS -std=c++14") + set(CMAKE_CXX_FLAGS "${PREFIX_FLAGS_COMMON} ${CMAKE_CXX_FLAGS} ${FLAGS_COMMON} -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS -std=c++14") else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS_COMMON} -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS -std=c++11") + set(CMAKE_CXX_FLAGS "${PREFIX_FLAGS_COMMON} ${CMAKE_CXX_FLAGS} ${FLAGS_COMMON} -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS -std=c++11") endif() # We support three build types: