Skip to content

Commit 4fe1e6f

Browse files
Revert "[BUILD] Some CMake cleanup/modernisation (#5271)"
This reverts commit 2003685.
1 parent 129c1d2 commit 4fe1e6f

File tree

7 files changed

+40
-20
lines changed

7 files changed

+40
-20
lines changed

CMakeLists.txt

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,10 @@ include_directories(${PROJECT_BINARY_DIR}/third_party) # Tablegen'd files
168168
add_subdirectory(include)
169169
add_subdirectory(lib)
170170

171+
# find_package(PythonLibs REQUIRED)
172+
set(TRITON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
173+
set(TRITON_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
174+
171175
# TODO: Figure out which target is sufficient to fix errors; triton is
172176
# apparently not enough. Currently set linking libstdc++fs for all targets
173177
# to support some old version GCC compilers like 8.3.0.
@@ -184,12 +188,24 @@ if(TRITON_BUILD_PYTHON_MODULE)
184188
set(PYTHON_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/python/src)
185189
include_directories(${PYTHON_SRC_PATH})
186190

187-
# Python Interpreter is used to run lit tests
188-
find_package(Python3 REQUIRED COMPONENTS Development Interpreter)
189-
find_package(pybind11 CONFIG REQUIRED HINTS "${Python3_SITELIB}")
190191
if(PYTHON_INCLUDE_DIRS)
192+
# We have PYTHON_INCLUDE_DIRS set--this is what we expect when building
193+
# using pip install.
194+
include_directories(${PYTHON_INCLUDE_DIRS})
195+
include_directories(${PYBIND11_INCLUDE_DIR})
191196
message(STATUS "PYTHON_LIB_DIRS ${PYTHON_LIB_DIRS}")
192197
link_directories(${PYTHON_LIB_DIRS})
198+
else()
199+
# Otherwise, we might be building from top CMakeLists.txt directly.
200+
# Try to find Python and pybind11 packages.
201+
find_package(Python3 REQUIRED COMPONENTS Development Interpreter)
202+
find_package(pybind11 CONFIG REQUIRED HINTS "${Python3_SITELIB}")
203+
include_directories(${Python3_INCLUDE_DIRS})
204+
include_directories(${pybind11_INCLUDE_DIR})
205+
link_directories(${Python3_LIBRARY_DIRS})
206+
link_libraries(${Python3_LIBRARIES})
207+
add_link_options(${Python3_LINK_OPTIONS})
208+
endif()
193209

194210
if (DEFINED TRITON_PLUGIN_DIRS)
195211
foreach(PLUGIN_DIR ${TRITON_PLUGIN_DIRS})
@@ -256,9 +272,6 @@ if(TRITON_BUILD_PYTHON_MODULE)
256272
LLVMAMDGPUCodeGen
257273
LLVMAMDGPUAsmParser
258274

259-
Python3::Module
260-
pybind11::headers
261-
262275
)
263276
if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" OR # Linux arm64
264277
CMAKE_SYSTEM_PROCESSOR MATCHES "arm64" OR # macOS arm64
@@ -299,7 +312,7 @@ if(TRITON_BUILD_PYTHON_MODULE)
299312
${PYTHON_SRC_PATH}/llvm.cc)
300313

301314
# Link triton with its dependencies
302-
target_link_libraries(triton PRIVATE ${TRITON_LIBRARIES})
315+
target_link_libraries(triton PUBLIC ${TRITON_LIBRARIES})
303316
if(WIN32)
304317
target_link_libraries(triton PRIVATE ${CMAKE_DL_LIBS})
305318
set_target_properties(triton PROPERTIES SUFFIX ".pyd")
@@ -322,7 +335,7 @@ if(TRITON_BUILD_PYTHON_MODULE AND NOT WIN32)
322335
set(PYTHON_LDFLAGS "-undefined dynamic_lookup")
323336
endif()
324337

325-
target_link_options(triton PRIVATE ${PYTHON_LDFLAGS})
338+
target_link_libraries(triton PRIVATE ${PYTHON_LDFLAGS})
326339
endif()
327340

328341
if(NOT TRITON_BUILD_PYTHON_MODULE)

python/setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ def get_pybind11_cmake_args(self):
453453
pybind11_include_dir = os.path.join(pybind11_sys_path, "include")
454454
else:
455455
pybind11_include_dir = pybind11.get_include()
456-
return [f"-Dpybind11_INCLUDE_DIR='{pybind11_include_dir}'", f"-Dpybind11_DIR='{pybind11.get_cmake_dir()}'"]
456+
return [f"-DPYBIND11_INCLUDE_DIR={pybind11_include_dir}"]
457457

