| ... | @@ -52,6 +52,8 @@ if(ZIG_USE_LLVM_CONFIG) | ... | @@ -52,6 +52,8 @@ if(ZIG_USE_LLVM_CONFIG) |
| 52 | set(STATIC_OR_SHARED_LINK "--link-shared") | 52 | set(STATIC_OR_SHARED_LINK "--link-shared") |
| 53 | elseif (ZIG_STATIC_LLVM) | 53 | elseif (ZIG_STATIC_LLVM) |
| 54 | set(STATIC_OR_SHARED_LINK "--link-static") | 54 | set(STATIC_OR_SHARED_LINK "--link-static") |
| | 55 | else() |
| | 56 | set(STATIC_OR_SHARED_LINK "") |
| 55 | endif() | 57 | endif() |
| 56 | | 58 | |
| 57 | execute_process( | 59 | execute_process( |
| ... | @@ -103,69 +105,31 @@ if(ZIG_USE_LLVM_CONFIG) | ... | @@ -103,69 +105,31 @@ if(ZIG_USE_LLVM_CONFIG) |
| 103 | break() | 105 | break() |
| 104 | endwhile() | 106 | endwhile() |
| 105 | | 107 | |
| 106 | if(ZIG_SHARED_LLVM OR ZIG_STATIC_LLVM) | | |
| 107 | execute_process( | | |
| 108 | COMMAND ${LLVM_CONFIG_EXE} --libfiles ${STATIC_OR_SHARED_LINK} | | |
| 109 | OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES | | |
| 110 | OUTPUT_STRIP_TRAILING_WHITESPACE) | | |
| 111 | string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") | | |
| 112 | | 108 | |
| 113 | execute_process( | 109 | execute_process( |
| 114 | COMMAND ${LLVM_CONFIG_EXE} --libdir ${STATIC_OR_SHARED_LINK} | 110 | COMMAND ${LLVM_CONFIG_EXE} --shared-mode ${STATIC_OR_SHARED_LINK} |
| 115 | OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES | 111 | OUTPUT_VARIABLE LLVM_LINK_MODE |
| 116 | OUTPUT_STRIP_TRAILING_WHITESPACE) | 112 | OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 117 | string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") | | |
| 118 | | | |
| 119 | execute_process( | | |
| 120 | COMMAND ${LLVM_CONFIG_EXE} --system-libs ${STATIC_OR_SHARED_LINK} | | |
| 121 | OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES | | |
| 122 | OUTPUT_STRIP_TRAILING_WHITESPACE) | | |
| 123 | string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") | | |
| 124 | | 113 | |
| 125 | execute_process( | 114 | execute_process( |
| 126 | COMMAND ${LLVM_CONFIG_EXE} --shared-mode ${STATIC_OR_SHARED_LINK} | 115 | COMMAND ${LLVM_CONFIG_EXE} --libfiles ${STATIC_OR_SHARED_LINK} |
| 127 | OUTPUT_VARIABLE LLVM_LINK_MODE | 116 | OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES |
| 128 | OUTPUT_STRIP_TRAILING_WHITESPACE) | 117 | OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 129 | else() | 118 | string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") |
| 130 | execute_process( | | |
| 131 | COMMAND ${LLVM_CONFIG_EXE} --libs | | |
| 132 | OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES | | |
| 133 | OUTPUT_STRIP_TRAILING_WHITESPACE) | | |
| 134 | string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") | | |
| 135 | | 119 | |
| 136 | execute_process( | 120 | execute_process( |
| 137 | COMMAND ${LLVM_CONFIG_EXE} --libdir | 121 | COMMAND ${LLVM_CONFIG_EXE} --libdir ${STATIC_OR_SHARED_LINK} |
| 138 | OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES | 122 | OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES |
| 139 | OUTPUT_STRIP_TRAILING_WHITESPACE) | | |
| 140 | string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") | | |
| 141 | | | |
| 142 | execute_process( | | |
| 143 | COMMAND ${LLVM_CONFIG_EXE} --system-libs | | |
| 144 | OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES | | |
| 145 | OUTPUT_STRIP_TRAILING_WHITESPACE) | | |
| 146 | string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") | | |
| 147 | | | |
| 148 | execute_process( | | |
| 149 | COMMAND ${LLVM_CONFIG_EXE} --shared-mode | | |
| 150 | OUTPUT_VARIABLE LLVM_LINK_MODE | | |
| 151 | OUTPUT_STRIP_TRAILING_WHITESPACE) | 123 | OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 152 | endif() | 124 | string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") |
| 153 | | 125 | |
| 154 | if (${LLVM_LINK_MODE} STREQUAL "shared") | 126 | execute_process( |
| 155 | # We always ask for the system libs corresponding to static linking, | 127 | COMMAND ${LLVM_CONFIG_EXE} --system-libs ${STATIC_OR_SHARED_LINK} |
| 156 | # since on some distros LLD is only available as a static library | 128 | OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES |
| 157 | # and we need these libraries to link it successfully | 129 | OUTPUT_STRIP_TRAILING_WHITESPACE) |
| 158 | execute_process( | 130 | string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") |
| 159 | COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static | | |
| 160 | OUTPUT_VARIABLE LLVM_STATIC_SYSTEM_LIBS_SPACES | | |
| 161 | ERROR_QUIET # Some installations have no static libs, we just ignore the failure | | |
| 162 | OUTPUT_STRIP_TRAILING_WHITESPACE) | | |
| 163 | string(REPLACE " " ";" LLVM_STATIC_SYSTEM_LIBS "${LLVM_STATIC_SYSTEM_LIBS_SPACES}") | | |
| 164 | | 131 | |
| 165 | set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS} ${LLVM_STATIC_SYSTEM_LIBS}) | 132 | set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) |
| 166 | else() | | |
| 167 | set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) | | |
| 168 | endif() | | |
| 169 | | 133 | |
| 170 | execute_process( | 134 | execute_process( |
| 171 | COMMAND ${LLVM_CONFIG_EXE} --includedir | 135 | COMMAND ${LLVM_CONFIG_EXE} --includedir |
| ... | @@ -373,4 +337,4 @@ endif() | ... | @@ -373,4 +337,4 @@ endif() |
| 373 | include(FindPackageHandleStandardArgs) | 337 | include(FindPackageHandleStandardArgs) |
| 374 | find_package_handle_standard_args(llvm DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS) | 338 | find_package_handle_standard_args(llvm DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS) |
| 375 | | 339 | |
| 376 | mark_as_advanced(LLVM_INCLUDE_DIRS LLVM_LIBRARIES LLVM_LIBDIRS) | 340 | mark_as_advanced(LLVM_INCLUDE_DIRS LLVM_LIBRARIES LLVM_LIBDIRS LLVM_LINK_MODE) |