66cmake_minimum_required (VERSION 3.20.0 FATAL_ERROR)
77project (unified-runtime VERSION 0.10.0)
88
9+ # Check if unified runtime is built as a standalone project.
10+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR UR_STANDALONE_BUILD)
11+ set (UR_STANDALONE_BUILD TRUE )
12+ endif ()
13+
914include (GNUInstallDirs)
1015include (CheckCXXSourceCompiles)
1116include (CMakePackageConfigHelpers)
@@ -37,7 +42,8 @@ option(UR_USE_MSAN "enable MemorySanitizer" OFF)
3742option (UR_USE_TSAN "enable ThreadSanitizer" OFF )
3843option (UR_ENABLE_TRACING "enable api tracing through xpti" OFF )
3944option (UR_ENABLE_SANITIZER "enable device sanitizer" ON )
40- option (UMF_BUILD_SHARED_LIBRARY "Build UMF as shared library" OFF )
45+ option (UR_ENABLE_SYMBOLIZER "enable symoblizer for sanitizer" OFF )
46+ option (UMF_BUILD_SHARED_LIBRARY "Build UMF as shared library" ON )
4147option (UMF_ENABLE_POOL_TRACKING "Build UMF with pool tracking" ON )
4248option (UR_BUILD_ADAPTER_L0 "Build the Level-Zero adapter" OFF )
4349option (UR_BUILD_ADAPTER_OPENCL "Build the OpenCL adapter" OFF )
@@ -49,6 +55,7 @@ option(UR_BUILD_EXAMPLE_CODEGEN "Build the codegen example." OFF)
4955option (VAL_USE_LIBBACKTRACE_BACKTRACE "enable libbacktrace validation backtrace for linux" OFF )
5056option (UR_ENABLE_ASSERTIONS "Enable assertions for all build types" OFF )
5157option (UR_BUILD_XPTI_LIBS "Build the XPTI libraries when tracing is enabled" ON )
58+ option (UR_STATIC_LOADER "Build loader as a static library" OFF )
5259set (UR_DPCXX "" CACHE FILEPATH "Path of the DPC++ compiler executable" )
5360set (UR_DPCXX_BUILD_FLAGS "" CACHE STRING "Build flags to pass to DPC++ when compiling device programs" )
5461set (UR_SYCL_LIBRARY_DIR "" CACHE PATH
@@ -134,6 +141,15 @@ if(UR_ENABLE_TRACING)
134141 set_target_properties (xptifw PROPERTIES
135142 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
136143 )
144+
145+ if (UR_STATIC_LOADER)
146+ install (TARGETS xpti xptifw
147+ EXPORT ${PROJECT_NAME} -targets
148+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
149+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
150+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
151+ )
152+ endif ()
137153 endif ()
138154
139155 if (MSVC )
@@ -153,6 +169,14 @@ if(UR_ENABLE_SANITIZER)
153169 else ()
154170 add_compile_definitions (UR_ENABLE_SANITIZER)
155171 endif ()
172+
173+ if (UR_ENABLE_SYMBOLIZER AND UR_STANDALONE_BUILD)
174+ find_package (LLVM REQUIRED)
175+ endif ()
176+ else ()
177+ if (UR_ENABLE_SYMBOLIZER)
178+ message (FATAL_ERROR "Symbolizer must be enabled with Sanitizer layer" )
179+ endif ()
156180endif ()
157181
158182if (UR_USE_ASAN)
@@ -179,7 +203,7 @@ endif()
179203if (UR_FORMAT_CPP_STYLE)
180204 find_program (CLANG_FORMAT NAMES clang-format-15 clang-format-15.0 clang-format)
181205
182- if (CLANG_FORMAT)
206+ if (CLANG_FORMAT)
183207 get_program_version_major_minor(${CLANG_FORMAT} CLANG_FORMAT_VERSION)
184208 message (STATUS "Found clang-format: ${CLANG_FORMAT} (version: ${CLANG_FORMAT_VERSION} )" )
185209
0 commit comments