wireshark/cmake/modules/UseLemon.cmake

30 lines
817 B
CMake
Raw Normal View History

#
MACRO(ADD_LEMON_FILES _source _generated)
set(_lemonpardir ${CMAKE_SOURCE_DIR}/tools/lemon)
FOREACH (_current_FILE ${ARGN})
GET_FILENAME_COMPONENT(_in ${_current_FILE} ABSOLUTE)
GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename})
ADD_CUSTOM_COMMAND(
OUTPUT
${_out}.c
# These files are generated as side-effect
${_out}.h
${_out}.out
COMMAND $<TARGET_FILE:lemon>
lemon: sync with upstream (2018-09-08) Changes: - Drop the old basename modification that was present in the Wireshark version of lemon.c. Use a new option available since 2018-04-20 ("Add the -dDIRECTORY command-line option to LEMON.") - Redo the static analyzer warning fixes, identifying the root causes and adding assertions instead of hiding code with __clang_analyzer__. - Ignore compiler warnings instead of adding config.h, _U_, extra const keywords, unsigned/signed changes, etc. - Remove lemon.html, it is out-of-date and external links are available. In order to make future updates easier, document the exact steps that were followed to create the lemon.c and lempar.c files. Future changes SHOULD follow the same process. My process to reach this updated lemon version: 1. Identify previous sync. Found v2.5.2rc0-147-g653af0f6d0 ("lemon: Sync with latest trunk.") which seems based on sqlite commit 2b3d584ffe. 2. Check successive Wireshark patches. Identified many non-functional changes to silence compiler warnings and static analyzer issues. Found one feature (basename) that can be replaced with upstream -d. 3. Write minimal patches and document changes. Upstream typos and coding style issues (other than trailing whitespace) were deliberately not fixed to remain as close as possible to upstream. Change-Id: I606f46dede86e34520f962a9e7163912392aad57 Reviewed-on: https://code.wireshark.org/review/30290 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-10-20 17:29:43 +00:00
-T${_lemonpardir}/lempar.c
-d.
${_in}
DEPENDS
${_in}
lemon
${_lemonpardir}/lempar.c
)
LIST(APPEND ${_source} ${_in})
LIST(APPEND ${_generated} ${_out}.c)
ENDFOREACH (_current_FILE)
ENDMACRO(ADD_LEMON_FILES)