Skip to content

Commit 77c145c

Browse files
authored
[BUILD] Bump cmake requirement to >= 3.20 and format CMakeLists.txt (#1276)
cc @malfet
1 parent e6edcdf commit 77c145c

File tree

2 files changed

+51
-41
lines changed

2 files changed

+51
-41
lines changed

CMakeLists.txt

Lines changed: 50 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
cmake_minimum_required(VERSION 3.6)
1+
cmake_minimum_required(VERSION 3.20)
22

3+
# Introduced in cmake 3.20
4+
# https://cmake.org/cmake/help/latest/policy/CMP0116.html
35
cmake_policy(SET CMP0116 OLD)
46

57
include(ExternalProject)
@@ -10,6 +12,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
1012

1113
project(triton)
1214
include(CTest)
15+
1316
if(NOT WIN32)
1417
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
1518
endif()
@@ -19,7 +22,7 @@ option(TRITON_BUILD_TUTORIALS "Build C++ Triton tutorials" ON)
1922
option(TRITON_BUILD_PYTHON_MODULE "Build Python Triton bindings" OFF)
2023

2124
# Ensure Python3 vars are set correctly
22-
# used conditionally in this file and by lit tests
25+
# used conditionally in this file and by lit tests
2326

2427
# Customized release build type with assertions: TritonRelBuildWithAsserts
2528
set(CMAKE_C_FLAGS_TRITONRELBUILDWITHASSERTS "-O2 -g")
@@ -32,7 +35,7 @@ if(NOT CMAKE_BUILD_TYPE)
3235
endif()
3336

3437
if(NOT WIN32)
35-
find_library(TERMINFO_LIBRARY tinfo)
38+
find_library(TERMINFO_LIBRARY tinfo)
3639
endif()
3740

3841
# Compiler flags
@@ -42,22 +45,21 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
4245
include_directories(${PYBIND11_INCLUDE_DIR})
4346

4447
if(WIN32)
45-
SET(BUILD_SHARED_LIBS OFF)
46-
find_package(dlfcn-win32 REQUIRED)
47-
set(CMAKE_DL_LIBS dlfcn-win32::dl)
48+
SET(BUILD_SHARED_LIBS OFF)
49+
find_package(dlfcn-win32 REQUIRED)
50+
set(CMAKE_DL_LIBS dlfcn-win32::dl)
4851
endif()
4952

5053
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -D__STDC_FORMAT_MACROS -fPIC -std=gnu++17 -fvisibility=hidden -fvisibility-inlines-hidden")
54+
5155
if(APPLE)
5256
set(CMAKE_OSX_DEPLOYMENT_TARGET 11.6)
5357
endif()
5458

55-
56-
57-
##########
59+
# #########
5860
# LLVM
59-
##########
60-
if (NOT MLIR_DIR)
61+
# #########
62+
if(NOT MLIR_DIR)
6163
if(NOT LLVM_LIBRARY_DIR)
6264
if(WIN32)
6365
find_package(LLVM 13 REQUIRED COMPONENTS nvptx amdgpu)
@@ -73,12 +75,16 @@ if (NOT MLIR_DIR)
7375
else()
7476
find_package(LLVM 11 REQUIRED COMPONENTS "nvptx;amdgpu")
7577
endif()
78+
7679
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
80+
7781
# FindLLVM outputs LLVM_LIBRARY_DIRS but we expect LLVM_LIBRARY_DIR here
7882
set(LLVM_LIBRARY_DIR ${LLVM_LIBRARY_DIRS})
83+
7984
if(APPLE)
8085
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
8186
endif()
87+
8288
# sometimes we don't want to use llvm-config, since it may have been downloaded for some specific linux distros
8389
else()
8490
set(LLVM_LDFLAGS "-L${LLVM_LIBRARY_DIR}")
@@ -138,37 +144,38 @@ if (NOT MLIR_DIR)
138144
libLLVMAnalysis.a
139145
)
140146
endif()
141-
set (MLIR_DIR ${LLVM_LIBRARY_DIR}/cmake/mlir)
147+
148+
set(MLIR_DIR ${LLVM_LIBRARY_DIR}/cmake/mlir)
142149
endif()
143150

144151
# Python module
145152
if(TRITON_BUILD_PYTHON_MODULE)
146-
message(STATUS "Adding Python module")
147-
set(PYTHON_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/python/src)
148-
set(PYTHON_SRC ${PYTHON_SRC_PATH}/main.cc ${PYTHON_SRC_PATH}/triton.cc)
149-
include_directories("." ${PYTHON_SRC_PATH})
150-
if (PYTHON_INCLUDE_DIRS)
151-
include_directories(${PYTHON_INCLUDE_DIRS})
152-
else()
153-
find_package(Python3 REQUIRED COMPONENTS Development Interpreter)
154-
include_directories(${Python3_INCLUDE_DIRS})
155-
link_directories(${Python3_LIBRARY_DIRS})
156-
link_libraries(${Python3_LIBRARIES})
157-
add_link_options(${Python3_LINK_OPTIONS})
158-
endif()
153+
message(STATUS "Adding Python module")
154+
set(PYTHON_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/python/src)
155+
set(PYTHON_SRC ${PYTHON_SRC_PATH}/main.cc ${PYTHON_SRC_PATH}/triton.cc)
156+
include_directories("." ${PYTHON_SRC_PATH})
157+
158+
if(PYTHON_INCLUDE_DIRS)
159+
include_directories(${PYTHON_INCLUDE_DIRS})
160+
else()
161+
find_package(Python3 REQUIRED COMPONENTS Development Interpreter)
162+
include_directories(${Python3_INCLUDE_DIRS})
163+
link_directories(${Python3_LIBRARY_DIRS})
164+
link_libraries(${Python3_LIBRARIES})
165+
add_link_options(${Python3_LINK_OPTIONS})
166+
endif()
159167
endif()
160168

