diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-09-28 10:48:13 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-09-28 10:48:13 -0400 |
| commit | 3fe50cb13ced56102abe0d5d9e4ad2fb0e677787 (patch) | |
| tree | e897193ebf6f7e4e560bd0ebe8410dec3b0f9649 /cmake | |
| parent | fb365e39528eca572f099ee1f15f6e1258378ac8 (diff) | |
| download | zig-3fe50cb13ced56102abe0d5d9e4ad2fb0e677787.tar.gz zig-3fe50cb13ced56102abe0d5d9e4ad2fb0e677787.zip | |
simpler cmake for msvc
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/Findllvm.cmake | 161 |
1 files changed, 49 insertions, 112 deletions
diff --git a/cmake/Findllvm.cmake b/cmake/Findllvm.cmake index dc45a09258..87e80f24bc 100644 --- a/cmake/Findllvm.cmake +++ b/cmake/Findllvm.cmake @@ -7,129 +7,66 @@ # LLVM_LIBRARIES # LLVM_LIBDIRS -if(MSVC) - find_package(LLVM REQUIRED CONFIG) - - # TODO: this currently doesn't work, it currently defines UNICODE but zig - # uses MBCS - #add_definitions(${LLVM_DEFINITIONS}) - - link_directories(${LLVM_LIBRARY_DIRS}) - llvm_map_components_to_libnames(LLVM_LIBRARIES - LTO - Symbolize - XCoreDisassembler - XCoreCodeGen - XCoreAsmPrinter - SystemZDisassembler - SystemZCodeGen - SystemZAsmParser - SystemZAsmPrinter - SparcDisassembler - SparcCodeGen - SparcAsmParser - SparcAsmPrinter - PowerPCDisassembler - PowerPCCodeGen - PowerPCAsmParser - PowerPCAsmPrinter - NVPTXCodeGen - NVPTXAsmPrinter - MSP430CodeGen - MSP430AsmPrinter - MipsDisassembler - MipsCodeGen - MipsAsmParser - MipsAsmPrinter - LanaiDisassembler - LanaiCodeGen - LanaiAsmParser - LanaiAsmPrinter - HexagonDisassembler - HexagonCodeGen - HexagonAsmParser - BPFDisassembler - BPFCodeGen - BPFAsmPrinter - ARMDisassembler - ARMCodeGen - ARMAsmParser - ARMAsmPrinter - AMDGPUDisassembler - AMDGPUCodeGen - AMDGPUAsmParser - AMDGPUAsmPrinter - AArch64Disassembler - AArch64CodeGen - AArch64AsmParser - AArch64AsmPrinter - LibDriver - X86Disassembler - X86AsmParser - X86CodeGen - X86AsmPrinter - Core - ) - -else() - find_program(LLVM_CONFIG_EXE - NAMES llvm-config-5.0 llvm-config - PATHS - "/mingw64/bin" - "/c/msys64/mingw64/bin" - "c:/msys64/mingw64/bin" - "C:/Libraries/llvm-5.0.0/bin") - - if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug")) - execute_process( - COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static - OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES - OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") - - execute_process( - COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static - OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES - OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") +find_program(LLVM_CONFIG_EXE + NAMES llvm-config-5.0 llvm-config + PATHS + "/mingw64/bin" + "/c/msys64/mingw64/bin" + "c:/msys64/mingw64/bin" + "C:/Libraries/llvm-5.0.0/bin") + +if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug")) + execute_process( + COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static + OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") - execute_process( - COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static - OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES - OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") - endif() - if(NOT LLVM_LIBRARIES) - execute_process( - COMMAND ${LLVM_CONFIG_EXE} --libs - OUTPUT_VARIABLE LLVM_LIBRARIES - OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process( + COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") - execute_process( - COMMAND ${LLVM_CONFIG_EXE} --system-libs - OUTPUT_VARIABLE LLVM_SYSTEM_LIBS - OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process( + COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static + OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") +endif() +if(NOT LLVM_LIBRARIES) + execute_process( + COMMAND ${LLVM_CONFIG_EXE} --libs + OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") - execute_process( - COMMAND ${LLVM_CONFIG_EXE} --libdir - OUTPUT_VARIABLE LLVM_LIBDIRS - OUTPUT_STRIP_TRAILING_WHITESPACE) - endif() + execute_process( + COMMAND ${LLVM_CONFIG_EXE} --system-libs + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") execute_process( - COMMAND ${LLVM_CONFIG_EXE} --includedir - OUTPUT_VARIABLE LLVM_INCLUDE_DIRS + COMMAND ${LLVM_CONFIG_EXE} --libdir + OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") +endif() - set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) +execute_process( + COMMAND ${LLVM_CONFIG_EXE} --includedir + OUTPUT_VARIABLE LLVM_INCLUDE_DIRS + OUTPUT_STRIP_TRAILING_WHITESPACE) - if(NOT LLVM_LIBRARIES) - find_library(LLVM_LIBRARIES NAMES LLVM LLVM-5.0 LLVM-5) - endif() +set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) - link_directories("${CMAKE_PREFIX_PATH}/lib") +if(NOT LLVM_LIBRARIES) + find_library(LLVM_LIBRARIES NAMES LLVM LLVM-5.0 LLVM-5) endif() +link_directories("${CMAKE_PREFIX_PATH}/lib") + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS) |
