nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 217 lines 7.3 kB view raw
1From 92f25181dbf722cb749e445851580df4ea779299 Mon Sep 17 00:00:00 2001 2From: Luna Nova <git@lunnova.dev> 3Date: Sun, 21 Dec 2025 08:01:08 -0800 4Subject: [PATCH 1/2] fix(rdc): set CMAKE_CXX_FLAGS after project() to avoid 5 clobbering env 6 7CMAKE_CXX_FLAGS' initial value is set from $CXXFLAGS on project() call 8so the previous location ignored CXXFLAGS from env or CMake toolchain 9config. 10 11Ref: https://cmake.org/cmake/help/v4.2/variable/CMAKE_LANG_FLAGS_INIT.html 12Fixes: 874a7b438f ("CMAKE - Fix build types") 13--- 14 CMakeLists.txt | 48 +++++++++++++++++++------------------ 15 1 file changed, 25 insertions(+), 23 deletions(-) 16 17diff --git a/CMakeLists.txt b/CMakeLists.txt 18index 907c9fbff42..8b386c7be3d 100755 19--- a/CMakeLists.txt 20+++ b/CMakeLists.txt 21@@ -55,29 +55,6 @@ set_property( 22 PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" "MinSizeRel" 23 ) 24 25-# Set compile flags 26-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2") 27-set(CMAKE_CXX_FLAGS_DEBUG 28- "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" 29- CACHE STRING 30- "Flags for Debug builds" 31-) 32-set(CMAKE_CXX_FLAGS_RELEASE 33- "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG" 34- CACHE STRING 35- "Flags for Release builds" 36-) 37-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO 38- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" 39- CACHE STRING 40- "Flags for RelWithDebInfo builds" 41-) 42-set(CMAKE_CXX_FLAGS_MINSIZEREL 43- "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" 44- CACHE STRING 45- "Flags for MinSizeRel builds" 46-) 47- 48 set(CMAKE_MODULE_PATH 49 "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/" 50 CACHE INTERNAL 51@@ -155,6 +132,31 @@ project(${RDC} VERSION "${VERSION_STRING}" HOMEPAGE_URL "https://github.com/Rade 52 # this must go after project() 53 include(GNUInstallDirs) 54 55+# NB: CMAKE_<LANG>_FLAGS are initialized from environment (CXXFLAGS et al.) 56+# during project(). Setting them before project() discards env and toolchain 57+# defaults. Cf. CMAKE_<LANG>_FLAGS_INIT for toolchain overrides. 58+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2") 59+set(CMAKE_CXX_FLAGS_DEBUG 60+ "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" 61+ CACHE STRING 62+ "Flags for Debug builds" 63+) 64+set(CMAKE_CXX_FLAGS_RELEASE 65+ "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG" 66+ CACHE STRING 67+ "Flags for Release builds" 68+) 69+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO 70+ "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" 71+ CACHE STRING 72+ "Flags for RelWithDebInfo builds" 73+) 74+set(CMAKE_CXX_FLAGS_MINSIZEREL 75+ "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" 76+ CACHE STRING 77+ "Flags for MinSizeRel builds" 78+) 79+ 80 set(COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/common") 81 82 set(GRPC_ROOT_DEFAULT "/usr") 83 84From 0c8710c3570963b29c709b1cd1f78b15fd73a950 Mon Sep 17 00:00:00 2001 85From: Luna Nova <git@lunnova.dev> 86Date: Sun, 21 Dec 2025 08:13:04 -0800 87Subject: [PATCH 2/2] fix(rdc): don't reimplement CMake default build type flag 88 logic 89 90The previous approach was overly complicated and added nothing. CMake already defaults 91similar flags for each of the default supported build types. 92Additionally, the previous flags broke AArch64 as -m64 -msse are incompatible. 93It's not necessary to explicitly set this with modern toolchains. 94 95Fixes: 874a7b438f ("CMAKE - Fix build types") 96Fixes: bc7f01e992 ("Initial RDC commit") 97--- 98 CMakeLists.txt | 25 +--------------------- 99 example/CMakeLists.txt | 26 ++--------------------- 100 tests/example/CMakeLists.txt | 24 +-------------------- 101 3 files changed, 4 insertions(+), 71 deletions(-) 102 103diff --git a/CMakeLists.txt b/CMakeLists.txt 104index 8b386c7be3d..251fcddd653 100755 105--- a/CMakeLists.txt 106+++ b/CMakeLists.txt 107@@ -132,30 +132,7 @@ project(${RDC} VERSION "${VERSION_STRING}" HOMEPAGE_URL "https://github.com/Rade 108 # this must go after project() 109 include(GNUInstallDirs) 110 111-# NB: CMAKE_<LANG>_FLAGS are initialized from environment (CXXFLAGS et al.) 112-# during project(). Setting them before project() discards env and toolchain 113-# defaults. Cf. CMAKE_<LANG>_FLAGS_INIT for toolchain overrides. 114-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2") 115-set(CMAKE_CXX_FLAGS_DEBUG 116- "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" 117- CACHE STRING 118- "Flags for Debug builds" 119-) 120-set(CMAKE_CXX_FLAGS_RELEASE 121- "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG" 122- CACHE STRING 123- "Flags for Release builds" 124-) 125-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO 126- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" 127- CACHE STRING 128- "Flags for RelWithDebInfo builds" 129-) 130-set(CMAKE_CXX_FLAGS_MINSIZEREL 131- "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" 132- CACHE STRING 133- "Flags for MinSizeRel builds" 134-) 135+add_compile_options(-Wall -Wextra) 136 137 set(COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/common") 138 139diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt 140index 378a2005818..7c51307ec38 100755 141--- a/example/CMakeLists.txt 142+++ b/example/CMakeLists.txt 143@@ -31,30 +31,6 @@ cmake_minimum_required(VERSION 3.15) 144 option(CMAKE_VERBOSE_MAKEFILE "Enable verbose output" ON) 145 option(CMAKE_EXPORT_COMPILE_COMMANDS "Export compile commands for linters and autocompleters" ON) 146 147-# Set compile flags 148-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2") 149-set(CMAKE_CXX_FLAGS_DEBUG 150- "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" 151- CACHE STRING 152- "Flags for Debug builds" 153-) 154-# note: no '-s' here unlike other CMakeLists.txt 155-set(CMAKE_CXX_FLAGS_RELEASE 156- "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG" 157- CACHE STRING 158- "Flags for Release builds" 159-) 160-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO 161- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" 162- CACHE STRING 163- "Flags for RelWithDebInfo builds" 164-) 165-set(CMAKE_CXX_FLAGS_MINSIZEREL 166- "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" 167- CACHE STRING 168- "Flags for MinSizeRel builds" 169-) 170- 171 set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard to use") 172 set(CMAKE_CXX_STANDARD_REQUIRED ON) 173 set(CMAKE_CXX_EXTENSIONS OFF) 174@@ -66,6 +42,8 @@ endif() 175 176 project(RDC_example) 177 178+add_compile_options(-Wall -Wextra) 179+ 180 # provides cmake_print_variables(VAR) 181 include(CMakePrintHelpers) 182 183diff --git a/tests/example/CMakeLists.txt b/tests/example/CMakeLists.txt 184index d5614f387bd..13c2f3857a1 100755 185--- a/tests/example/CMakeLists.txt 186+++ b/tests/example/CMakeLists.txt 187@@ -22,29 +22,7 @@ message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") 188 message(" Cmake Example Lib ") 189 message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") 190 191-# Set compile flags 192-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2") 193-set(CMAKE_CXX_FLAGS_DEBUG 194- "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" 195- CACHE STRING 196- "Flags for Debug builds" 197-) 198-# note: no '-s' here unlike other CMakeLists.txt 199-set(CMAKE_CXX_FLAGS_RELEASE 200- "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG" 201- CACHE STRING 202- "Flags for Release builds" 203-) 204-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO 205- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" 206- CACHE STRING 207- "Flags for RelWithDebInfo builds" 208-) 209-set(CMAKE_CXX_FLAGS_MINSIZEREL 210- "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" 211- CACHE STRING 212- "Flags for MinSizeRel builds" 213-) 214+add_compile_options(-Wall -Wextra) 215 216 # Required Defines first: 217