458458
def get_proton_cmake_args(self):
459459
cmake_args = get_thirdparty_packages([get_json_package_info()])
@@ -493,7 +493,7 @@ def build_extension(self, ext):
493493
"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON", "-DLLVM_ENABLE_WERROR=ON",
494494
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=" + extdir, "-DTRITON_BUILD_TUTORIALS=OFF",
495495
"-DTRITON_BUILD_PYTHON_MODULE=ON", "-DPython3_EXECUTABLE:FILEPATH=" + sys.executable,
496-
"-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON", "-DPython3_INCLUDE_DIR=" + python_include_dir,
496+
"-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON", "-DPYTHON_INCLUDE_DIRS=" + python_include_dir,
497497
"-DTRITON_CODEGEN_BACKENDS=" + ';'.join([b.name for b in backends if not b.is_external]),
498498
"-DTRITON_PLUGIN_DIRS=" + ';'.join([b.src_dir for b in backends if b.is_external])
499499
]

test/lit.site.cfg.py.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import sys
44

5-
config.triton_obj_root = "@triton_BINARY_DIR@"
5+
config.triton_obj_root = "@TRITON_BINARY_DIR@"
66
config.llvm_src_root = "@LLVM_SOURCE_DIR@"
77
config.llvm_obj_root = "@LLVM_BINARY_DIR@"
88
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
@@ -20,4 +20,4 @@ import lit.llvm
2020
lit.llvm.initialize(lit_config, config)
2121

2222
# Let the main config do the real work
23-
lit_config.load_config(config, "@triton_SOURCE_DIR@/test/lit.cfg.py")
23+
lit_config.load_config(config, "@TRITON_SOURCE_DIR@/test/lit.cfg.py")

third_party/amd/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ add_subdirectory(include)
44
add_subdirectory(lib)
55
if(TRITON_BUILD_PYTHON_MODULE)
66
add_triton_plugin(TritonAMD ${CMAKE_CURRENT_SOURCE_DIR}/python/triton_amd.cc LINK_LIBS TritonAMDGPUToLLVM TritonAMDGPUTransforms TritonAMDGPUDialectToLLVM)
7-
target_link_libraries(TritonAMD PRIVATE Python3::Module pybind11::headers)
87
endif()
98
if(TRITON_BUILD_UT)
109
add_subdirectory(unittest)

third_party/nvidia/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ add_subdirectory(include)
44
add_subdirectory(lib)
55
if(TRITON_BUILD_PYTHON_MODULE)
66
add_triton_plugin(TritonNVIDIA ${CMAKE_CURRENT_SOURCE_DIR}/triton_nvidia.cc LINK_LIBS TritonNVIDIAGPUToLLVM NVGPUToLLVM)
7-
target_link_libraries(TritonNVIDIA PRIVATE Python3::Module pybind11::headers)
87
endif()
98
if(TRITON_BUILD_UT)
109
add_subdirectory(unittest)

third_party/proton/CMakeLists.txt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,19 @@ include_directories(${JSON_INCLUDE_DIR})
1919
include_directories(${PROTON_SRC_DIR}/include)
2020
include_directories(${PROTON_EXTERN_DIR})
2121

22-
find_package(Python3 REQUIRED Interpreter Development)
23-
find_package(pybind11 CONFIG REQUIRED HINTS "${Python3_SITELIB}")
22+
if(PYTHON_INCLUDE_DIRS)
23+
# We have PYTHON_INCLUDE_DIRS set--this is what we expect when building
24+
# using pip install.
25+
include_directories(${PYTHON_INCLUDE_DIRS})
26+
include_directories(${PYBIND11_INCLUDE_DIR})
27+
else()
28+
# Otherwise, we might be building from top CMakeLists.txt directly.
29+
# Try to find Python and pybind11 packages.
30+
find_package(Python3 REQUIRED Interpreter Development)
31+
find_package(pybind11 CONFIG REQUIRED HINTS "${Python3_SITELIB}")
32+
include_directories(${Python3_INCLUDE_DIRS})
33+
include_directories(${pybind11_INCLUDE_DIR})
34+
endif()
2435

2536
# Check if the platform is MacOS
2637
if(APPLE)
@@ -38,5 +49,4 @@ include_directories(${CUPTI_INCLUDE_DIR})
3849
include_directories(SYSTEM ${ROCTRACER_INCLUDE_DIR})
3950
target_compile_definitions(proton PRIVATE __HIP_PLATFORM_AMD__)
4051

41-
target_link_libraries(proton PRIVATE Python3::Module pybind11::headers)
42-
target_link_options(proton PRIVATE ${PROTON_PYTHON_LDFLAGS})
52+
target_link_libraries(proton PRIVATE ${Python_LIBRARIES} ${PROTON_PYTHON_LDFLAGS})

third_party/proton/dialect/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
33
add_subdirectory(include)
44
add_subdirectory(lib)
55
if(TRITON_BUILD_PYTHON_MODULE)
6-
add_triton_plugin(TritonProton ${CMAKE_CURRENT_SOURCE_DIR}/triton_proton.cc)
7-
target_link_libraries(TritonProton PRIVATE ProtonIR Python3::Module pybind11::headers)
6+
add_triton_plugin(TritonProton ${CMAKE_CURRENT_SOURCE_DIR}/triton_proton.cc LINK_LIBS ProtonIR)
87
endif()

0 commit comments

Comments
 (0)