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 @@...@@ -5,15 +5,15 @@
5# LLVM_FOUND5# LLVM_FOUND
6# LLVM_INCLUDE_DIRS6# LLVM_INCLUDE_DIRS
7# LLVM_LIBRARIES7# LLVM_LIBRARIES
8# LLVM_LIBDIRS8# LLVM_LIBDIR
99
10find_program(LLVM_CONFIG_EXE10find_program(LLVM_CONFIG_EXE
11 NAMES llvm-config-8 llvm-config-8.0 llvm-config80 llvm-config11 NAMES llvm-config-8 llvm-config-8.0 llvm-config80 llvm-config
12 PATHS12 PATHS
13 "/mingw64/bin"13 "/mingw64/bin"
14 "/c/msys64/mingw64/bin"14 "/c/msys64/mingw64/bin"
15 "c:/msys64/mingw64/bin"15 "c:/msys64/mingw64/bin"
16 "C:/Libraries/llvm-8.0.0/bin")16 "C:/Libraries/llvm-8.0.0/bin")
1717
18if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")18if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
19 message(FATAL_ERROR "unable to find llvm-config")19 message(FATAL_ERROR "unable to find llvm-config")
...@@ -24,9 +24,9 @@ if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")...@@ -24,9 +24,9 @@ if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
24endif()24endif()
2525
26execute_process(26execute_process(
27 COMMAND ${LLVM_CONFIG_EXE} --version27 COMMAND ${LLVM_CONFIG_EXE} --version
28 OUTPUT_VARIABLE LLVM_CONFIG_VERSION28 OUTPUT_VARIABLE LLVM_CONFIG_VERSION
29 OUTPUT_STRIP_TRAILING_WHITESPACE)29 OUTPUT_STRIP_TRAILING_WHITESPACE)
3030
31if("${LLVM_CONFIG_VERSION}" VERSION_LESS 8)31if("${LLVM_CONFIG_VERSION}" VERSION_LESS 8)
32 message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")32 message(FATAL_ERROR "expected LLVM 8.x but found ${LLVM_CONFIG_VERSION}")
...@@ -39,15 +39,15 @@ if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 9)...@@ -39,15 +39,15 @@ if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 9)
39endif()39endif()
4040
41execute_process(41execute_process(
42 COMMAND ${LLVM_CONFIG_EXE} --targets-built42 COMMAND ${LLVM_CONFIG_EXE} --targets-built
43 OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES43 OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES
44 OUTPUT_STRIP_TRAILING_WHITESPACE)44 OUTPUT_STRIP_TRAILING_WHITESPACE)
45string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}")45 string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}")
46function(NEED_TARGET TARGET_NAME)46function(NEED_TARGET TARGET_NAME)
47 list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index)47 list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index)
48 if (${_index} EQUAL -1)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.")49 message(FATAL_ERROR "LLVM is missing target ${TARGET_NAME}. Zig requires LLVM to be built with all default targets enabled.")
50 endif()50 endif()
51endfunction(NEED_TARGET)51endfunction(NEED_TARGET)
52NEED_TARGET("AArch64")52NEED_TARGET("AArch64")
53NEED_TARGET("AMDGPU")53NEED_TARGET("AMDGPU")
...@@ -67,47 +67,53 @@ NEED_TARGET("XCore")...@@ -67,47 +67,53 @@ NEED_TARGET("XCore")
6767
68if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug") OR ZIG_STATIC)68if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug") OR ZIG_STATIC)
69 execute_process(69 execute_process(
70 COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static70 COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static
71 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES71 OUTPUT_VARIABLE LLVM_LIBDIR_ORIG
72 OUTPUT_STRIP_TRAILING_WHITESPACE)72 OUTPUT_STRIP_TRAILING_WHITESPACE)
73 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")73 file(TO_CMAKE_PATH "${LLVM_LIBDIR_ORIG}" LLVM_LIBDIR)
7474
75 execute_process(75 execute_process(
76 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static76 COMMAND ${LLVM_CONFIG_EXE} --libnames --link-static
77 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES77 OUTPUT_VARIABLE LLVM_LIBNAMES_SPACES
78 OUTPUT_STRIP_TRAILING_WHITESPACE)78 OUTPUT_STRIP_TRAILING_WHITESPACE)
79 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")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
81 execute_process(84 execute_process(
82 COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static85 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
83 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES86 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
84 OUTPUT_STRIP_TRAILING_WHITESPACE)87 OUTPUT_STRIP_TRAILING_WHITESPACE)
85 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")88 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
86endif()89endif()
87if(NOT LLVM_LIBRARIES)90if(NOT LLVM_LIBRARIES)
88 execute_process(91 execute_process(
89 COMMAND ${LLVM_CONFIG_EXE} --libs92 COMMAND ${LLVM_CONFIG_EXE} --libdir
90 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES93 OUTPUT_VARIABLE LLVM_LIBDIR_ORIG
91 OUTPUT_STRIP_TRAILING_WHITESPACE)94 OUTPUT_STRIP_TRAILING_WHITESPACE)
92 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")95 file(TO_CMAKE_PATH "${LLVM_LIBDIR_ORIG}" LLVM_LIBDIR)
9396
94 execute_process(97 execute_process(
95 COMMAND ${LLVM_CONFIG_EXE} --system-libs98 COMMAND ${LLVM_CONFIG_EXE} --libs
96 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES99 OUTPUT_VARIABLE LLVM_LIBNAMES_SPACES
97 OUTPUT_STRIP_TRAILING_WHITESPACE)100 OUTPUT_STRIP_TRAILING_WHITESPACE)
98 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")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
100 execute_process(106 execute_process(
101 COMMAND ${LLVM_CONFIG_EXE} --libdir107 COMMAND ${LLVM_CONFIG_EXE} --system-libs
102 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES108 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
103 OUTPUT_STRIP_TRAILING_WHITESPACE)109 OUTPUT_STRIP_TRAILING_WHITESPACE)
104 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")110 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
105endif()111endif()
106112
107execute_process(113execute_process(
108 COMMAND ${LLVM_CONFIG_EXE} --includedir114 COMMAND ${LLVM_CONFIG_EXE} --includedir
109 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS115 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
110 OUTPUT_STRIP_TRAILING_WHITESPACE)116 OUTPUT_STRIP_TRAILING_WHITESPACE)
111117
112set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})118set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
113119
...@@ -116,9 +122,9 @@ if(NOT LLVM_LIBRARIES)...@@ -116,9 +122,9 @@ if(NOT LLVM_LIBRARIES)
116endif()122endif()
117123
118link_directories("${CMAKE_PREFIX_PATH}/lib")124link_directories("${CMAKE_PREFIX_PATH}/lib")
119link_directories("${LLVM_LIBDIRS}")125link_directories("${LLVM_LIBDIR}")
120126
121include(FindPackageHandleStandardArgs)127include(FindPackageHandleStandardArgs)
122find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS)128find_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)