SerenityOS / ladybird

The Ladybird web browser

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cmake thinks Lagom::WebSocket is an executable?

vgel opened this issue · comments

When I try to build with a fresh clone, I get this cmake error:

$ cmake -GNinja -B Build
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
CMake Error at CMakeLists.txt:43 (target_link_libraries):
  Target "Lagom::WebSocket" of type EXECUTABLE may not be linked into another
  target.  One may link only to INTERFACE, OBJECT, STATIC or SHARED
  libraries, or to executables with the ENABLE_EXPORTS property set.

When I remove Lagom::WebSocket from CMakeLists.txt (and the associated websocket code from WebView, so it will successfully link), I can build and use the browser normally (though presumably without websocket support, if that works normally).

I'm not familiar with cmake-authoring or the Serenity build process, so I'm not sure what's going on here. I tried to dig into the Lagom cmake files but didn't get much traction in 20 minutes of searching around.

Oh hmm. We do now have the web socket IPC server and the library with a name collision on export. This isn't a problem for the Serenity build because the library has a target name prefixed with Lib

You can use the non-namespaced name LibWebSocket in the target_link_libraries to force it to build until the serenity project fix is in