diff --git a/CMakeLists.txt b/CMakeLists.txt index e58f9f1246..ce4b99a05f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -524,8 +524,13 @@ endif (Boost_FOUND) # Compiler flags +include (CheckCCompilerFlag) +check_c_compiler_flag(-Wstringop-truncation have_stringop_truncation) +if (have_stringop_truncation) + set(HAVE_STRINGOP_TRUNCATION TRUE) +endif() + if (APPLE) - include (CheckCCompilerFlag) include (CheckCxxCompilerFlag) check_cxx_compiler_flag(-Wno-unused-local-typedef, have_wno_ult) if (have_wno_ult) diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt index df90698915..83509209c3 100644 --- a/bindings/python/CMakeLists.txt +++ b/bindings/python/CMakeLists.txt @@ -66,11 +66,17 @@ if(WITH_PYTHON) target_link_libraries(gnucash_core_c gncmod-app-utils gncmod-engine gnc-module ${GLIB_LIBS} ${PYTHON_LIBRARIES}) set_target_properties(gnucash_core_c PROPERTIES PREFIX "_") target_compile_options(gnucash_core_c PRIVATE -Wno-implicit -Wno-missing-prototypes -Wno-declaration-after-statement -Wno-missing-declarations) + if (HAVE_STRINGOP_TRUNCATION) + target_compile_options(gnucash_core_c PRIVATE -Wno-error=stringop-truncation) + endif() add_executable(sqlite3test EXCLUDE_FROM_ALL sqlite3test.c ${SWIG_GNUCASH_CORE_C}) target_link_libraries(sqlite3test gncmod-app-utils gncmod-engine gnc-module ${GLIB_LIBS} ${PYTHON_LIBRARIES}) target_include_directories(sqlite3test PRIVATE ${gnucash_core_c_INCLUDE_DIRS}) target_compile_options(sqlite3test PRIVATE -Wno-implicit -Wno-missing-prototypes -Wno-declaration-after-statement -Wno-missing-declarations) + if (HAVE_STRINGOP_TRUNCATION) + target_compile_options(sqlite3test PRIVATE -Wno-error=stringop-truncation) + endif() add_test(NAME sqlite3test COMMAND sqlite3test) add_dependencies(check sqlite3test) diff --git a/common/test-core/CMakeLists.txt b/common/test-core/CMakeLists.txt index 229cb39a06..b57ab5c3ac 100644 --- a/common/test-core/CMakeLists.txt +++ b/common/test-core/CMakeLists.txt @@ -48,6 +48,9 @@ if (WITH_PYTHON) target_link_libraries(unittest_support test-core ${PYTHON_LIBRARIES}) target_include_directories(unittest_support PRIVATE ${PYTHON_INCLUDE_DIRS}) set_target_properties(unittest_support PROPERTIES PREFIX "_") + if (HAVE_STRINGOP_TRUNCATION) + target_compile_options(unittest_support PRIVATE -Wno-error=stringop-truncation) + endif() endif() set(test_core_SCHEME unittest-support.scm) diff --git a/libgnucash/app-utils/CMakeLists.txt b/libgnucash/app-utils/CMakeLists.txt index d44dbe221f..eb6fd3d1df 100644 --- a/libgnucash/app-utils/CMakeLists.txt +++ b/libgnucash/app-utils/CMakeLists.txt @@ -116,6 +116,9 @@ if (WITH_PYTHON) target_link_libraries(sw_app_utils gncmod-app-utils ${app_utils_ALL_LIBRARIES} ${PYTHON_LIBRARIES}) set_target_properties(sw_app_utils PROPERTIES PREFIX "_") + if (HAVE_STRINGOP_TRUNCATION) + target_compile_options(sw_app_utils PRIVATE -Wno-error=stringop-truncation) + endif() target_include_directories (sw_app_utils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/libgnucash/core-utils/CMakeLists.txt b/libgnucash/core-utils/CMakeLists.txt index fa3972c248..0093de009c 100644 --- a/libgnucash/core-utils/CMakeLists.txt +++ b/libgnucash/core-utils/CMakeLists.txt @@ -171,6 +171,10 @@ if (WITH_PYTHON) target_link_libraries(sw_core_utils gnc-core-utils ${core_utils_ALL_LIBRARIES} ${PYTHON_LIBRARIES}) set_target_properties(sw_core_utils PROPERTIES PREFIX "_") + if (HAVE_STRINGOP_TRUNCATION) + target_compile_options(sw_core_utils PRIVATE -Wno-error=stringop-truncation) + endif() + target_include_directories (sw_core_utils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${core_utils_ALL_INCLUDES} ${PYTHON_INCLUDE_DIRS}