1
+ cmake_minimum_required (VERSION 3.9 )
1
2
project (Enzyme )
2
3
3
- cmake_minimum_required (VERSION 3.9 )
4
+ include (CMakePackageConfigHelpers )
5
+
6
+
7
+ set (ENZYME_MAJOR_VERSION 0 )
8
+ set (ENZYME_MINOR_VERSION 0 )
9
+ set (ENZYME_PATCH_VERSION 19 )
10
+ set (ENZYME_VERSION
11
+ ${ENZYME_MAJOR_VERSION} .${ENZYME_MINOR_VERSION}.${ENZYME_PATCH_VERSION} )
12
+
4
13
5
14
SET (CMAKE_CXX_FLAGS "-Wall -fPIC -fno-rtti" )
6
15
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -ggdb" )
@@ -57,6 +66,18 @@ message("LLVM_INCLUDE_DIRS: ${LLVM_INCLUDE_DIRS}")
57
66
message ("found llvm definitions " ${LLVM_DEFINITIONS} )
58
67
message ("found llvm version " ${LLVM_VERSION_MAJOR} )
59
68
69
+
70
+ # Offer the user the choice of overriding the installation directories
71
+ set (INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files" )
72
+ if (WIN32 AND NOT CYGWIN )
73
+ set (DEF_INSTALL_CMAKE_DIR CMake )
74
+ else ()
75
+ set (DEF_INSTALL_CMAKE_DIR lib/CMake/Enzyme )
76
+ endif ()
77
+ set (INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH
78
+ "Installation directory for CMake files" )
79
+
80
+
60
81
list (GET LLVM_INCLUDE_DIRS 0 LLVM_IDIR )
61
82
message ("first llvm include directory" ${LLVM_IDIR} )
62
83
@@ -97,3 +118,43 @@ add_subdirectory(test)
97
118
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR} /benchmarks" )
98
119
add_subdirectory (benchmarks )
99
120
endif ()
121
+
122
+
123
+ # Make relative paths absolute (needed later on)
124
+ foreach (p LIB BIN INCLUDE CMAKE )
125
+ set (var INSTALL_${p}_DIR )
126
+ if (NOT IS_ABSOLUTE "${${var} }" )
127
+ set (${var} "${CMAKE_INSTALL_PREFIX} /${${var} }" )
128
+ endif ()
129
+ endforeach ()
130
+
131
+ export (TARGETS LLVMEnzyme-${LLVM_VERSION_MAJOR} ClangEnzyme-${LLVM_VERSION_MAJOR}
132
+ FILE "${PROJECT_BINARY_DIR} /EnzymeTargets.cmake" )
133
+
134
+ export (PACKAGE Enzyme )
135
+
136
+ set (CONF_LLVM_VERSION_MAJOR ${LLVM_VERSION_MAJOR} )
137
+ set (CONF_LLVM_VERSION_MINOR ${LLVM_VERSION_MINOR} )
138
+ set (CONF_LLVM_VERSION_PATCH ${LLVM_VERSION_PATCH} )
139
+ set (CONF_LLVM_DIR ${LLVM_DIR} )
140
+ set (CONF_LLVM_BINARY_DIR ${LLVM_BINARY_DIR} )
141
+
142
+ set (CONF_INCLUDE_DIRS lib )
143
+ configure_file (cmake/EnzymeConfig.cmake.in
144
+ "${PROJECT_BINARY_DIR} /EnzymeConfig.cmake" @ONLY )
145
+
146
+ set (CONF_INCLUDE_DIRS lib )
147
+ configure_file (cmake/EnzymeConfig.cmake.in
148
+ "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY} /EnzymeConfig.cmake" @ONLY )
149
+
150
+ configure_file (cmake/EnzymeConfigVersion.cmake.in
151
+ "${PROJECT_BINARY_DIR} /EnzymeConfigVersion.cmake" @ONLY )
152
+
153
+ install (FILES
154
+ "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY} /EnzymeConfig.cmake"
155
+ "${PROJECT_BINARY_DIR} /EnzymeConfigVersion.cmake"
156
+ DESTINATION "${INSTALL_CMAKE_DIR} " COMPONENT dev )
157
+
158
+ install (EXPORT EnzymeTargets DESTINATION
159
+ "${INSTALL_CMAKE_DIR} " COMPONENT dev NAMESPACE Enzyme:: )
160
+
0 commit comments