Skip to content

Commit 0c4aeb8

Browse files
committed
Improve the way to find Enzyme.
1 parent 129cac4 commit 0c4aeb8

File tree

1 file changed

+19
-56
lines changed

1 file changed

+19
-56
lines changed

cmake/FindEnzyme.cmake

Lines changed: 19 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -64,73 +64,36 @@ User may set:
6464
6565
Author(s):
6666
- Asher Mancinelli <[email protected]>
67+
- Nicholson Koukpaizan <[email protected]>
6768
6869
]]
6970

70-
if(NOT ${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR NOT ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
71-
message(FATAL_ERROR "Enzyme may only be enabled if building with Clang")
72-
endif()
71+
find_package(Enzyme REQUIRED CONFIG
72+
PATHS
73+
${ENZYME_DIR}
74+
${ENZYME_DIR}/lib/cmake/Enzyme)
75+
message(STATUS "Enzyme configuration found: ${Enzyme_CONFIG}")
7376

7477
find_library(ENZYME_LLVM_PLUGIN_LIBRARY
7578
NAMES
76-
LLVMEnzyme-19.so
77-
LLVMEnzyme-18.so
78-
LLVMEnzyme-17.so
79-
LLVMEnzyme-16.so
80-
LLVMEnzyme-15.so
81-
LLVMEnzyme-14.so
82-
LLVMEnzyme-13.so
83-
LLVMEnzyme-12.so
84-
LLVMEnzyme-11.so
85-
LLVMEnzyme-10.so
86-
LLVMEnzyme-9.so
79+
LLVMEnzyme-${Enzyme_LLVM_VERSION_MAJOR}.so
8780
PATHS
88-
${ENZYME_DIR} $ENV{ENZYME_DIR}
89-
ENV LD_LIBRARY_PATH ENV DYLD_LIBRARY_PATH
81+
${ENZYME_DIR}
82+
ENV LD_LIBRARY_PATH
83+
ENV DYLD_LIBRARY_PATH
9084
PATH_SUFFIXES
9185
lib64 lib)
86+
message(STATUS "Enzyme LLVM plugin library: ${ENZYME_LLVM_PLUGIN_LIBRARY}")
9287

93-
find_library(ENZYME_CLANG_PLUGIN_LIBRARY
94-
NAMES
95-
ClangEnzyme-19.so
96-
ClangEnzyme-18.so
97-
ClangEnzyme-17.so
98-
ClangEnzyme-16.so
99-
ClangEnzyme-15.so
100-
ClangEnzyme-14.so
101-
ClangEnzyme-13.so
102-
ClangEnzyme-12.so
103-
ClangEnzyme-11.so
104-
ClangEnzyme-10.so
105-
ClangEnzyme-9.so
106-
PATHS
107-
${ENZYME_DIR} $ENV{ENZYME_DIR}
108-
ENV LD_LIBRARY_PATH ENV DYLD_LIBRARY_PATH
109-
PATH_SUFFIXES
110-
lib64 lib)
88+
find_program(GRIDKIT_LLVM_LINK llvm-link
89+
PATHS ${Enzyme_LLVM_BINARY_DIR}
90+
REQUIRED)
91+
message(STATUS "llvm-link: ${GRIDKIT_LLVM_LINK}")
11192

112-
find_program(GRIDKIT_LLVM_LINK llvm-link)
113-
find_program(GRIDKIT_OPT opt)
114-
115-
if("${GRIDKIT_LLVM_LINK}" STREQUAL "GRIDKIT_LLVM_LINK-NOTFOUND")
116-
message(FATAL_ERROR "Could not find llvm-link! Will not be able to build Enzyme targets.")
117-
endif()
118-
119-
if("${GRIDKIT_OPT}" STREQUAL "GRIDKIT_OPT-NOTFOUND")
120-
message(FATAL_ERROR "Could not find opt! Will not be able to build Enzyme targets.")
121-
endif()
122-
123-
message(STATUS "${ENZYME_CLANG_PLUGIN_LIBRARY};${ENZYME_LLVM_PLUGIN_LIBRARY}")
124-
if((NOT ${ENZYME_LLVM_PLUGIN_LIBRARY}) OR (NOT ${ENZYME_CLANG_PLUGIN_LIBRARY}))
125-
set(ENZYME_CLANG_PLUGIN_LIBRARY CACHE FILEPATH "Path to Enzyme Clang plugin library")
126-
set(ENZYME_LLVM_PLUGIN_LIBRARY CACHE FILEPATH "Path to Enzyme LLVM plugin library")
127-
message(STATUS "Found Enzyme clang plugin: ${ENZYME_CLANG_PLUGIN_LIBRARY}")
128-
message(STATUS "Found Enzyme LLVM plugin: ${ENZYME_LLVM_PLUGIN_LIBRARY}")
129-
get_filename_component(ENZYME_LIBRARY_DIR ${ENZYME_CLANG_PLUGIN_LIBRARY} DIRECTORY CACHE "Enzyme library directory")
130-
else()
131-
message(FATAL_ERROR "Enzyme library not found!"
132-
" Set ENZYME_DIR to Enzyme's installation prefix.")
133-
endif()
93+
find_program(GRIDKIT_OPT opt
94+
PATHS ${Enzyme_LLVM_BINARY_DIR}
95+
REQUIRED)
96+
message(STATUS "opt: ${GRIDKIT_OPT}")
13497

13598
macro(enzyme_add_executable)
13699
set(options)

0 commit comments

Comments
 (0)