Bug 242245

Summary: [GTK] build fails without X11 target or missing libhyphen
Product: WebKit Reporter: Дилян Палаузов <dpa-webkit>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: aperez, bfulgham, bugs-noreply, mcatanzaro
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Дилян Палаузов 2022-07-01 05:28:16 PDT
I want to compile WebKitGTK 2.36.3 without libhyphen and without X11 support.   That is: ENABLE_X11_TARGET is OFF and USE_LIBHYPHEN is also OFF.

During ccmake generates the build files, it prints:


CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
 Please set them or make sure they are set and tested correctly in the CMake files:
 HYPHEN_LIBRARIES (ADVANCED)
     linked by target "WebCore" in directory /src/gnome/webkitgtk-2.36.3/Source/WebCore
     linked by target "WebCoreTestSupport" in directory /src/gnome/webkitgtk-2.36.3/Source/WebCore
 X11_Xt_LIB (ADVANCED)
     linked by target "WebCore" in directory /src/gnome/webkitgtk-2.36.3/Source/WebCore
     linked by target "WebCoreTestSupport" in directory /src/gnome/webkitgtk-2.36.3/Source/WebCore
 Generating done

and no ninja build files are generated.
Comment 1 Adrian Perez 2022-07-05 03:31:54 PDT
(In reply to Дилян Палаузов from comment #0)
> I want to compile WebKitGTK 2.36.3 without libhyphen and without X11
> support.   That is: ENABLE_X11_TARGET is OFF and USE_LIBHYPHEN is also OFF.
> 
> During ccmake generates the build files, it prints:
> 
> 
> CMake Error: The following variables are used in this project, but they are
> set to NOTFOUND.
>  Please set them or make sure they are set and tested correctly in the CMake
> files:
>  HYPHEN_LIBRARIES (ADVANCED)
>      linked by target "WebCore" in directory
> /src/gnome/webkitgtk-2.36.3/Source/WebCore
>      linked by target "WebCoreTestSupport" in directory
> /src/gnome/webkitgtk-2.36.3/Source/WebCore
>  X11_Xt_LIB (ADVANCED)
>      linked by target "WebCore" in directory
> /src/gnome/webkitgtk-2.36.3/Source/WebCore
>      linked by target "WebCoreTestSupport" in directory
> /src/gnome/webkitgtk-2.36.3/Source/WebCore
>  Generating done
> 
> and no ninja build files are generated.

I haven't checked the CMake files yet, but I tried this:

   cmake -S. -Bbuild -DPORT=GTK \
     -DENABLE_X11_TARGET=OFF -DUSE_LIBHYPHEN=OFF -GNinja

But the configuration succeeded 🤷️

Could you share your CMake command line? Also, another question: does
your system have the libhyphen/X11 development files installed or are
they missing? (I ask because maybe the issue is that CMake tries to
find things which are missing, even if they won't be used later on.)
Comment 2 Дилян Палаузов 2022-07-05 03:41:45 PDT
I configure the option by using ccmake, thus I have no cmake command line.

In any case, now after I have installed libhypthen-dev and X11-devel the problem does not appear again.  So I guess the build fails, only when the development libraries are missing.
Comment 3 Adrian Perez 2022-07-05 03:54:07 PDT
(In reply to Дилян Палаузов from comment #2)
> I configure the option by using ccmake, thus I have no cmake command line.
> 
> In any case, now after I have installed libhypthen-dev and X11-devel the
> problem does not appear again.  So I guess the build fails, only when the
> development libraries are missing.

Thanks, this is useful — most likely we have to change things to skip
trying to detect libraries when USE_LIBPHYPHEN is OFF.
Comment 4 Michael Catanzaro 2022-07-05 05:16:32 PDT
(In reply to Adrian Perez from comment #3)
> Thanks, this is useful — most likely we have to change things to skip
> trying to detect libraries when USE_LIBPHYPHEN is OFF.

That's already done.

I see we try to use the variables anyway unconditionally in Source/WebCore/PlatformGTK.cmake. I presume that's what it is complaining about. But we do that for *all* our dependencies, so I'm confused.