Skip to content

Commit f6b8be4

Browse files
author
Alexander Batashev
authored
[XPTIFW] Enable in-tree builds (#2849)
1 parent 9d0e352 commit f6b8be4

File tree

4 files changed

+47
-29
lines changed

4 files changed

+47
-29
lines changed

buildbot/configure.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ def do_configure(args):
1717
sycl_dir = os.path.join(abs_src_dir, "sycl")
1818
spirv_dir = os.path.join(abs_src_dir, "llvm-spirv")
1919
xpti_dir = os.path.join(abs_src_dir, "xpti")
20+
xptifw_dir = os.path.join(abs_src_dir, "xptifw")
2021
libdevice_dir = os.path.join(abs_src_dir, "libdevice")
2122
ocl_header_dir = os.path.join(abs_obj_dir, "OpenCL-Headers")
2223
icd_loader_lib = os.path.join(abs_obj_dir, "OpenCL-ICD-Loader", "build")
2324
llvm_targets_to_build = 'X86'
24-
llvm_enable_projects = 'clang;llvm-spirv;sycl;opencl-aot;xpti;libdevice'
25+
llvm_enable_projects = 'clang;llvm-spirv;sycl;opencl-aot;xpti;xptifw;libdevice'
2526
libclc_targets_to_build = ''
2627
sycl_build_pi_cuda = 'OFF'
2728
sycl_werror = 'ON'
@@ -63,10 +64,12 @@ def do_configure(args):
6364
"-DCMAKE_BUILD_TYPE={}".format(args.build_type),
6465
"-DLLVM_ENABLE_ASSERTIONS={}".format(llvm_enable_assertions),
6566
"-DLLVM_TARGETS_TO_BUILD={}".format(llvm_targets_to_build),
66-
"-DLLVM_EXTERNAL_PROJECTS=sycl;llvm-spirv;opencl-aot;xpti;libdevice",
67+
"-DLLVM_EXTERNAL_PROJECTS=sycl;llvm-spirv;opencl-aot;xpti;xptifw;libdevice",
6768
"-DLLVM_EXTERNAL_SYCL_SOURCE_DIR={}".format(sycl_dir),
6869
"-DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR={}".format(spirv_dir),
6970
"-DLLVM_EXTERNAL_XPTI_SOURCE_DIR={}".format(xpti_dir),
71+
"-DXPTI_SOURCE_DIR={}".format(xpti_dir),
72+
"-DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR={}".format(xptifw_dir),
7073
"-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR={}".format(libdevice_dir),
7174
"-DLLVM_ENABLE_PROJECTS={}".format(llvm_enable_projects),
7275
"-DLIBCLC_TARGETS_TO_BUILD={}".format(libclc_targets_to_build),

sycl/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@ if (NOT WIN32)
274274
COMPONENT sycl-headers-extras)
275275
endif()
276276

277+
if (SYCL_ENABLE_XPTI_TRACING)
278+
set(XPTIFW_LIBS xptifw)
279+
endif()
280+
277281
# SYCL toolchain builds all components: compiler, libraries, headers, etc.
278282
add_custom_target( sycl-toolchain
279283
DEPENDS ${SYCL_RT_LIBS}
@@ -290,6 +294,7 @@ add_custom_target( sycl-toolchain
290294
llvm-objcopy
291295
sycl-post-link
292296
sycl-ls
297+
${XPTIFW_LIBS}
293298
COMMENT "Building SYCL compiler toolchain..."
294299
)
295300

@@ -350,6 +355,7 @@ set( SYCL_TOOLCHAIN_DEPLOY_COMPONENTS
350355
pi_opencl
351356
pi_level_zero
352357
libsycldevice
358+
${XPTIFW_LIBS}
353359
)
354360
if(OpenCL_INSTALL_KHRONOS_ICD_LOADER AND TARGET ocl-icd)
355361
list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS opencl-icd)

xptifw/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ endif()
1616

1717
project (xptifw)
1818

19+
foreach(flag_var
20+
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
21+
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
22+
string(REGEX REPLACE "/MT" "/MD" ${flag_var} "${${flag_var}}")
23+
endforeach()
24+
1925
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/lib/${CMAKE_BUILD_TYPE})
2026
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
2127
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})

xptifw/unit_test/CMakeLists.txt

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,39 @@ if (NOT EXISTS ${XPTI_SOURCE_DIR})
33
endif()
44
include_directories(${XPTI_SOURCE_DIR}/include)
55

6-
# Download and unpack googletest at configure time
7-
configure_file(../CMakeLists.txt.in googletest-download/CMakeLists.txt)
8-
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
9-
RESULT_VARIABLE result
10-
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
11-
if(result)
12-
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
13-
endif()
14-
execute_process(COMMAND ${CMAKE_COMMAND} --build .
15-
RESULT_VARIABLE result
16-
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
17-
if(result)
18-
message(FATAL_ERROR "Build step for googletest failed: ${result}")
19-
endif()
6+
# Only download Google Test outside of LLVM tree.
7+
if (NOT DEFINED LLVM_EXTERNAL_XPTIFW_SOURCE_DIR)
8+
# Download and unpack googletest at configure time
9+
configure_file(../CMakeLists.txt.in googletest-download/CMakeLists.txt)
10+
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
11+
RESULT_VARIABLE result
12+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
13+
if(result)
14+
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
15+
endif()
16+
execute_process(COMMAND ${CMAKE_COMMAND} --build .
17+
RESULT_VARIABLE result
18+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
19+
if(result)
20+
message(FATAL_ERROR "Build step for googletest failed: ${result}")
21+
endif()
2022

21-
# Prevent overriding the parent project's compiler/linker
22-
# settings on Windows
23-
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
23+
# Prevent overriding the parent project's compiler/linker
24+
# settings on Windows
25+
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
2426

25-
# Add googletest directly to our build. This defines
26-
# the gtest and gtest_main targets.
27-
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src
28-
${CMAKE_CURRENT_BINARY_DIR}/googletest-build
29-
EXCLUDE_FROM_ALL)
27+
# Add googletest directly to our build. This defines
28+
# the gtest and gtest_main targets.
29+
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src
30+
${CMAKE_CURRENT_BINARY_DIR}/googletest-build
31+
EXCLUDE_FROM_ALL)
3032

31-
# The gtest/gtest_main targets carry header search path
32-
# dependencies automatically when using CMake 2.8.11 or
33-
# later. Otherwise we have to add them here ourselves.
34-
if (CMAKE_VERSION VERSION_LESS 2.8.11)
35-
include_directories("${gtest_SOURCE_DIR}/include")
33+
# The gtest/gtest_main targets carry header search path
34+
# dependencies automatically when using CMake 2.8.11 or
35+
# later. Otherwise we have to add them here ourselves.
36+
if (CMAKE_VERSION VERSION_LESS 2.8.11)
37+
include_directories("${gtest_SOURCE_DIR}/include")
38+
endif()
3639
endif()
3740

3841
# Now simply link against gtest or gtest_main as needed. Eg

0 commit comments

Comments
 (0)