161169
# # Triton
162170
# file(GLOB_RECURSE LIBTRITON_SRC lib/*.cc)
163171
# if (WIN32 AND TRITON_BUILD_PYTHON_MODULE)
164-
# Python3_add_library(triton SHARED ${LIBTRITON_SRC} ${PYTHON_SRC})
165-
# set_target_properties(triton PROPERTIES SUFFIX ".pyd")
166-
# set_target_properties(triton PROPERTIES PREFIX "lib")
172+
# Python3_add_library(triton SHARED ${LIBTRITON_SRC} ${PYTHON_SRC})
173+
# set_target_properties(triton PROPERTIES SUFFIX ".pyd")
174+
# set_target_properties(triton PROPERTIES PREFIX "lib")
167175
# else()
168-
# add_library(triton SHARED ${LIBTRITON_SRC} ${PYTHON_SRC})
176+
# add_library(triton SHARED ${LIBTRITON_SRC} ${PYTHON_SRC})
169177
# endif()
170178

171-
172179
# MLIR
173180
find_package(MLIR REQUIRED CONFIG PATHS ${MLIR_DIR})
174181

@@ -186,14 +193,13 @@ include_directories(${MLIR_INCLUDE_DIRS})
186193
include_directories(${LLVM_INCLUDE_DIRS})
187194
include_directories(${PROJECT_SOURCE_DIR}/include)
188195
include_directories(${PROJECT_BINARY_DIR}/include) # Tablegen'd files
189-
# link_directories(${LLVM_LIBRARY_DIR})
190196

197+
# link_directories(${LLVM_LIBRARY_DIR})
191198
add_subdirectory(include)
192199
add_subdirectory(lib)
193200
add_subdirectory(bin)
194201

195202
# find_package(PythonLibs REQUIRED)
196-
197203
set(TRITON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
198204
set(TRITON_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
199205

@@ -210,6 +216,7 @@ if(TRITON_BUILD_PYTHON_MODULE)
210216
TritonPTX
211217
${dialect_libs}
212218
${conversion_libs}
219+
213220
# optimizations
214221
MLIRPass
215222
MLIRTransforms
@@ -221,6 +228,7 @@ if(TRITON_BUILD_PYTHON_MODULE)
221228
MLIRNVVMToLLVMIRTranslation
222229
MLIRIR
223230
)
231+
224232
if(WIN32)
225233
target_link_libraries(triton PRIVATE ${LLVM_LIBRARIES} ${CMAKE_DL_LIBS}
226234
${TRITON_LIBRARIES}
@@ -234,21 +242,23 @@ if(TRITON_BUILD_PYTHON_MODULE)
234242
${TRITON_LIBRARIES}
235243
)
236244
endif()
237-
245+
238246
target_link_options(triton PRIVATE ${LLVM_LDFLAGS})
239247
endif()
240248

241-
if (UNIX AND NOT APPLE)
249+
if(UNIX AND NOT APPLE)
242250
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--exclude-libs,ALL")
243251
endif()
244252

245253
if(TRITON_BUILD_PYTHON_MODULE AND NOT WIN32)
246-
set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
247-
# Check if the platform is MacOS
248-
if(APPLE)
249-
set(PYTHON_LDFLAGS "-undefined dynamic_lookup -flto")
250-
endif()
251-
target_link_libraries(triton ${CUTLASS_LIBRARIES} ${PYTHON_LDFLAGS})
254+
set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
255+
256+
# Check if the platform is MacOS
257+
if(APPLE)
258+
set(PYTHON_LDFLAGS "-undefined dynamic_lookup -flto")
259+
endif()
260+
261+
target_link_libraries(triton ${CUTLASS_LIBRARIES} ${PYTHON_LDFLAGS})
252262
endif()
253263

254264
add_subdirectory(test)

python/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ def build_extension(self, ext):
215215
long_description="",
216216
packages=["triton", "triton/_C", "triton/language", "triton/tools", "triton/impl", "triton/ops", "triton/runtime", "triton/ops/blocksparse"],
217217
install_requires=[
218-
"cmake",
218+
"cmake>=3.20",
219219
"filelock",
220220
"torch",
221221
"lit",

0 commit comments

Comments
 (0)