diff --git a/DEPENDENCIES b/DEPENDENCIES index 550995c9..339493e4 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -1,5 +1,5 @@ vendorpull https://github.com/sourcemeta/vendorpull 70342aaf458e6cb80baeb5b718901075fc42ede6 -noa https://github.com/sourcemeta/noa 7e26abce7a4e31e86a16ef2851702a56773ca527 +noa https://github.com/sourcemeta/noa 517e88aef5981b88ac6bb8caff15d17dffcb4320 jsontoolkit https://github.com/sourcemeta/jsontoolkit a3765c8038ba4271e55318a677f6366bdaa7b805 bearssl https://www.bearssl.org/git/BearSSL 8ef7680081c61b486622f2d983c0d3d21e83caad zlib https://github.com/madler/zlib 51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf diff --git a/vendor/noa/cmake/noa/compiler/options.cmake b/vendor/noa/cmake/noa/compiler/options.cmake index c8597818..b1fc6e53 100644 --- a/vendor/noa/cmake/noa/compiler/options.cmake +++ b/vendor/noa/cmake/noa/compiler/options.cmake @@ -40,6 +40,8 @@ function(noa_add_default_options visibility target) -Wnon-virtual-dtor -Woverloaded-virtual -Winvalid-offsetof + -funroll-loops + -fstrict-aliasing # Assume that signed arithmetic overflow of addition, subtraction and # multiplication wraps around using twos-complement representation @@ -68,6 +70,18 @@ function(noa_add_default_options visibility target) -Wc++11-extensions -Wcomma -Wno-exit-time-destructors - -Wrange-loop-analysis) + -Wrange-loop-analysis + + # Enable loop vectorization for performance reasons + -fvectorize + # Enable vectorization of straight-line code for performance + -fslp-vectorize) + elseif(NOA_COMPILER_GCC) + target_compile_options("${target}" ${visibility} + # Newer versions of GCC (i.e. 14) seem to print a lot of false-positives here + -Wno-dangling-reference + + # Disables runtime type information + -fno-rtti) endif() endfunction() diff --git a/vendor/noa/cmake/noa/library.cmake b/vendor/noa/cmake/noa/library.cmake index 56e152b6..05d57748 100644 --- a/vendor/noa/cmake/noa/library.cmake +++ b/vendor/noa/cmake/noa/library.cmake @@ -22,13 +22,14 @@ function(noa_library) if(NOA_LIBRARY_SOURCES) set(ABSOLUTE_PRIVATE_HEADERS "${CMAKE_CURRENT_BINARY_DIR}/${NOA_LIBRARY_NAME}_export.h") - foreach(private_header IN LISTS NOA_LIBRARY_PRIVATE_HEADERS) - list(APPEND ABSOLUTE_PRIVATE_HEADERS "${INCLUDE_PREFIX}/${NOA_LIBRARY_NAME}_${private_header}") - endforeach() else() set(ABSOLUTE_PRIVATE_HEADERS) endif() + foreach(private_header IN LISTS NOA_LIBRARY_PRIVATE_HEADERS) + list(APPEND ABSOLUTE_PRIVATE_HEADERS "${INCLUDE_PREFIX}/${NOA_LIBRARY_NAME}_${private_header}") + endforeach() + if(NOA_LIBRARY_NAMESPACE) set(TARGET_NAME "${NOA_LIBRARY_NAMESPACE}_${NOA_LIBRARY_PROJECT}_${NOA_LIBRARY_NAME}") set(ALIAS_NAME "${NOA_LIBRARY_NAMESPACE}::${NOA_LIBRARY_PROJECT}::${NOA_LIBRARY_NAME}")