Skip to content

Commit cb992f9

Browse files
committed
Make separate config variable for LLVM_LIBRARY_DIRS
@beanz tells me it should in fact exists, and it would be bad to put a list of dirs in `LLVM_LIBRARY_DIR`. I am therefore making some changes to help avoid this an other mistakes: - Use a separate `LLVM_CONFIG_LIBRARY_DIR` (no "S") variable so we don't start putting a list in `LLVM_LIBRARY_DIR` by mistake. - Define the individual dir variables first, and the define the list of dirs variables programmatically. Also, I rearranged the definitions of the "regular" single dirs below so `LLVM_BINARY_DIR`, which is the unsuffixed one, comes first before the suffixed ones. Reviewed By: beanz Differential Revision: https://reviews.llvm.org/D116497
1 parent af931a5 commit cb992f9

File tree

2 files changed

+45
-18
lines changed

2 files changed

+45
-18
lines changed

llvm/cmake/modules/CMakeLists.txt

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,35 @@ if(omp_gen IN_LIST LLVM_COMMON_DEPENDS)
3535
list(REMOVE_ITEM LLVM_COMMON_DEPENDS omp_gen)
3636
endif()
3737

38+
#
3839
# Generate LLVMConfig.cmake for the build tree.
40+
#
41+
3942
set(LLVM_CONFIG_CODE "
4043
# LLVM_BUILD_* values available only from LLVM build tree.
4144
set(LLVM_BUILD_BINARY_DIR \"${LLVM_BINARY_DIR}\")
4245
set(LLVM_BUILD_LIBRARY_DIR \"${LLVM_LIBRARY_DIR}\")
4346
set(LLVM_BUILD_MAIN_INCLUDE_DIR \"${LLVM_MAIN_INCLUDE_DIR}\")
4447
set(LLVM_BUILD_MAIN_SRC_DIR \"${LLVM_MAIN_SRC_DIR}\")
4548
")
49+
50+
set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_MAIN_INCLUDE_DIR}")
51+
set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_INCLUDE_DIR}")
4652
set(LLVM_CONFIG_INCLUDE_DIRS
47-
"${LLVM_MAIN_INCLUDE_DIR}"
48-
"${LLVM_INCLUDE_DIR}"
49-
)
50-
set(LLVM_CONFIG_INCLUDE_DIR
51-
"${LLVM_INCLUDE_DIR}"
52-
)
53-
set(LLVM_CONFIG_MAIN_INCLUDE_DIR
54-
"${LLVM_MAIN_INCLUDE_DIR}"
53+
"${LLVM_CONFIG_MAIN_INCLUDE_DIR}"
54+
"${LLVM_CONFIG_INCLUDE_DIR}"
5555
)
56+
list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS)
57+
58+
set(LLVM_CONFIG_LIBRARY_DIR "${LLVM_LIBRARY_DIR}")
5659
set(LLVM_CONFIG_LIBRARY_DIRS
57-
"${LLVM_LIBRARY_DIR}"
60+
"${LLVM_CONFIG_LIBRARY_DIR}"
61+
# FIXME: Should there be other entries here?
5862
)
59-
set(LLVM_CONFIG_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
63+
list(REMOVE_DUPLICATES LLVM_CONFIG_LIBRARY_DIRS)
64+
6065
set(LLVM_CONFIG_BINARY_DIR "${LLVM_BINARY_DIR}")
66+
set(LLVM_CONFIG_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
6167
set(LLVM_CONFIG_TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}")
6268

6369
# Generate a default location for lit
@@ -99,14 +105,31 @@ file(COPY .
99105
PATTERN CMakeFiles EXCLUDE
100106
)
101107

108+
#
102109
# Generate LLVMConfig.cmake for the install tree.
110+
#
111+
103112
find_prefix_from_config(LLVM_CONFIG_CODE LLVM_INSTALL_PREFIX "${LLVM_INSTALL_PACKAGE_DIR}")
104-
set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
105-
set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
106-
set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
107-
set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
108-
set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
113+
114+
set(LLVM_CONFIG_MAIN_INCLUDE_DIR "\${LLVM_INSTALL_PREFIX}/include")
115+
# This is the same as the above because the handwritten and generated headers
116+
# are combined in one directory at install time.
117+
set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_MAIN_INCLUDE_DIR}")
118+
set(LLVM_CONFIG_INCLUDE_DIRS
119+
"${LLVM_CONFIG_MAIN_INCLUDE_DIR}"
120+
"${LLVM_CONFIG_INCLUDE_DIR}"
121+
)
122+
list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS)
123+
124+
set(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
125+
set(LLVM_CONFIG_LIBRARY_DIRS
126+
"${LLVM_CONFIG_LIBRARY_DIR}"
127+
# FIXME: Should there be other entries here?
128+
)
129+
list(REMOVE_DUPLICATES LLVM_CONFIG_LIBRARY_DIRS)
130+
109131
set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
132+
set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
110133
set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
111134

112135
# Generate a default location for lit

llvm/cmake/modules/LLVMConfig.cmake.in

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,17 @@ set(LLVM_APPEND_VC_REV "@LLVM_APPEND_VC_REV@")
111111
# values for build tree. LLVM_INCLUDE_DIRS contains both source
112112
# and generated include directories while the following variables have
113113
# them split.
114-
set(LLVM_INCLUDE_DIR "@LLVM_CONFIG_INCLUDE_DIR@")
114+
115+
# These are the "main" dirs
115116
set(LLVM_MAIN_INCLUDE_DIR "@LLVM_CONFIG_MAIN_INCLUDE_DIR@")
116-
set(LLVM_LIBRARY_DIR "@LLVM_CONFIG_LIBRARY_DIRS@")
117+
set(LLVM_LIBRARY_DIR "@LLVM_CONFIG_LIBRARY_DIR@")
118+
119+
# This is a secondary one for generated files
120+
set(LLVM_INCLUDE_DIR "@LLVM_CONFIG_INCLUDE_DIR@")
117121

118122
set(LLVM_DEFINITIONS "@LLVM_DEFINITIONS@")
119-
set(LLVM_CMAKE_DIR "@LLVM_CONFIG_CMAKE_DIR@")
120123
set(LLVM_BINARY_DIR "@LLVM_CONFIG_BINARY_DIR@")
124+
set(LLVM_CMAKE_DIR "@LLVM_CONFIG_CMAKE_DIR@")
121125
set(LLVM_TOOLS_BINARY_DIR "@LLVM_CONFIG_TOOLS_BINARY_DIR@")
122126
set(LLVM_TOOLS_INSTALL_DIR "@LLVM_TOOLS_INSTALL_DIR@")
123127
set(LLVM_HAVE_OPT_VIEWER_MODULES @LLVM_HAVE_OPT_VIEWER_MODULES@)

0 commit comments

Comments
 (0)