Skip to content

Commit a88dc84

Browse files
Mohammad LinjawiMohammad Linjawi
authored andcommitted
[VL][Delta] Fix roaring link propagation
1 parent 0caeb7e commit a88dc84

2 files changed

Lines changed: 25 additions & 13 deletions

File tree

cpp/CMake/FindRoaring.cmake

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,18 @@ function(_gluten_roaring_add_headers target_name)
6161
endif()
6262
endfunction()
6363

64+
function(_gluten_roaring_ensure_target)
65+
if(NOT TARGET gluten_roaring)
66+
add_library(gluten_roaring INTERFACE)
67+
add_library(gluten::roaring ALIAS gluten_roaring)
68+
endif()
69+
endfunction()
70+
6471
# Check if roaring target already exists.
6572
if(TARGET roaring)
66-
_gluten_roaring_add_headers(roaring)
73+
_gluten_roaring_ensure_target()
74+
target_link_libraries(gluten_roaring INTERFACE roaring)
75+
_gluten_roaring_add_headers(gluten_roaring)
6776
message(STATUS "Target roaring was already found.")
6877
return()
6978
endif()
@@ -86,9 +95,9 @@ if(PkgConfig_FOUND)
8695
endif()
8796

8897
if(Roaring_FOUND)
89-
add_library(roaring INTERFACE)
90-
target_link_libraries(roaring INTERFACE PkgConfig::Roaring)
91-
_gluten_roaring_add_headers(roaring)
98+
_gluten_roaring_ensure_target()
99+
target_link_libraries(gluten_roaring INTERFACE PkgConfig::Roaring)
100+
_gluten_roaring_add_headers(gluten_roaring)
92101
message(STATUS "Found roaring via pkg-config.")
93102
return()
94103
endif()
@@ -109,13 +118,11 @@ find_library(
109118
if(Roaring_INCLUDE_DIR
110119
AND Roaring_CPP_INCLUDE_DIR
111120
AND Roaring_LIBRARY)
112-
add_library(roaring UNKNOWN IMPORTED)
113-
set_target_properties(
114-
roaring
115-
PROPERTIES IMPORTED_LOCATION "${Roaring_LIBRARY}"
116-
INTERFACE_INCLUDE_DIRECTORIES
117-
"${Roaring_INCLUDE_DIR};${Roaring_CPP_INCLUDE_DIR}")
118-
_gluten_roaring_add_headers(roaring)
121+
_gluten_roaring_ensure_target()
122+
target_link_libraries(gluten_roaring INTERFACE "${Roaring_LIBRARY}")
123+
target_include_directories(
124+
gluten_roaring INTERFACE "${Roaring_INCLUDE_DIR}"
125+
"${Roaring_CPP_INCLUDE_DIR}")
119126
message(STATUS "Found roaring via direct library lookup.")
120127
return()
121128
endif()
@@ -143,7 +150,12 @@ FetchContent_MakeAvailable(roaring_fetch)
143150

144151
if(TARGET roaring)
145152
set_target_properties(roaring PROPERTIES POSITION_INDEPENDENT_CODE ON)
146-
_gluten_roaring_add_headers(roaring)
153+
_gluten_roaring_ensure_target()
154+
target_link_libraries(gluten_roaring INTERFACE "$<TARGET_FILE:roaring>")
155+
target_include_directories(
156+
gluten_roaring INTERFACE "${roaring_fetch_SOURCE_DIR}/include"
157+
"${roaring_fetch_SOURCE_DIR}/cpp")
158+
add_dependencies(gluten_roaring roaring)
147159
if(_roaring_restore_pic)
148160
set(CMAKE_POSITION_INDEPENDENT_CODE "${_roaring_saved_pic}")
149161
else()

cpp/velox/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ endif()
326326
target_link_libraries(velox PUBLIC facebook::velox)
327327

328328
target_link_libraries(velox PUBLIC Folly::folly)
329-
target_link_libraries(velox PUBLIC roaring)
329+
target_link_libraries(velox PUBLIC gluten::roaring)
330330

331331
find_re2()
332332
target_link_libraries(velox PUBLIC ${RE2_LIBRARY})

0 commit comments

Comments
 (0)