CMake: Update wslua build and test.
Process wslua/CMakeLists.txt using add_subdirectory instead of include. Generate files in the build directory instead of the source directory. Copy lua scripts to DATAFILE_DIR instead of DATAFILE_DIR/lua. That's where init.lua looks for console.lua. Always set WIRESHARK_RUN_FROM_BUILD_DIRECTORY when testing. We presumably want to test our source files and not files which may or may not be in the system path. When we're running from the build directory look for lua scripts in both the Autotools and CMake build locations. Change-Id: Ic15ab8c58ff1b170d000c9b3e0a329af2ec44b7b Reviewed-on: https://code.wireshark.org/review/7590 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Graham Bloice <graham.bloice@trihedral.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
parent
df164dfc62
commit
b255d8a1a1
|
@ -1401,18 +1401,18 @@ if(LUA_FOUND)
|
|||
)
|
||||
add_custom_command(TARGET copy_data_files PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${CMAKE_BINARY_DIR}/epan/init.lua"
|
||||
"${DATAFILE_DIR}/lua"
|
||||
"${CMAKE_BINARY_DIR}/epan/wslua/init.lua"
|
||||
"${DATAFILE_DIR}"
|
||||
)
|
||||
add_custom_command(TARGET copy_data_files PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${CMAKE_SOURCE_DIR}/epan/wslua/console.lua"
|
||||
"${DATAFILE_DIR}/lua"
|
||||
"${DATAFILE_DIR}"
|
||||
)
|
||||
add_custom_command(TARGET copy_data_files PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${CMAKE_SOURCE_DIR}/epan/wslua/dtd_gen.lua"
|
||||
"${DATAFILE_DIR}/lua"
|
||||
"${DATAFILE_DIR}"
|
||||
)
|
||||
add_dependencies(copy_data_files wsluaauxiliary)
|
||||
endif(LUA_FOUND)
|
||||
|
|
|
@ -31,7 +31,9 @@ endif()
|
|||
|
||||
|
||||
if (HAVE_LIBLUA)
|
||||
include( wslua/CMakeLists.txt )
|
||||
add_subdirectory( wslua )
|
||||
WSLUA_GENERATE_TAP_SRC()
|
||||
WSLUA_GENERATE_REG_SRC()
|
||||
endif()
|
||||
source_group(wslua FILES ${WSLUA_FILES})
|
||||
|
||||
|
@ -43,6 +45,7 @@ include_directories(
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/dissectors
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ftypes
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua
|
||||
${CMAKE_CURRENT_BINARY_DIR}/wslua
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/nghttp2
|
||||
)
|
||||
|
||||
|
|
|
@ -19,91 +19,98 @@
|
|||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
# This file is to be included/run from epan/CMakeLists.txt
|
||||
|
||||
set(WSLUA_MODULES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/lua_bitop.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/lrexlib.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/lrexlib_glib.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/lrexlib_glib_f.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_int64.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_tvb.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_proto.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_tree.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_pinfo.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_listener.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_gui.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_dir.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_util.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_field.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_file.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_struct.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_dumper.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/wslua_internals.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lua_bitop.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lrexlib.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lrexlib_glib.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lrexlib_glib_f.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_int64.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_tvb.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_proto.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_tree.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_pinfo.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_listener.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_gui.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_dir.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_util.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_field.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_file.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_struct.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_dumper.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua_internals.c
|
||||
)
|
||||
set (WSLUA_MODULES ${WSLUA_MODULES} PARENT_SCOPE)
|
||||
|
||||
set(WSLUA_FILES
|
||||
${WSLUA_MODULES}
|
||||
taps_wslua.c
|
||||
register_wslua.c
|
||||
wslua/init_wslua.c
|
||||
)
|
||||
|
||||
# Used with untypical CWD
|
||||
set(WSLUA_TAPS_USED
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-http.h
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-ip.h
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-udp.h
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-h225.h
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-ieee80211.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
|
||||
${CMAKE_CURRENT_BINARY_DIR}/register_wslua.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/init_wslua.c
|
||||
PARENT_SCOPE
|
||||
)
|
||||
|
||||
# make-taps.pl depends on the current working directory
|
||||
# to find the dissector files (contents of taps file
|
||||
# depend on this actually, so just changing the paths
|
||||
# in these lists won't help).
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT
|
||||
${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
|
||||
${CMAKE_CURRENT_BINARY_DIR}/taps.txt
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/make-taps.pl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/taps
|
||||
${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
|
||||
${CMAKE_CURRENT_BINARY_DIR}/taps.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/taps
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/make-taps.pl
|
||||
# Only here to add dependencies for the taps "source"files
|
||||
${WSLUA_TAPS_USED}
|
||||
)
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT
|
||||
declare_wslua.h
|
||||
register_wslua.c
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/make-reg.pl
|
||||
${WSLUA_MODULES}
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/make-reg.pl
|
||||
${WSLUA_MODULES}
|
||||
# ${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
|
||||
)
|
||||
macro(WSLUA_GENERATE_TAP_SRC)
|
||||
# Used with untypical CWD
|
||||
set(WSLUA_TAPS_USED
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-http.h
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-ip.h
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-udp.h
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-h225.h
|
||||
${CMAKE_SOURCE_DIR}/epan/dissectors/packet-ieee80211.h
|
||||
)
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT
|
||||
${CMAKE_BINARY_DIR}/epan/wslua/taps_wslua.c
|
||||
${CMAKE_BINARY_DIR}/epan/wslua/taps.txt
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
${CMAKE_SOURCE_DIR}/epan/wslua/make-taps.pl
|
||||
${CMAKE_SOURCE_DIR}/epan/wslua/taps
|
||||
${CMAKE_BINARY_DIR}/epan/wslua/taps_wslua.c
|
||||
${CMAKE_BINARY_DIR}/epan/wslua/taps.txt
|
||||
${CMAKE_SOURCE_DIR}/epan/wslua
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_SOURCE_DIR}/epan/wslua
|
||||
DEPENDS
|
||||
${CMAKE_SOURCE_DIR}/epan/wslua/taps
|
||||
${CMAKE_SOURCE_DIR}/epan/wslua/make-taps.pl
|
||||
# Only here to add dependencies for the taps "source"files
|
||||
${WSLUA_TAPS_USED}
|
||||
)
|
||||
endmacro()
|
||||
|
||||
macro(WSLUA_GENERATE_REG_SRC)
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT
|
||||
${CMAKE_BINARY_DIR}/epan/wslua/declare_wslua.h
|
||||
${CMAKE_BINARY_DIR}/epan/wslua/register_wslua.c
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
${CMAKE_SOURCE_DIR}/epan/wslua/make-reg.pl
|
||||
${WSLUA_MODULES}
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_BINARY_DIR}/epan/wslua
|
||||
DEPENDS
|
||||
${CMAKE_SOURCE_DIR}/epan/wslua/make-reg.pl
|
||||
${WSLUA_MODULES}
|
||||
# ${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
|
||||
)
|
||||
endmacro()
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT init.lua
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/make-init-lua.pl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/make-init-lua.pl
|
||||
${CMAKE_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/template-init.lua
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/template-init.lua
|
||||
> init.lua
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/make-init-lua.pl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wslua/template-init.lua
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/make-init-lua.pl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/template-init.lua
|
||||
${CMAKE_SOURCE_DIR}/epan/ftypes/ftypes.h
|
||||
${CMAKE_SOURCE_DIR}/wiretap/wtap.h
|
||||
${CMAKE_SOURCE_DIR}/epan/epan.h
|
||||
|
@ -119,10 +126,9 @@ set_target_properties(wsluaauxiliary PROPERTIES FOLDER "Auxiliary")
|
|||
|
||||
install(
|
||||
FILES
|
||||
wslua/console.lua
|
||||
wslua/dtd_gen.lua
|
||||
console.lua
|
||||
dtd_gen.lua
|
||||
${CMAKE_CURRENT_BINARY_DIR}/init.lua
|
||||
DESTINATION
|
||||
${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}
|
||||
)
|
||||
|
||||
|
|
|
@ -814,9 +814,15 @@ int wslua_init(register_cb cb, gpointer client_data) {
|
|||
|
||||
/* load system's init.lua */
|
||||
if (running_in_build_directory()) {
|
||||
/* Running from build directory, load generated file */
|
||||
/* Running from build directory, try the source directory (Autotools) */
|
||||
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "epan" G_DIR_SEPARATOR_S "wslua"
|
||||
G_DIR_SEPARATOR_S "init.lua", get_progfile_dir());
|
||||
if (( ! file_exists(filename))) {
|
||||
/* Try the CMake output directory */
|
||||
g_free(filename);
|
||||
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "init.lua",
|
||||
get_progfile_dir());
|
||||
}
|
||||
} else {
|
||||
filename = get_datafile_path("init.lua");
|
||||
}
|
||||
|
@ -923,4 +929,3 @@ lua_State* wslua_state(void) { return L; }
|
|||
* vi: set shiftwidth=4 tabstop=4 expandtab:
|
||||
* :indentSize=4:tabSize=4:noTabs=true:
|
||||
*/
|
||||
|
||||
|
|
|
@ -302,9 +302,15 @@ WSLUA_CONSTRUCTOR Dir_global_config_path(lua_State* L) {
|
|||
char* filename;
|
||||
|
||||
if (running_in_build_directory()) {
|
||||
/* Running in build directory, set datafile_path to wslua source directory */
|
||||
/* Running in build directory, try the source directory (Autotools) */
|
||||
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "epan" G_DIR_SEPARATOR_S "wslua"
|
||||
G_DIR_SEPARATOR_S "%s", get_datafile_dir(), fname);
|
||||
if (( ! file_exists(filename))) {
|
||||
/* Try the CMake output directory */
|
||||
g_free(filename);
|
||||
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s",
|
||||
get_progfile_dir(), fname);
|
||||
}
|
||||
} else {
|
||||
filename = get_datafile_path(fname);
|
||||
}
|
||||
|
|
|
@ -165,9 +165,15 @@ char* wslua_get_actual_filename(const char* fname) {
|
|||
g_free(filename);
|
||||
|
||||
if (running_in_build_directory()) {
|
||||
/* Running in build directory, try wslua source directory */
|
||||
/* Running in build directory, try the source directory (Autotools) */
|
||||
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "epan" G_DIR_SEPARATOR_S "wslua"
|
||||
G_DIR_SEPARATOR_S "%s", get_datafile_dir(), fname_clean);
|
||||
if (( ! file_exists(filename))) {
|
||||
/* Try the CMake output directory */
|
||||
g_free(filename);
|
||||
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s",
|
||||
get_progfile_dir(), fname_clean);
|
||||
}
|
||||
if ( file_exists(filename) ) {
|
||||
return filename;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,10 @@
|
|||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
# The files we want to test are in the build directory.
|
||||
WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1
|
||||
export WIRESHARK_RUN_FROM_BUILD_DIRECTORY
|
||||
|
||||
# Set WS_SYSTEM to our system type, e.g. Windows, Linux, Darwin
|
||||
# http://support.microsoft.com/kb/100843
|
||||
if [ -n "${OS#Windows}" ] ; then
|
||||
|
|
|
@ -157,7 +157,7 @@ name_resolution_cleanup_step() {
|
|||
|
||||
name_resolution_prep_step() {
|
||||
CUSTOM_PROFILE_PATH="$CONF_PATH/profiles/$CUSTOM_PROFILE_NAME"
|
||||
TS_NR_ENV="WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1 ${HOME_ENV}=${HOME_PATH}"
|
||||
TS_NR_ENV="${HOME_ENV}=${HOME_PATH}"
|
||||
|
||||
name_resolution_cleanup_step
|
||||
mkdir -p "$CUSTOM_PROFILE_PATH"
|
||||
|
|
Loading…
Reference in New Issue