@@ -110,70 +110,53 @@ set(UMF_SOURCES
110110 memtarget.c
111111 mempolicy.c
112112 memspace.c
113+ memspaces/memspace_host_all.c
114+ memspaces/memspace_highest_capacity.c
115+ memspaces/memspace_highest_bandwidth.c
116+ memspaces/memspace_lowest_latency.c
117+ memspaces/memspace_numa.c
113118 provider/provider_coarse.c
119+ provider/provider_cuda.c
120+ provider/provider_devdax_memory.c
121+ provider/provider_file_memory.c
122+ provider/provider_level_zero.c
123+ provider/provider_os_memory.c
114124 provider/provider_tracking.c
115125 critnib/critnib.c
116126 ravl/ravl.c
117127 pool/pool_proxy.c
118128 pool/pool_scalable.c)
119129
120130if (NOT UMF_DISABLE_HWLOC)
121- set (UMF_SOURCES ${UMF_SOURCES} ${HWLOC_DEPENDENT_SOURCES} )
131+ set (UMF_SOURCES ${UMF_SOURCES} ${HWLOC_DEPENDENT_SOURCES}
132+ memtargets/memtarget_numa.c)
133+ set (UMF_LIBS ${UMF_LIBS} ${LIBHWLOC_LIBRARIES} )
134+ set (UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
135+ ${LIBHWLOC_LIBRARY_DIRS} )
136+ else ()
137+ set (UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
138+ "UMF_NO_HWLOC=1" )
122139endif ()
123140
124141set (UMF_SOURCES_LINUX libumf_linux.c)
125-
126142set (UMF_SOURCES_MACOSX libumf_linux.c)
127-
128143set (UMF_SOURCES_WINDOWS libumf_windows.c)
129144
130- set (UMF_SOURCES_COMMON_LINUX_MACOSX
131- provider/provider_devdax_memory.c
132- provider/provider_file_memory.c
133- provider/provider_os_memory.c
134- memtargets/memtarget_numa.c
135- memspaces/memspace_numa.c
136- memspaces/memspace_host_all.c
137- memspaces/memspace_highest_capacity.c
138- memspaces/memspace_highest_bandwidth.c
139- memspaces/memspace_lowest_latency.c)
140-
141- if (NOT UMF_DISABLE_HWLOC)
142- set (UMF_SOURCES_LINUX ${UMF_SOURCES_LINUX}
143- ${UMF_SOURCES_COMMON_LINUX_MACOSX} )
144-
145- set (UMF_SOURCES_MACOSX ${UMF_SOURCES_MACOSX}
146- ${UMF_SOURCES_COMMON_LINUX_MACOSX} )
147-
148- set (UMF_SOURCES_WINDOWS ${UMF_SOURCES_WINDOWS}
149- provider/provider_os_memory.c)
150-
151- set (UMF_LIBS ${UMF_LIBS} ${LIBHWLOC_LIBRARIES} )
152-
153- if (NOT WINDOWS)
154- add_optional_symbol(umfMemspaceCreateFromNumaArray)
155- add_optional_symbol(umfMemspaceHighestBandwidthGet)
156- add_optional_symbol(umfMemspaceHighestCapacityGet)
157- add_optional_symbol(umfMemspaceHostAllGet)
158- add_optional_symbol(umfMemspaceLowestLatencyGet)
159- endif ()
145+ # Add compile definitions to handle unsupported functions
146+ if (NOT UMF_BUILD_CUDA_PROVIDER)
147+ set (UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
148+ "UMF_NO_CUDA_PROVIDER=1" )
160149endif ()
161-
162- if (WINDOWS)
163- message (STATUS "UMF_OPTIONAL_SYMBOLS: ${UMF_OPTIONAL_SYMBOLS_WINDOWS} " )
164- else ()
165- message (STATUS "UMF_OPTIONAL_SYMBOLS: ${UMF_OPTIONAL_SYMBOLS_LINUX} " )
150+ if (NOT UMF_BUILD_LEVEL_ZERO_PROVIDER)
151+ set (UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
152+ "UMF_NO_LEVEL_ZERO_PROVIDER=1" )
153+ endif ()
154+ if (UMF_DISABLE_HWLOC OR WINDOWS)
155+ set (UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
156+ "UMF_NO_DEVDAX_PROVIDER=1" )
157+ set (UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
158+ "UMF_NO_FILE_PROVIDER=1" )
166159endif ()
167-
168- # Configure map/def files with optional symbols
169- configure_file ("${CMAKE_CURRENT_SOURCE_DIR} /libumf.def.in"
170- "${CMAKE_CURRENT_BINARY_DIR} /libumf.def" @ONLY)
171-
172- configure_file ("${CMAKE_CURRENT_SOURCE_DIR} /libumf.map.in"
173- "${CMAKE_CURRENT_BINARY_DIR} /libumf.map" @ONLY)
174-
175- set (UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
176- ${LIBHWLOC_LIBRARY_DIRS} )
177160
178161if (LINUX)
179162 set (UMF_SOURCES ${UMF_SOURCES} ${UMF_SOURCES_LINUX} )
@@ -198,8 +181,8 @@ if(UMF_BUILD_SHARED_LIBRARY)
198181 TYPE SHARED
199182 SRCS ${UMF_SOURCES}
200183 LIBS ${UMF_LIBS} ${HWLOC_LIB}
201- LINUX_MAP_FILE ${CMAKE_CURRENT_BINARY_DIR } /libumf.map
202- WINDOWS_DEF_FILE ${CMAKE_CURRENT_BINARY_DIR } /libumf.def)
184+ LINUX_MAP_FILE ${CMAKE_CURRENT_SOURCE_DIR } /libumf.map
185+ WINDOWS_DEF_FILE ${CMAKE_CURRENT_SOURCE_DIR } /libumf.def)
203186 set (UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
204187 "UMF_SHARED_LIBRARY" )
205188 set_target_properties (
@@ -215,11 +198,6 @@ else()
215198 LIBS ${UMF_LIBS} )
216199endif ()
217200
218- if (UMF_DISABLE_HWLOC)
219- set (UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
220- UMF_NO_HWLOC=1)
221- endif ()
222-
223201if (UMF_LINK_HWLOC_STATICALLY)
224202 add_dependencies (umf ${UMF_HWLOC_NAME} )
225203endif ()
@@ -229,8 +207,6 @@ target_link_directories(umf PRIVATE ${UMF_PRIVATE_LIBRARY_DIRS})
229207target_compile_definitions (umf PRIVATE ${UMF_COMMON_COMPILE_DEFINITIONS} )
230208
231209if (UMF_BUILD_LEVEL_ZERO_PROVIDER)
232- target_sources (umf PRIVATE provider/provider_level_zero.c)
233-
234210 if (LINUX)
235211 # WA for error ze_api.h:14234:20: no newline at end of file
236212 # [-Werror,-Wnewline-eof]
@@ -244,7 +220,6 @@ if(UMF_BUILD_LEVEL_ZERO_PROVIDER)
244220endif ()
245221
246222if (UMF_BUILD_CUDA_PROVIDER)
247- target_sources (umf PRIVATE provider/provider_cuda.c)
248223 set (UMF_COMPILE_DEFINITIONS ${UMF_COMPILE_DEFINITIONS}
249224 "UMF_BUILD_CUDA_PROVIDER=1" )
250225endif ()
0 commit comments