@@ -74,64 +74,6 @@ endif()
74
74
75
75
# at build time create include/ directory and copy header files over
76
76
set (DPCTL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /include )
77
- add_custom_target (_build_time_create_dpctl_include ALL
78
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DPCTL_INCLUDE_DIR}
79
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DPCTL_INCLUDE_DIR} /syclinterface
80
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DPCTL_INCLUDE_DIR} /syclinterface/Support
81
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DPCTL_INCLUDE_DIR} /syclinterface/Config
82
- DEPENDS DPCTLSyclInterface
83
- )
84
-
85
- set (_copied_header_files )
86
- file (GLOB _syclinterface_h ${CMAKE_SOURCE_DIR} /libsyclinterface/include/*.h* )
87
- foreach (hf ${_syclinterface_h} )
88
- get_filename_component (_header_name ${hf} NAME )
89
- set (_target_header_file ${DPCTL_INCLUDE_DIR} /syclinterface/${_header_name} )
90
- list (APPEND _copied_header_files ${_target_header_file} )
91
- add_custom_command (OUTPUT ${_target_header_file}
92
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${hf} ${_target_header_file}
93
- DEPENDS ${hf} _build_time_create_dpctl_include
94
- VERBATIM
95
- )
96
- endforeach ()
97
-
98
- file (GLOB _syclinterface_Support_h ${CMAKE_SOURCE_DIR} /libsyclinterface/include/Support/*.h )
99
- foreach (hf ${_syclinterface_Support_h} )
100
- get_filename_component (_header_name ${hf} NAME )
101
- set (_target_header_file ${DPCTL_INCLUDE_DIR} /syclinterface/Support/${_header_name} )
102
- list (APPEND _copied_header_files ${_target_header_file} )
103
- add_custom_command (OUTPUT ${_target_header_file}
104
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${hf} ${_target_header_file}
105
- DEPENDS ${hf} _build_time_create_dpctl_include
106
- )
107
- endforeach ()
108
-
109
- file (GLOB _syclinterface_Config_h ${CMAKE_SOURCE_DIR} /libsyclinterface/include/Config/*.h )
110
- foreach (hf ${_syclinterface_Config_h} )
111
- get_filename_component (_header_name ${hf} NAME )
112
- set (_target_header_file ${DPCTL_INCLUDE_DIR} /syclinterface/Config/${_header_name} )
113
- list (APPEND _copied_header_files ${_target_header_file} )
114
- add_custom_command (OUTPUT ${_target_header_file}
115
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${hf} ${_target_header_file}
116
- DEPENDS ${hf} _build_time_create_dpctl_include
117
- )
118
- endforeach ()
119
-
120
- file (GLOB _apis_h ${CMAKE_CURRENT_SOURCE_DIR} /apis/include/* )
121
- foreach (hf ${_apis_h} )
122
- get_filename_component (_header_name ${hf} NAME )
123
- set (_target_header_file ${DPCTL_INCLUDE_DIR} /${_header_name} )
124
- list (APPEND _copied_header_files ${_target_header_file} )
125
- add_custom_command (OUTPUT ${_target_header_file}
126
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${hf} ${_target_header_file}
127
- DEPENDS ${hf} _build_time_create_dpctl_include
128
- )
129
- endforeach ()
130
-
131
- add_custom_target (
132
- _build_time_create_dpctl_include_copy ALL
133
- DEPENDS ${_copied_header_files}
134
- )
135
77
136
78
set (CMAKE_INSTALL_RPATH "$ORIGIN" )
137
79
@@ -140,7 +82,6 @@ function(build_dpctl_ext _trgt _src _dest)
140
82
cmake_parse_arguments (BUILD_DPCTL_EXT "${options} " "" "" ${ARGN} )
141
83
add_cython_target (${_trgt} ${_src} CXX OUTPUT_VAR _generated_src )
142
84
set (_cythonize_trgt "${_trgt} _cythonize_pyx" )
143
- add_custom_target (${_cythonize_trgt} DEPENDS ${_src} )
144
85
Python_add_library (${_trgt} MODULE WITH_SOABI ${_generated_src} )
145
86
if (BUILD_DPCTL_EXT_SYCL )
146
87
add_sycl_to_target (TARGET ${_trgt} SOURCES ${_generated_src} )
@@ -158,8 +99,7 @@ function(build_dpctl_ext _trgt _src _dest)
158
99
)
159
100
endif ()
160
101
endif ()
161
- target_include_directories (${_trgt} PRIVATE ${NumPy_INCLUDE_DIR} ${DPCTL_INCLUDE_DIR} )
162
- add_dependencies (${_trgt} _build_time_create_dpctl_include_copy ${_cythonize_trgt} )
102
+ target_link_libraries (${_trgt} PRIVATE Python::NumPy )
163
103
if (DPCTL_GENERATE_COVERAGE )
164
104
target_compile_definitions (${_trgt} PRIVATE CYTHON_TRACE=1 CYTHON_TRACE_NOGIL=1 )
165
105
# target_compile_options(${_trgt} PRIVATE -fno-sycl-use-footer)
@@ -171,42 +111,31 @@ function(build_dpctl_ext _trgt _src _dest)
171
111
get_filename_component (_generated_src_dir ${_generated_src} DIRECTORY )
172
112
set (_generated_public_h "${_generated_src_dir} /${_name_wle} .h" )
173
113
set (_generated_api_h "${_generated_src_dir} /${_name_wle} _api.h" )
174
- set (_copy_trgt "${_trgt} _copy_capi_include" )
175
- add_custom_target (
176
- ${_copy_trgt} ALL
177
- COMMAND ${CMAKE_COMMAND}
178
- -DSOURCE_FILE=${_generated_public_h}
179
- -DDEST=${CMAKE_CURRENT_SOURCE_DIR}
180
- -P ${CMAKE_SOURCE_DIR} /dpctl/cmake/copy_existing.cmake
181
- COMMAND ${CMAKE_COMMAND}
182
- -DSOURCE_FILE=${_generated_api_h}
183
- -DDEST=${CMAKE_CURRENT_SOURCE_DIR}
184
- -P ${CMAKE_SOURCE_DIR} /dpctl/cmake/copy_existing.cmake
185
- DEPENDS ${_trgt}
186
- VERBATIM
187
- COMMENT "Copying Cython-generated headers to dpctl"
188
- )
189
- if (DPCTL_GENERATE_COVERAGE )
190
- set (_copy_cxx_trgt "${_trgt} _copy_cxx" )
191
- add_custom_target (
192
- ${_copy_cxx_trgt} ALL
193
- COMMAND ${CMAKE_COMMAND}
194
- -DSOURCE_FILE=${_generated_src}
195
- -DDEST=${CMAKE_CURRENT_SOURCE_DIR}
196
- -P ${CMAKE_SOURCE_DIR} /dpctl/cmake/copy_existing.cmake
197
- DEPENDS ${_trgt}
198
- VERBATIM
199
- COMMENT "Copying Cython-generated source to dpctl"
200
- )
201
- endif ()
202
- install (TARGETS ${_trgt} LIBRARY DESTINATION ${_dest} )
114
+
115
+ # TODO: create separate folder inside build folder that contains only
116
+ # headers related to this target and appropriate folder structure to
117
+ # eliminate shadow dependencies
118
+ get_filename_component (_generated_src_dir_dir ${_generated_src_dir} DIRECTORY )
119
+ target_include_directories (${_trgt} INTERFACE ${_generated_src_dir_dir} )
120
+
121
+ install (TARGETS ${_trgt}
122
+ LIBRARY DESTINATION ${_dest} )
123
+ install (FILES
124
+ ${_generated_api_h}
125
+ DESTINATION ${CMAKE_INSTALL_PREFIX} /dpctl/include/${_dest}
126
+ OPTIONAL )
127
+ install (FILES
128
+ ${_generated_public_h}
129
+ DESTINATION ${CMAKE_INSTALL_PREFIX} /dpctl/include/${_dest}
130
+ OPTIONAL )
203
131
endfunction ()
204
132
205
133
file (GLOB _cython_sources ${CMAKE_CURRENT_SOURCE_DIR} /*.pyx )
206
134
list (REMOVE_ITEM _cython_sources ${CMAKE_CURRENT_SOURCE_DIR} /_sycl_queue.pyx )
207
135
foreach (_cy_file ${_cython_sources} )
208
136
get_filename_component (_trgt ${_cy_file} NAME_WLE )
209
137
build_dpctl_ext (${_trgt} ${_cy_file} "dpctl" )
138
+ target_link_libraries (DpctlCAPI INTERFACE ${_trgt} )
210
139
endforeach ()
211
140
212
141
set (_cy_file ${CMAKE_CURRENT_SOURCE_DIR} /_sycl_queue.pyx )
0 commit comments