authorgravatar for ianlilleyt@gmail.comIan Lilley <ianlilleyt@gmail.com> 2019-07-09 08:48:25-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-07-09 11:48:25-04:00
logd23798a296ddab023009dab860b6cb9361a62abd
tree689c33b9c8dcefec681e52331e426c37a6fa084a
parenteebb00193d9e4531438b0f8c5dbcbea9a90e6a7e

fixed path with spaces in llvm-config (#2854)

* fixed path with spaces in llvm-config

1 files changed, 53 insertions(+), 47 deletions(-)

cmake/Findllvm.cmake+53-47
......@@ -5,15 +5,15 @@
55# LLVM_FOUND
66# LLVM_INCLUDE_DIRS
77# LLVM_LIBRARIES
8# LLVM_LIBDIRS
8# LLVM_LIBDIR
99
1010find_program(LLVM_CONFIG_EXE
11 NAMES llvm-config-8 llvm-config-8.0 llvm-config80 llvm-config
12 PATHS
13 "/mingw64/bin"
14 "/c/msys64/mingw64/bin"
15 "c:/msys64/mingw64/bin"
16 "C:/Libraries/llvm-8.0.0/bin")
11 NAMES llvm-config-8 llvm-config-8.0 llvm-config80 llvm-config
12 PATHS
13 "/mingw64/bin"
14 "/c/msys64/mingw64/bin"
15 "c:/msys64/mingw64/bin"
16 "C:/Libraries/llvm-8.0.0/bin")
1717
1818if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
1919 message(FATAL_ERROR "unable to find llvm-config")
......@@ -24,9 +24,9 @@ if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
2424endif()
2525
2626execute_process(
27 COMMAND ${LLVM_CONFIG_EXE} --version
28 OUTPUT_VARIABLE LLVM_CONFIG_VERSION
29 OUTPUT_STRIP_TRAILING_WHITESPACE)
27 COMMAND ${LLVM_CONFIG_EXE} --version
28 OUTPUT_VARIABLE LLVM_CONFIG_VERSION
29 OUTPUT_STRIP_TRAILING_WHITESPACE)
3030
3131if("${LLVM_CONFIG_VERSION}" VERSION_LESS 8)
3232 message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")
......@@ -39,15 +39,15 @@ if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 9)
3939endif()
4040
4141execute_process(
42 COMMAND ${LLVM_CONFIG_EXE} --targets-built
43 OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES
44 OUTPUT_STRIP_TRAILING_WHITESPACE)
45string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}")
42 COMMAND ${LLVM_CONFIG_EXE} --targets-built
43 OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES
44 OUTPUT_STRIP_TRAILING_WHITESPACE)
45 string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}")
4646function(NEED_TARGET TARGET_NAME)
47 list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index)
48 if (${_index} EQUAL -1)
49 message(FATAL_ERROR "LLVM is missing target ${TARGET_NAME}. Zig requires LLVM to be built with all default targets enabled.")
50 endif()
47 list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index)
48 if (${_index} EQUAL -1)
49 message(FATAL_ERROR "LLVM is missing target ${TARGET_NAME}. Zig requires LLVM to be built with all default targets enabled.")
50 endif()
5151endfunction(NEED_TARGET)
5252NEED_TARGET("AArch64")
5353NEED_TARGET("AMDGPU")
......@@ -67,47 +67,53 @@ NEED_TARGET("XCore")
6767
6868if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug") OR ZIG_STATIC)
6969 execute_process(
70 COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static
71 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
72 OUTPUT_STRIP_TRAILING_WHITESPACE)
73 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
70 COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static
71 OUTPUT_VARIABLE LLVM_LIBDIR_ORIG
72 OUTPUT_STRIP_TRAILING_WHITESPACE)
73 file(TO_CMAKE_PATH "${LLVM_LIBDIR_ORIG}" LLVM_LIBDIR)
7474
7575 execute_process(
76 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
77 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
78 OUTPUT_STRIP_TRAILING_WHITESPACE)
79 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
76 COMMAND ${LLVM_CONFIG_EXE} --libnames --link-static
77 OUTPUT_VARIABLE LLVM_LIBNAMES_SPACES
78 OUTPUT_STRIP_TRAILING_WHITESPACE)
79 string(REPLACE " " ";" LLVM_LIBNAMES "${LLVM_LIBNAMES_SPACES}")
80 foreach(LLVM_LIBNAME ${LLVM_LIBNAMES})
81 list(APPEND LLVM_LIBRARIES "${LLVM_LIBDIR}/${LLVM_LIBNAME}")
82 endforeach()
8083
8184 execute_process(
82 COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static
83 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
84 OUTPUT_STRIP_TRAILING_WHITESPACE)
85 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
85 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
86 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
87 OUTPUT_STRIP_TRAILING_WHITESPACE)
88 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
8689endif()
8790if(NOT LLVM_LIBRARIES)
8891 execute_process(
89 COMMAND ${LLVM_CONFIG_EXE} --libs
90 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
91 OUTPUT_STRIP_TRAILING_WHITESPACE)
92 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
92 COMMAND ${LLVM_CONFIG_EXE} --libdir
93 OUTPUT_VARIABLE LLVM_LIBDIR_ORIG
94 OUTPUT_STRIP_TRAILING_WHITESPACE)
95 file(TO_CMAKE_PATH "${LLVM_LIBDIR_ORIG}" LLVM_LIBDIR)
9396
9497 execute_process(
95 COMMAND ${LLVM_CONFIG_EXE} --system-libs
96 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
97 OUTPUT_STRIP_TRAILING_WHITESPACE)
98 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
98 COMMAND ${LLVM_CONFIG_EXE} --libs
99 OUTPUT_VARIABLE LLVM_LIBNAMES_SPACES
100 OUTPUT_STRIP_TRAILING_WHITESPACE)
101 string(REPLACE " " ";" LLVM_LIBNAMES "${LLVM_LIBNAMES_SPACES}")
102 foreach(LLVM_LIBNAME ${LLVM_LIBNAMES})
103 list(APPEND LLVM_LIBRARIES "${LLVM_LIBDIR}/${LLVM_LIBNAME}")
104 endforeach()
99105
100106 execute_process(
101 COMMAND ${LLVM_CONFIG_EXE} --libdir
102 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
103 OUTPUT_STRIP_TRAILING_WHITESPACE)
104 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
107 COMMAND ${LLVM_CONFIG_EXE} --system-libs
108 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
109 OUTPUT_STRIP_TRAILING_WHITESPACE)
110 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
105111endif()
106112
107113execute_process(
108 COMMAND ${LLVM_CONFIG_EXE} --includedir
109 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
110 OUTPUT_STRIP_TRAILING_WHITESPACE)
114 COMMAND ${LLVM_CONFIG_EXE} --includedir
115 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
116 OUTPUT_STRIP_TRAILING_WHITESPACE)
111117
112118set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
113119
......@@ -116,9 +122,9 @@ if(NOT LLVM_LIBRARIES)
116122endif()
117123
118124link_directories("${CMAKE_PREFIX_PATH}/lib")
119link_directories("${LLVM_LIBDIRS}")
125link_directories("${LLVM_LIBDIR}")
120126
121127include(FindPackageHandleStandardArgs)
122128find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS)
123129
124mark_as_advanced(LLVM_INCLUDE_DIRS LLVM_LIBRARIES LLVM_LIBDIRS)
130mark_as_advanced(LLVM_INCLUDE_DIRS LLVM_LIBRARIES LLVM_LIBDIR)