From 92057bbcb1eb6e4df18f011a3ae2de92cb2efdb2 Mon Sep 17 00:00:00 2001 From: Maor Hamami Date: Tue, 10 Mar 2026 13:53:49 +0200 Subject: [PATCH 1/2] [windows] fix spicy build --- BuiltInSpicyAnalyzer.cmake | 4 ++++ ConfigureSpicyBuild.cmake | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/BuiltInSpicyAnalyzer.cmake b/BuiltInSpicyAnalyzer.cmake index 7d69d6e..e7470d3 100644 --- a/BuiltInSpicyAnalyzer.cmake +++ b/BuiltInSpicyAnalyzer.cmake @@ -96,6 +96,10 @@ function (spicy_add_analyzer) target_compile_features(${lib} PRIVATE ${ZEEK_CXX_STD}) set_target_properties(${lib} PROPERTIES CXX_EXTENSIONS OFF) + if (MSVC) + target_compile_options(${lib} PRIVATE /bigobj /wd4716) + endif () + target_include_directories(${lib} PRIVATE ${SPICY_PLUGIN_PATH}/include ${SPICY_PLUGIN_BINARY_PATH}/include) target_compile_definitions(${lib} PRIVATE HILTI_MANUAL_PREINIT) diff --git a/ConfigureSpicyBuild.cmake b/ConfigureSpicyBuild.cmake index fb58c93..3f81324 100644 --- a/ConfigureSpicyBuild.cmake +++ b/ConfigureSpicyBuild.cmake @@ -23,13 +23,18 @@ set(_spicy_targets spicy-dump) include(CheckCXXCompilerFlag) -check_cxx_compiler_flag("-Wno-changes-meaning" _has_no_changes_meaning_flag) +if (NOT MSVC) + check_cxx_compiler_flag("-Wno-changes-meaning" _has_no_changes_meaning_flag) +endif () foreach (_target ${_spicy_targets}) # Spicy uses slightly less strict warnings than Zeek proper. Mute a few # warnings for Spicy. - target_compile_options(${_target} PRIVATE -Wno-missing-braces -Wno-vla) - if (_has_no_changes_meaning_flag) + if (NOT MSVC) + target_compile_options(${_target} PRIVATE -Wno-missing-braces -Wno-vla) + endif () + + if (NOT MSVC AND _has_no_changes_meaning_flag) # GCC 13 adds a new flag to check whether a symbol changes meaning. Due # to an issue in one of the dependencies used by Spicy, this causes # Zeek to fail to build on that compiler. Until this is fixed, ignore From dd6f6ca4ef39e3c9537cf85e1aa2e94b546882e7 Mon Sep 17 00:00:00 2001 From: Maor Hamami Date: Wed, 11 Mar 2026 20:45:32 +0200 Subject: [PATCH 2/2] modify builtInSpicyAnalayzer --- BuiltInSpicyAnalyzer.cmake | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/BuiltInSpicyAnalyzer.cmake b/BuiltInSpicyAnalyzer.cmake index e7470d3..b8a934b 100644 --- a/BuiltInSpicyAnalyzer.cmake +++ b/BuiltInSpicyAnalyzer.cmake @@ -103,7 +103,21 @@ function (spicy_add_analyzer) target_include_directories(${lib} PRIVATE ${SPICY_PLUGIN_PATH}/include ${SPICY_PLUGIN_BINARY_PATH}/include) target_compile_definitions(${lib} PRIVATE HILTI_MANUAL_PREINIT) - target_link_libraries(${lib} hilti spicy $) + + if (SPICY_ROOT_DIR) + target_link_libraries(${lib} PRIVATE hilti spicy $) + else () + target_link_libraries(${lib} PRIVATE $) + + if (BINARY_PACKAGING_MODE) + hilti_link_object_libraries_in_tree(${lib} PRIVATE) + spicy_link_object_libraries_in_tree(${lib} PRIVATE) + else () + hilti_link_libraries_in_tree(${lib} PRIVATE) + spicy_link_libraries_in_tree(${lib} PRIVATE) + endif () + endif () + prefer_configured_spicy_include_dirs(${lib}) # Feed into the main Zeek target(s).