aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt8
-rw-r--r--epan/CMakeLists.txt5
-rw-r--r--epan/wslua/CMakeLists.txt144
-rw-r--r--epan/wslua/init_wslua.c9
-rw-r--r--epan/wslua/wslua_dir.c8
-rw-r--r--epan/wslua/wslua_util.c8
-rwxr-xr-xtest/config.sh4
-rwxr-xr-xtest/suite-nameres.sh2
8 files changed, 109 insertions, 79 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 78d93d1a82..efe27a9553 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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)
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index ad7aaba690..24881aba57 100644
--- a/epan/CMakeLists.txt
+++ b/epan/CMakeLists.txt
@@ -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
)
diff --git a/epan/wslua/CMakeLists.txt b/epan/wslua/CMakeLists.txt
index c374f2c99a..e3c2b75a2b 100644
--- a/epan/wslua/CMakeLists.txt
+++ b/epan/wslua/CMakeLists.txt
@@ -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}
)
-
diff --git a/epan/wslua/init_wslua.c b/epan/wslua/init_wslua.c
index 6e044ea811..86474817cc 100644
--- a/epan/wslua/init_wslua.c
+++ b/epan/wslua/init_wslua.c
@@ -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:
*/
-
diff --git a/epan/wslua/wslua_dir.c b/epan/wslua/wslua_dir.c
index 163006989f..9965a2f498 100644
--- a/epan/wslua/wslua_dir.c
+++ b/epan/wslua/wslua_dir.c
@@ -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);
}
diff --git a/epan/wslua/wslua_util.c b/epan/wslua/wslua_util.c
index cef3daf870..f26adefced 100644
--- a/epan/wslua/wslua_util.c
+++ b/epan/wslua/wslua_util.c
@@ -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;
}
diff --git a/test/config.sh b/test/config.sh
index b496f0b383..8e05e21111 100755
--- a/test/config.sh
+++ b/test/config.sh
@@ -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
diff --git a/test/suite-nameres.sh b/test/suite-nameres.sh
index 5ed5fecdc7..8cef34f731 100755
--- a/test/suite-nameres.sh
+++ b/test/suite-nameres.sh
@@ -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"