@@ -75,10 +75,16 @@ option(
7575 ON
7676)
7777
78+ # A standalone WebSocket build may resolve its public dependencies from
79+ # sibling source directories. Those targets are not part of WebSocket's
80+ # export set, so exporting WebSocket alone would create an invalid package.
81+ set (VIX_WEBSOCKET_HAS_LOCAL_DEPENDENCIES OFF )
82+
7883if (NOT TARGET vix::core AND NOT TARGET vix_core)
7984 if (EXISTS "${CMAKE_CURRENT_LIST_DIR } /../core/CMakeLists.txt" )
8085 message (STATUS "[websocket] Adding core from umbrella: ../core" )
8186 add_subdirectory ("${CMAKE_CURRENT_LIST_DIR } /../core" "${CMAKE_CURRENT_BINARY_DIR } /core" )
87+ set (VIX_WEBSOCKET_HAS_LOCAL_DEPENDENCIES ON )
8288 elseif (VIX_WEBSOCKET_FETCH_CORE)
8389 include (FetchContent )
8490 message (STATUS "[websocket] Fetching vix::core via FetchContent" )
@@ -99,6 +105,7 @@ if (NOT TARGET vix::utils AND NOT TARGET vix_utils)
99105 if (EXISTS "${CMAKE_CURRENT_LIST_DIR } /../utils/CMakeLists.txt" )
100106 message (STATUS "[websocket] Adding utils from umbrella: ../utils" )
101107 add_subdirectory ("${CMAKE_CURRENT_LIST_DIR } /../utils" "${CMAKE_CURRENT_BINARY_DIR } /utils" )
108+ set (VIX_WEBSOCKET_HAS_LOCAL_DEPENDENCIES ON )
102109 elseif (VIX_WEBSOCKET_FETCH_UTILS)
103110 include (FetchContent )
104111 message (STATUS "[websocket] Fetching vix::utils via FetchContent" )
@@ -114,6 +121,15 @@ if (NOT TARGET vix::utils AND NOT TARGET vix_utils)
114121 endif ()
115122endif ()
116123
124+ if (
125+ VIX_WEBSOCKET_ENABLE_INSTALL
126+ AND VIX_WEBSOCKET_HAS_LOCAL_DEPENDENCIES
127+ AND NOT (DEFINED VIX_UMBRELLA_BUILD AND VIX_UMBRELLA_BUILD)
128+ )
129+ message (STATUS "[websocket] Local sibling dependencies detected; skipping standalone package export." )
130+ set (VIX_WEBSOCKET_ENABLE_INSTALL OFF )
131+ endif ()
132+
117133if (TARGET vix::core)
118134 set (VIX_CORE_TARGET vix::core)
119135elseif (TARGET vix_core)
0 commit comments