Skip to content

Commit 80dd20d

Browse files
authored
Use upstream add_mlir_library CMake functions (#297)
* cmake regularization * reformat
1 parent 4a02e64 commit 80dd20d

File tree

12 files changed

+175
-113
lines changed

12 files changed

+175
-113
lines changed

CMakeLists.txt

+16-1
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,21 @@ foreach(target ${AIR_RUNTIME_TARGETS})
170170
TEST_EXCLUDE_FROM_MAIN true)
171171
endforeach()
172172

173+
if(NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
174+
install(
175+
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/runtime_lib/airhost/include
176+
DESTINATION include/..
177+
COMPONENT runtime_lib-headers
178+
FILES_MATCHING
179+
PATTERN "*.h"
180+
PATTERN "*.hpp")
181+
182+
if(NOT LLVM_ENABLE_IDE)
183+
add_llvm_install_targets(install-runtime_lib-headers DEPENDS
184+
runtime_lib-headers COMPONENT runtime_lib-headers)
185+
endif()
186+
endif()
187+
173188
add_subdirectory(python)
174189
if(NOT AIR_RUNTIME_TEST_TARGET_VAL)
175190
message(
@@ -181,5 +196,5 @@ else()
181196
add_subdirectory(test)
182197
endif()
183198
add_subdirectory(tools)
184-
add_subdirectory(cmake/modules)
185199
add_subdirectory(mlir)
200+
add_subdirectory(cmake/modules)

cmake/modules/AIRConfig.cmake.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ set(AIR_INCLUDE_DIRS "@AIR_CONFIG_INCLUDE_DIRS@")
1414

1515
# Provide all our library targets to users.
1616
include("@AIR_CONFIG_EXPORTS_FILE@")
17-
17+
include("@MLIR_CONFIG_INCLUDE_EXPORTS_FILE@")

cmake/modules/CMakeLists.txt

+28-27
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
33
# SPDX-License-Identifier: MIT
44

5-
# Generate a list of CMake library targets so that other CMake projects can
6-
# link against them. LLVM calls its version of this file LLVMExports.cmake, but
7-
# the usual CMake convention seems to be ${Project}Targets.cmake.
5+
# Generate a list of CMake library targets so that other CMake projects can link
6+
# against them. LLVM calls its version of this file LLVMExports.cmake, but the
7+
# usual CMake convention seems to be ${Project}Targets.cmake.
88
set(AIR_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/air)
99
set(air_cmake_builddir "${CMAKE_BINARY_DIR}/${AIR_INSTALL_PACKAGE_DIR}")
1010

@@ -15,27 +15,25 @@ export(EXPORT AIRTargets FILE ${air_cmake_builddir}/AIRTargets.cmake)
1515
set(AIR_CONFIG_CMAKE_DIR "${air_cmake_builddir}")
1616
set(AIR_CONFIG_BINARY_DIR "${PROJECT_BINARY_DIR}")
1717
set(AIR_CONFIG_TOOLS_BINARY_DIR "${PROJECT_BINARY_DIR}/bin")
18-
set(AIR_CONFIG_INCLUDE_DIRS
19-
"${PROJECT_SOURCE_DIR}/include"
20-
"${PROJECT_BINARY_DIR}/include"
21-
)
18+
set(AIR_CONFIG_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include"
19+
"${PROJECT_BINARY_DIR}/include")
2220
set(AIR_CONFIG_EXPORTS_FILE "\${AIR_CMAKE_DIR}/AIRTargets.cmake")
23-
configure_file(
24-
${CMAKE_CURRENT_SOURCE_DIR}/AIRConfig.cmake.in
25-
${air_cmake_builddir}/AIRConfig.cmake
26-
@ONLY)
21+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AIRConfig.cmake.in
22+
${air_cmake_builddir}/AIRConfig.cmake @ONLY)
2723
set(AIR_CONFIG_CMAKE_DIR)
2824
set(AIR_CONFIG_BINARY_DIR)
2925
set(AIR_CONFIG_TOOLS_BINARY_DIR)
3026
set(AIR_CONFIG_INCLUDE_DIRS)
3127
set(AIR_CONFIG_EXPORTS_FILE)
3228

3329
# Generate AIRConfig.cmake for the install tree.
34-
set(AIR_CONFIG_CODE "
30+
set(AIR_CONFIG_CODE
31+
"
3532
# Compute the installation prefix from this file location.
36-
get_filename_component(AIR_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
37-
# Construct the proper number of get_filename_component(... PATH)
38-
# calls to compute the installation prefix.
33+
get_filename_component(AIR_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)"
34+
)
35+
# Construct the proper number of get_filename_component(... PATH) calls to
36+
# compute the installation prefix.
3937
string(REGEX REPLACE "/" ";" _count "${AIR_INSTALL_PACKAGE_DIR}")
4038
foreach(p ${_count})
4139
set(AIR_CONFIG_CODE "${AIR_CONFIG_CODE}
@@ -45,14 +43,11 @@ endforeach(p)
4543
set(AIR_CONFIG_CMAKE_DIR "\${AIR_INSTALL_PREFIX}/${AIR_INSTALL_PACKAGE_DIR}")
4644
set(AIR_CONFIG_BINARY_DIR "\${AIR_INSTALL_PREFIX}")
4745
set(AIR_CONFIG_TOOLS_BINARY_DIR "\${AIR_INSTALL_PREFIX}/bin")
48-
set(AIR_CONFIG_INCLUDE_DIRS
49-
"\${AIR_INSTALL_PREFIX}/include"
50-
)
46+
set(AIR_CONFIG_INCLUDE_DIRS "\${AIR_INSTALL_PREFIX}/include")
5147
set(AIR_CONFIG_EXPORTS_FILE "\${AIR_CMAKE_DIR}/AIRTargets.cmake")
52-
configure_file(
53-
${CMAKE_CURRENT_SOURCE_DIR}/AIRConfig.cmake.in
54-
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/AIRConfig.cmake
55-
@ONLY)
48+
set(MLIR_CONFIG_INCLUDE_EXPORTS_FILE "\${AIR_CMAKE_DIR}/MLIRTargets.cmake")
49+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/AIRConfig.cmake.in
50+
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/AIRConfig.cmake @ONLY)
5651
set(AIR_CONFIG_CODE)
5752
set(AIR_CONFIG_CMAKE_DIR)
5853
set(AIR_CONFIG_BINARY_DIR)
@@ -61,9 +56,15 @@ set(AIR_CONFIG_INCLUDE_DIRS)
6156
set(AIR_CONFIG_EXPORTS_FILE)
6257

6358
# export targets for the install directory
64-
install(EXPORT AIRTargets DESTINATION ${AIR_INSTALL_PACKAGE_DIR}
65-
COMPONENT air-cmake-exports)
66-
install(FILES
67-
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/AIRConfig.cmake
59+
install(
60+
EXPORT AIRTargets
6861
DESTINATION ${AIR_INSTALL_PACKAGE_DIR}
69-
COMPONENT air-cmake-exports)
62+
COMPONENT air-cmake-exports)
63+
install(
64+
EXPORT MLIRTargets
65+
DESTINATION ${AIR_INSTALL_PACKAGE_DIR}
66+
COMPONENT air-cmake-exports)
67+
install(
68+
FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/AIRConfig.cmake
69+
DESTINATION ${AIR_INSTALL_PACKAGE_DIR}
70+
COMPONENT air-cmake-exports)

mlir/CMakeLists.txt

+31
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,34 @@
55
add_subdirectory(lib)
66
add_subdirectory(include)
77
add_subdirectory(test)
8+
9+
if(NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
10+
install(
11+
DIRECTORY include/air include/air-c
12+
DESTINATION include
13+
COMPONENT air-headers
14+
FILES_MATCHING
15+
PATTERN "*.def"
16+
PATTERN "*.h"
17+
PATTERN "*.inc"
18+
PATTERN "*.td"
19+
PATTERN "LICENSE.TXT")
20+
21+
install(
22+
DIRECTORY ${PROJECT_BINARY_DIR}/include/air
23+
DESTINATION include
24+
COMPONENT air-headers
25+
FILES_MATCHING
26+
PATTERN "*.def"
27+
PATTERN "*.h"
28+
PATTERN "*.gen"
29+
PATTERN "*.inc"
30+
PATTERN "*.td"
31+
PATTERN "CMakeFiles" EXCLUDE
32+
PATTERN "config.h" EXCLUDE)
33+
34+
if(NOT LLVM_ENABLE_IDE)
35+
add_llvm_install_targets(install-air-headers DEPENDS air-headers COMPONENT
36+
air-headers)
37+
endif()
38+
endif()

mlir/lib/CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ add_subdirectory(Util)
1212
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
1313
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
1414

15-
add_air_library(AIRInitAll
15+
add_mlir_library(
16+
AIRInitAll
1617
InitAll.cpp
1718

1819
DEPENDS
@@ -29,5 +30,4 @@ add_air_library(AIRInitAll
2930
AIRUtil
3031
MLIRSupport
3132
${conversion_libs}
32-
${dialect_libs}
33-
)
33+
${dialect_libs})

mlir/lib/Conversion/CMakeLists.txt

+25-25
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,31 @@
22
# Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
33
# SPDX-License-Identifier: MIT
44

5-
add_air_library(AIRConversionPasses
6-
ConvertToAIRPass.cpp
7-
AIRLoweringPass.cpp
8-
AIRRtToLLVMPass.cpp
9-
AIRToAIEPass.cpp
10-
AIRToAsyncPass.cpp
11-
AIRPipeline.cpp
12-
Passes.cpp
5+
add_mlir_library(
6+
AIRConversionPasses
7+
ConvertToAIRPass.cpp
8+
AIRLoweringPass.cpp
9+
AIRRtToLLVMPass.cpp
10+
AIRToAIEPass.cpp
11+
AIRToAsyncPass.cpp
12+
AIRPipeline.cpp
13+
Passes.cpp
1314

14-
DEPENDS
15-
AIRConversionPassIncGen
16-
AIRDialect
17-
AIRRtDialect
15+
DEPENDS
16+
AIRConversionPassIncGen
17+
AIRDialect
18+
AIRRtDialect
1819

19-
LINK_COMPONENTS
20-
Core
20+
LINK_COMPONENTS
21+
Core
2122

22-
LINK_LIBS
23-
AIRDialect
24-
AIRRtDialect
25-
AIRUtil
26-
AIE
27-
MLIRIR
28-
MLIRLinalgUtils
29-
MLIRLinalgTransforms
30-
MLIRSupport
31-
MLIRTransforms
32-
)
23+
LINK_LIBS
24+
AIRDialect
25+
AIRRtDialect
26+
AIRUtil
27+
AIE
28+
MLIRIR
29+
MLIRLinalgUtils
30+
MLIRLinalgTransforms
31+
MLIRSupport
32+
MLIRTransforms)

mlir/lib/Dialect/AIR/IR/CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
# Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
33
# SPDX-License-Identifier: MIT
44

5-
add_air_dialect_library(AIRDialect
5+
add_mlir_dialect_library(
6+
AIRDialect
67
AIRDialect.cpp
78

89
ADDITIONAL_HEADER_DIRS
@@ -13,5 +14,4 @@ add_air_dialect_library(AIRDialect
1314
MLIRAIROpInterfacesIncGen
1415

1516
LINK_LIBS PUBLIC
16-
MLIRIR
17-
)
17+
MLIRIR)

mlir/lib/Dialect/AIRRt/IR/CMakeLists.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
# Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
33
# SPDX-License-Identifier: MIT
44

5-
add_air_dialect_library(AIRRtDialect
5+
add_mlir_dialect_library(
6+
AIRRtDialect
67
AIRRtDialect.cpp
78
AIRRtOps.cpp
89

@@ -13,5 +14,4 @@ add_air_dialect_library(AIRRtDialect
1314
MLIRAIRRtOpsIncGen
1415

1516
LINK_LIBS PUBLIC
16-
MLIRIR
17-
)
17+
MLIRIR)

mlir/lib/Targets/CMakeLists.txt

+4-6
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22
# Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
33
# SPDX-License-Identifier: MIT
44

5-
add_air_library(AIRTargets
5+
add_mlir_library(
6+
AIRTargets
67
AIRTargets.cpp
78
AIRHerdToJSON.cpp
89

9-
LINK_LIBS
10-
11-
PUBLIC
10+
LINK_LIBS PUBLIC
1211
AIRRtDialect
1312
AIRDialect
1413
MLIRIR
1514
MLIRSupport
16-
MLIRTransforms
17-
)
15+
MLIRTransforms)

mlir/lib/Transform/CMakeLists.txt

+36-36
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,42 @@
22
# Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
33
# SPDX-License-Identifier: MIT
44

5-
add_air_library(AIRTransformPasses
6-
AffineLoopOptPass.cpp
7-
AIRAutomaticTilingPass.cpp
8-
AIRHerdAssignPass.cpp
9-
AIRHerdPlacementPass.cpp
10-
AIRLinalgCodegen.cpp
11-
AIRLinalgOpStats.cpp
12-
AIRLoopMergingPass.cpp
13-
AIRLoopPermutationPass.cpp
14-
AIRLowerLinalgTensors.cpp
15-
AIRMiscPasses.cpp
16-
AIRRegularizeLoopPass.cpp
17-
AIRTilingUtils.cpp
18-
AIRTransformInterpreter.cpp
19-
AIRDependency.cpp
20-
AIRDependencyScheduleOpt.cpp
21-
AIRDependencyCanonicalize.cpp
22-
AIRDependencyParseGraph.cpp
23-
Passes.cpp
24-
ReturnEliminationPass.cpp
5+
add_mlir_library(
6+
AIRTransformPasses
7+
AffineLoopOptPass.cpp
8+
AIRAutomaticTilingPass.cpp
9+
AIRHerdAssignPass.cpp
10+
AIRHerdPlacementPass.cpp
11+
AIRLinalgCodegen.cpp
12+
AIRLinalgOpStats.cpp
13+
AIRLoopMergingPass.cpp
14+
AIRLoopPermutationPass.cpp
15+
AIRLowerLinalgTensors.cpp
16+
AIRMiscPasses.cpp
17+
AIRRegularizeLoopPass.cpp
18+
AIRTilingUtils.cpp
19+
AIRTransformInterpreter.cpp
20+
AIRDependency.cpp
21+
AIRDependencyScheduleOpt.cpp
22+
AIRDependencyCanonicalize.cpp
23+
AIRDependencyParseGraph.cpp
24+
Passes.cpp
25+
ReturnEliminationPass.cpp
2526

26-
DEPENDS
27-
AIRTransformOpsIncGen
28-
AIRTransformPassIncGen
29-
AIRDialect
30-
AIRRtDialect
27+
DEPENDS
28+
AIRTransformOpsIncGen
29+
AIRTransformPassIncGen
30+
AIRDialect
31+
AIRRtDialect
3132

32-
LINK_COMPONENTS
33-
Core
33+
LINK_COMPONENTS
34+
Core
3435

35-
LINK_LIBS PUBLIC
36-
AIRDialect
37-
AIRRtDialect
38-
AIRUtil
39-
MLIRIR
40-
MLIRLinalgTransforms
41-
MLIRLinalgUtils
42-
MLIRSupport
43-
)
36+
LINK_LIBS PUBLIC
37+
AIRDialect
38+
AIRRtDialect
39+
AIRUtil
40+
MLIRIR
41+
MLIRLinalgTransforms
42+
MLIRLinalgUtils
43+
MLIRSupport)

python/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ declare_mlir_python_extension(AirPythonExtensions.MLIR
6060
SOURCES
6161
AIRMLIRModule.cpp
6262
AIRRunnerModule.cpp
63+
AIRRunnerModule.h
6364
EMBED_CAPI_LINK_LIBS
6465
AIRCAPI
6566
PRIVATE_LINK_LIBS
@@ -73,6 +74,7 @@ declare_mlir_python_extension(AirPythonExtensions.AIRRt
7374
SOURCES
7475
Module.cpp
7576
LibAirHostModule.cpp
77+
LibAirHostModule.h
7678
EMBED_CAPI_LINK_LIBS
7779
AIRCAPI
7880
PRIVATE_LINK_LIBS

0 commit comments

Comments
 (0)