]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #3674: js_norm: add CMake command for noreturn attribute in LexerError
authorOleksii Shumeiko -X (oshumeik - SOFTSERVE INC at Cisco) <oshumeik@cisco.com>
Wed, 23 Nov 2022 08:36:42 +0000 (08:36 +0000)
committerOleksii Shumeiko -X (oshumeik - SOFTSERVE INC at Cisco) <oshumeik@cisco.com>
Wed, 23 Nov 2022 08:36:42 +0000 (08:36 +0000)
Merge in SNORT/snort3 from ~OSERHIIE/snort3:js_module_fix to master

Squashed commit of the following:

commit c7331f2da7b88e955bdbf06cc635e6007524a89f
Author: Oleksandr Serhiienko <oserhiie@cisco.com>
Date:   Thu Nov 17 12:51:20 2022 +0100

    js_norm: use FLEX macro to build parser

commit a5b99c366582d785951e9dfa130d65d7eefc7fc4
Author: Oleksandr Serhiienko <oserhiie@cisco.com>
Date:   Mon Nov 21 15:03:27 2022 +0100

    cmake: add FLEX build macro

cmake/FindFlexLexer.cmake
src/js_norm/CMakeLists.txt
src/js_norm/test/CMakeLists.txt

index 3b175c345a73e75d910c5e543df36b84d1edc402..1b686d544d238a140b0554f37aed05d5e6f2490e 100644 (file)
@@ -8,3 +8,23 @@ find_path(FLEX_INCLUDES "FlexLexer.h"
 )
 
 mark_as_advanced(FLEX_INCLUDES)
+
+macro(FLEX NAME LEXER_IN LEXER_OUT)
+    FLEX_TARGET(${NAME}
+        ${LEXER_IN}
+        ${LEXER_OUT}.tmp
+        COMPILE_FLAGS ${FLEX_FLAGS}
+    )
+
+    # we use '+' as a separator for 'sed' to avoid conflicts with '/' in paths from LEXER_OUT
+    add_custom_command(
+        OUTPUT ${LEXER_OUT}
+        COMMAND sed -e
+            "s+void yyFlexLexer::LexerError+yynoreturn void yyFlexLexer::LexerError+;s+${LEXER_OUT}.tmp+${LEXER_OUT}+"
+            ${FLEX_${NAME}_OUTPUTS} > ${LEXER_OUT}
+        DEPENDS ${FLEX_${NAME}_OUTPUTS}
+        VERBATIM
+    )
+
+    set(${NAME}_OUTPUTS ${LEXER_OUT})
+endmacro()
index 30a376c630ce4fd10fb88aeb5364dad1d25e128d..7128c458b9144d2667eefc4335dd1806441199c5 100644 (file)
@@ -1,11 +1,10 @@
-FLEX_TARGET ( js_tokenizer
+FLEX ( js_tokenizer
     ${CMAKE_CURRENT_SOURCE_DIR}/js_tokenizer.l
     ${CMAKE_CURRENT_BINARY_DIR}/js_tokenizer.cc
-    COMPILE_FLAGS ${FLEX_FLAGS}
 )
 
 set ( JS_SOURCES
-    ${FLEX_js_tokenizer_OUTPUTS}
+    ${js_tokenizer_OUTPUTS}
     js_config.h
     js_enum.h
     js_identifier_ctx.cc
index bb4634c96908bd202403a067816665c5ce353ad6..4dce8615b0a95aaf64c0441a95b179629b504956 100644 (file)
@@ -1,11 +1,11 @@
-FLEX_TARGET ( js_tokenizer ${CMAKE_CURRENT_SOURCE_DIR}/../js_tokenizer.l
+FLEX ( js_tokenizer
+    ${CMAKE_CURRENT_SOURCE_DIR}/../js_tokenizer.l
     ${CMAKE_CURRENT_BINARY_DIR}/../js_tokenizer.cc
-    COMPILE_FLAGS ${FLEX_FLAGS}
 )
 
 add_catch_test( js_normalizer_test
     SOURCES
-        ${FLEX_js_tokenizer_OUTPUTS}
+        ${js_tokenizer_OUTPUTS}
         ../js_identifier_ctx.cc
         ../js_normalizer.cc
         ${CMAKE_SOURCE_DIR}/src/utils/streambuf.cc
@@ -18,7 +18,7 @@ add_catch_test( js_normalizer_test
 if (ENABLE_BENCHMARK_TESTS)
     add_catch_test( js_norm_benchmark
         SOURCES
-            ${FLEX_js_tokenizer_OUTPUTS}
+            ${js_tokenizer_OUTPUTS}
             ../js_identifier_ctx.cc
             ../js_normalizer.cc
             ${CMAKE_SOURCE_DIR}/src/utils/streambuf.cc
@@ -31,7 +31,7 @@ endif(ENABLE_BENCHMARK_TESTS)
 
 add_catch_test( js_dealias_test
     SOURCES
-        ${FLEX_js_tokenizer_OUTPUTS}
+        ${js_tokenizer_OUTPUTS}
         ../js_identifier_ctx.cc
         ../js_normalizer.cc
         ${CMAKE_SOURCE_DIR}/src/utils/streambuf.cc
@@ -43,7 +43,7 @@ add_catch_test( js_dealias_test
 
 add_catch_test( js_unescape_test
     SOURCES
-        ${FLEX_js_tokenizer_OUTPUTS}
+        ${js_tokenizer_OUTPUTS}
         ../js_identifier_ctx.cc
         ../js_normalizer.cc
         ${CMAKE_SOURCE_DIR}/src/utils/streambuf.cc
@@ -61,7 +61,7 @@ add_catch_test( js_identifier_ctx_test
 
 add_catch_test( jsn_test
     SOURCES
-        ${FLEX_js_tokenizer_OUTPUTS}
+        ${js_tokenizer_OUTPUTS}
         ../js_identifier_ctx.cc
         ../js_norm.cc
         ../js_normalizer.cc