Wireshark-dev: Re: [Wireshark-dev] ui/gtk/pixbuf-csource not linked in

From: João Valverde <joao.valverde@xxxxxxxxxxxxxxxxxx>
Date: Mon, 7 Dec 2015 21:29:55 +0000


On 07-12-2015 21:01, Simon Barber wrote:
I don't see -DHAVE_GRESOURCE

Making all in ui/gtk

    gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../wiretap
    -DG_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES -DGSEAL_ENABLE
    -DGTK_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_DEPRECATED
    -DGDK_DISABLE_DEPRECATED  -D_FORTIFY_SOURCE=2 -I/usr/local/include
    '-DPLUGIN_INSTALL_DIR="/usr/local/lib/wireshark/plugins/2.1.0"'
    -Werror -Wno-error=deprecated-declarations -Wall -W -Wextra
    -Wendif-labels -Wpointer-arith -Warray-bounds -Wformat-security
    -fwrapv -Wvla -Waddress -Wattributes -Wdiv-by-zero
    -Wignored-qualifiers -Wpragmas -Wno-overlength-strings
    -Wwrite-strings -Wno-long-long -Wheader-guard
    -Wunused-const-variable -Wc++-compat -Wdeclaration-after-statement
    -Wshadow -Wno-pointer-sign -Wold-style-definition
    -Wstrict-prototypes -Wshorten-64-to-32 -fvisibility=hidden
    -mmacosx-version-min=10.10 -isysroot
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
    -g -O2 -D_REENTRANT -isystem/usr/local/include/gtk-2.0
    -isystem/usr/local/lib/gtk-2.0/include
    -isystem/usr/local/include/pango-1.0
    -isystem/usr/local/include/atk-1.0 -isystem/usr/local/include/cairo
    -isystem/usr/local/include/pixman-1
    -isystem/usr/local/include/libpng16
    -isystem/usr/local/include/gdk-pixbuf-2.0
    -isystem/usr/local/include/glib-2.0
    -isystem/usr/local/lib/glib-2.0/include -isystem/opt/X11/include
    -isystem/opt/X11/include/freetype2 -isystem/opt/X11/include
    -isystem/opt/X11/include/libpng15  -MT libgtkui_a-main_statusbar.o
    -MD -MP -MF .deps/libgtkui_a-main_statusbar.Tpo -c -o
    libgtkui_a-main_statusbar.o `test -f 'main_statusbar.c' || echo
    './'`main_statusbar.c

If I add

    if(GRESOURCE_FOUND AND NOT WIN32)
    message("gresource found")
    set(PIXBUF_SRC
    wireshark-gresources.c
    wireshark-gresources.h
    )
    add_definitions(-DHAVE_GRESOURCE)
    else()
    message("gresource not found")
    set(PIXBUF_SRC
    pixbuf-csource.c
    )
    endif()

I do see "gresource found".

I notice you were linking with wireshark-gresource.o. So why is cmake (apparently) setting PIXBUF_SRC correctly but not -DHAVE_GRESOURCE?

Maybe try commenting out the add_definitions() command and just define it on the command line.

cmake -DHAVE_GRESOURCE ... <path/to/srcdir>

See if that helps.

And please give your cmake version. Also trying to build wireshark with autotools on OSX could also help in narrowing this to a cmake issue.