Skip to content

Commit a84c41e

Browse files
Build simplify_iteration_space.cpp as static library
Link that library into Python extensions implementing dpctl.tensor
1 parent db1d5c7 commit a84c41e

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

dpctl/tensor/CMakeLists.txt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,11 @@ set(_sorting_sources
116116
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/sorting/argsort.cpp
117117
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/sorting/searchsorted.cpp
118118
)
119+
set(_static_lib_sources
120+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
121+
)
119122
set(_tensor_impl_sources
120123
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_ctors.cpp
121-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
122124
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/accumulators.cpp
123125
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_and_cast_usm_to_usm.cpp
124126
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_numpy_ndarray_into_usm_ndarray.cpp
@@ -138,17 +140,14 @@ set(_tensor_impl_sources
138140
)
139141
set(_tensor_elementwise_impl_sources
140142
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_elementwise.cpp
141-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
142143
${_elementwise_sources}
143144
)
144145
set(_tensor_reductions_impl_sources
145146
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_reductions.cpp
146-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
147147
${_reduction_sources}
148148
)
149149
set(_tensor_sorting_impl_sources
150150
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_sorting.cpp
151-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
152151
${_sorting_sources}
153152
)
154153
set(_linalg_sources
@@ -157,7 +156,6 @@ set(_linalg_sources
157156
)
158157
set(_tensor_linalg_impl_sources
159158
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_linalg.cpp
160-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
161159
${_linalg_sources}
162160
)
163161
set(_accumulator_sources
@@ -168,40 +166,54 @@ ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/accumulators/cumulative_sum.cpp
168166
)
169167
set(_tensor_accumulation_impl_sources
170168
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_accumulation.cpp
171-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
172169
${_accumulator_sources}
173170
)
174171

172+
set(_static_lib_trgt simplify_iteration_space)
173+
174+
add_library(${_static_lib_trgt} STATIC ${_static_lib_sources})
175+
target_include_directories(${_static_lib_trgt} PRIVATE
176+
${Python_INCLUDE_DIRS} ${DPCTL_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/include
177+
)
178+
target_link_libraries(${_static_lib_trgt} PRIVATE pybind11::headers ${Python_LIBRARIES})
179+
set_target_properties(${_static_lib_trgt} PROPERTIES POSITION_INDEPENDENT_CODE ON)
180+
175181
set(_py_trgts)
176182

177183
set(python_module_name _tensor_impl)
178184
pybind11_add_module(${python_module_name} MODULE ${_tensor_impl_sources})
179185
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_impl_sources})
186+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
180187
list(APPEND _py_trgts ${python_module_name})
181188

182189
set(python_module_name _tensor_elementwise_impl)
183190
pybind11_add_module(${python_module_name} MODULE ${_tensor_elementwise_impl_sources})
184191
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_elementwise_impl_sources})
192+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
185193
list(APPEND _py_trgts ${python_module_name})
186194

187195
set(python_module_name _tensor_reductions_impl)
188196
pybind11_add_module(${python_module_name} MODULE ${_tensor_reductions_impl_sources})
189197
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_reductions_impl_sources})
198+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
190199
list(APPEND _py_trgts ${python_module_name})
191200

192201
set(python_module_name _tensor_sorting_impl)
193202
pybind11_add_module(${python_module_name} MODULE ${_tensor_sorting_impl_sources})
194203
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_sorting_impl_sources})
204+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
195205
list(APPEND _py_trgts ${python_module_name})
196206

197207
set(python_module_name _tensor_linalg_impl)
198208
pybind11_add_module(${python_module_name} MODULE ${_tensor_linalg_impl_sources})
199209
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_linalg_impl_sources})
210+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
200211
list(APPEND _py_trgts ${python_module_name})
201212

202213
set(python_module_name _tensor_accumulation_impl)
203214
pybind11_add_module(${python_module_name} MODULE ${_tensor_accumulation_impl_sources})
204215
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_accumulation_impl_sources})
216+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
205217
list(APPEND _py_trgts ${python_module_name})
206218

207219
set(_clang_prefix "")

0 commit comments

Comments
 (0)