From 451849c1c87ae0b4faafc98bb6feb1bd424c9a56 Mon Sep 17 00:00:00 2001 From: Marco Barbone Date: Tue, 30 Jun 2026 12:28:20 -0400 Subject: [PATCH] fix: accumulate AVX2 and FMA compile flags on avx2 codelets COMPILE_FLAGS is a single-valued property, so the HAVE_FMA block overwrote AVX2_FLAG set by the HAVE_AVX2 block, leaving the avx2 codelets compiled with only -mfma. __AVX2__ was then undefined and the build failed with: simd-avx2-128.h: error: "compiling simd-avx2-128.h without avx2 support" Use set_property(... APPEND_STRING ...) so both -mavx2 and -mfma are applied. --- CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e2ffd464..c6c6a18d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -338,9 +338,11 @@ if (HAVE_AVX2) PROPERTIES COMPILE_FLAGS "${AVX2_FLAG}") endif () if (HAVE_FMA) - set_source_files_properties (${fftw_dft_simd_avx2_SOURCE} - ${fftw_rdft_simd_avx2_SOURCE} - PROPERTIES COMPILE_FLAGS "${FMA_FLAG}") + # APPEND_STRING, not PROPERTIES COMPILE_FLAGS: COMPILE_FLAGS is single-valued, + # so a plain set here would clobber AVX2_FLAG above and drop -mavx2. + set_property (SOURCE ${fftw_dft_simd_avx2_SOURCE} + ${fftw_rdft_simd_avx2_SOURCE} + APPEND_STRING PROPERTY COMPILE_FLAGS " ${FMA_FLAG}") endif () if (HAVE_LIBM) target_link_libraries (${fftw3_lib} m)