forked from osmocom/wireshark
Run abicheck commands at compile time.
The CMake dumpbabi targets collectively copy over 800 files. Do that when when we build the actual targets instead of at configure time. Hopefully this will speed up initial CMake runs. Change-Id: I6e4d691e24c73ea05d638a0f897f570541c84e38 Reviewed-on: https://code.wireshark.org/review/10052 Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
parent
8d1a5498fb
commit
c643cbfb81
|
@ -16,9 +16,15 @@ MACRO(ABICHECK _libname)
|
|||
configure_file(../abi-descriptor.template abi-descriptor.xml)
|
||||
# discover and substitute list of include directories for ABI compatibility
|
||||
# checks
|
||||
file(GLOB HEADERS *.h)
|
||||
file(MAKE_DIRECTORY ${ABICHECK_TMPDIR})
|
||||
file(COPY ${HEADERS} ${CMAKE_SOURCE_DIR}/ws_symbol_export.h DESTINATION ${ABICHECK_TMPDIR})
|
||||
file(GLOB ABICHECK_HEADERS RELATIVE ${CMAKE_CURRENT_BINARY_DIR} *.h)
|
||||
set(ABICHECK_HEADERS ${ABICHECK_HEADERS} ${CMAKE_SOURCE_DIR}/ws_symbol_export.h)
|
||||
add_custom_target(dumpabi-${_libname} DEPENDS ${_libname}.abi.tar.gz)
|
||||
set_target_properties(dumpabi-${_libname} PROPERTIES FOLDER "Auxilary")
|
||||
if (WIN32)
|
||||
set(ABI_COPY_COMMAND xcopy)
|
||||
set(ABI_COPY_FLAGS /d)
|
||||
else()
|
||||
set(ABI_COPY_COMMAND cp)
|
||||
set(ABI_COPY_FLAGS)
|
||||
endif()
|
||||
ENDMACRO()
|
||||
|
|
|
@ -1757,7 +1757,7 @@ endif()
|
|||
|
||||
ABICHECK(libwireshark)
|
||||
|
||||
file(GLOB EPAN_HEADERS *.h)
|
||||
set(TOP_LEVEL_HEADERS ${CMAKE_BINARY_DIR}/config.h ${CMAKE_SOURCE_DIR}/color.h ${CMAKE_SOURCE_DIR}/register.h)
|
||||
file(GLOB CRYPT_HEADERS crypt/*.h)
|
||||
file(GLOB COMPRESS_HEADERS compress/*.h)
|
||||
file(GLOB DFILTER_HEADERS dfilter/*.h ../tools/lemon/cppmagic.h)
|
||||
|
@ -1765,28 +1765,27 @@ file(GLOB D_HEADERS dissectors/*.h)
|
|||
file(GLOB FTYPES_HEADERS ftypes/*.h)
|
||||
file(GLOB WMEM_HEADERS wmem/*.h)
|
||||
file(GLOB NGHTTP2_HEADERS nghttp2/*.h)
|
||||
file(MAKE_DIRECTORY ${ABICHECK_TMPDIR}
|
||||
${ABICHECK_TMPDIR}/epan
|
||||
${ABICHECK_TMPDIR}/crypt
|
||||
${ABICHECK_TMPDIR}/compress
|
||||
${ABICHECK_TMPDIR}/dfilter
|
||||
${ABICHECK_TMPDIR}/dissectors
|
||||
${ABICHECK_TMPDIR}/ftypes
|
||||
${ABICHECK_TMPDIR}/wmem
|
||||
${ABICHECK_TMPDIR}/nghttp2)
|
||||
|
||||
file(COPY ../color.h ../register.h DESTINATION ${ABICHECK_TMPDIR})
|
||||
file(COPY ${HEADERS} DESTINATION ${ABICHECK_TMPDIR}/epan)
|
||||
file(COPY ${CRYPT_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/crypt)
|
||||
file(COPY ${COMPRESS_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/compress)
|
||||
file(COPY ${DFILTER_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/dfilter)
|
||||
file(COPY ${D_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/dissectors)
|
||||
file(COPY ${FTYPES_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/ftypes)
|
||||
file(COPY ${WMEM_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/wmem)
|
||||
file(COPY ${NGHTTP2_HEADERS} DESTINATION ${ABICHECK_TMPDIR}/nghttp2)
|
||||
|
||||
add_custom_command(OUTPUT libwireshark.abi.tar.gz
|
||||
COMMAND cp ../config.h ${ABICHECK_TMPDIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory ${ABICHECK_TMPDIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/epan
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/crypt
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/compress
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/dfilter
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/dissectors
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/ftypes
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/wmem
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}/nghttp2
|
||||
COMMAND ${ABI_COPY_COMMAND} ${TOP_LEVEL_HEADERS} ${ABICHECK_TMPDIR} ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${ABICHECK_HEADERS} ${ABICHECK_TMPDIR}/epan ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${CRYPT_HEADERS} ${ABICHECK_TMPDIR}/crypt ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${COMPRESS_HEADERS} ${ABICHECK_TMPDIR}/compress ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${DFILTER_HEADERS} ${ABICHECK_TMPDIR}/dfilter ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${D_HEADERS} ${ABICHECK_TMPDIR}/dissectors ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${FTYPES_HEADERS} ${ABICHECK_TMPDIR}/ftypes ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${WMEM_HEADERS} ${ABICHECK_TMPDIR}/wmem ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${NGHTTP2_HEADERS} ${ABICHECK_TMPDIR}/nghttp2 ${ABI_COPY_FLAGS}
|
||||
COMMAND rm -f ${ABICHECK_TMPDIR}/dissectors/x11-extension-implementation.h
|
||||
${ABICHECK_TMPDIR}/dissectors/packet-rtps.h
|
||||
${ABICHECK_TMPDIR}/dissectors/x11-glx-render-enum.h
|
||||
|
@ -1794,12 +1793,13 @@ add_custom_command(OUTPUT libwireshark.abi.tar.gz
|
|||
${ABICHECK_TMPDIR}/dissectors/packet-idmp.h
|
||||
COMMAND ${ABICHECK_COMMAND}
|
||||
COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps/libwireshark/libwireshark_* ${CMAKE_CURRENT_BINARY_DIR}/libwireshark.abi.tar.gz
|
||||
COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps ${ABICHECK_TMPDIR}/config.h
|
||||
${ABICHECK_TMPDIR}/epan/* ${ABICHECK_TMPDIR}/crypt/*
|
||||
${ABICHECK_TMPDIR}/epan/* ${ABICHECK_TMPDIR}/compress/*
|
||||
${ABICHECK_TMPDIR}/dfilter/* ${ABICHECK_TMPDIR}/dissectors/*
|
||||
${ABICHECK_TMPDIR}/ftypes/* ${ABICHECK_TMPDIR}/wmem/*
|
||||
${ABICHECK_TMPDIR}/nghttp2/*
|
||||
COMMAND rm -rf ${ABICHECK_TMPDIR} ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
|
||||
# COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps ${ABICHECK_TMPDIR}/config.h
|
||||
# ${ABICHECK_TMPDIR}/epan/* ${ABICHECK_TMPDIR}/crypt/*
|
||||
# ${ABICHECK_TMPDIR}/epan/* ${ABICHECK_TMPDIR}/compress/*
|
||||
# ${ABICHECK_TMPDIR}/dfilter/* ${ABICHECK_TMPDIR}/dissectors/*
|
||||
# ${ABICHECK_TMPDIR}/ftypes/* ${ABICHECK_TMPDIR}/wmem/*
|
||||
# ${ABICHECK_TMPDIR}/nghttp2/*
|
||||
DEPENDS ${HEADERS}
|
||||
${CRYPT_HEADERS} ${COMPRESS_HEADERS} ${DFILTER_HEADERS} ${D_HEADERS}
|
||||
${FTYPES_HEADERS} ${WMEM_HEADERS} ${NGHTTP2_HEADERS} epan)
|
||||
|
|
|
@ -131,10 +131,13 @@ endif()
|
|||
ABICHECK(libwiretap)
|
||||
|
||||
add_custom_command(OUTPUT libwiretap.abi.tar.gz
|
||||
COMMAND cp ../config.h ${ABICHECK_TMPDIR}/
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory ${ABICHECK_TMPDIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}
|
||||
COMMAND ${ABI_COPY_COMMAND} ../config.h ${ABICHECK_TMPDIR}/ ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${ABICHECK_HEADERS} ${ABICHECK_TMPDIR}/ ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABICHECK_COMMAND}
|
||||
COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps/libwiretap/libwiretap_* ${CMAKE_CURRENT_BINARY_DIR}/libwiretap.abi.tar.gz
|
||||
COMMAND rm -rf ${ABICHECK_TMPDIR}/* ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
|
||||
COMMAND rm -rf ${ABICHECK_TMPDIR} ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
|
||||
DEPENDS ${HEADERS} wiretap)
|
||||
|
||||
target_link_libraries(wiretap ${wiretap_LIBS})
|
||||
|
|
|
@ -234,10 +234,13 @@ endif()
|
|||
ABICHECK(libwsutil)
|
||||
|
||||
add_custom_command(OUTPUT libwsutil.abi.tar.gz
|
||||
COMMAND cp ../config.h ${ABICHECK_TMPDIR}/
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory ${ABICHECK_TMPDIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${ABICHECK_TMPDIR}
|
||||
COMMAND ${ABI_COPY_COMMAND} ../config.h ${ABICHECK_TMPDIR}/ ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABI_COPY_COMMAND} ${ABICHECK_HEADERS} ${ABICHECK_TMPDIR}/ ${ABI_COPY_FLAGS}
|
||||
COMMAND ${ABICHECK_COMMAND}
|
||||
COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps/libwsutil/libwsutil_* ${CMAKE_CURRENT_BINARY_DIR}/libwsutil.abi.tar.gz
|
||||
COMMAND rm -rf ${ABICHECK_TMPDIR}/* ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
|
||||
COMMAND rm -rf ${ABICHECK_TMPDIR} ${CMAKE_CURRENT_BINARY_DIR}/abi_dumps
|
||||
DEPENDS ${HEADERS} wsutil)
|
||||
|
||||
target_link_libraries(wsutil ${wsutil_LIBS})
|
||||
|
|
Loading…
Reference in New Issue