authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-09-28 10:48:13-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-09-28 10:48:13-04:00
log3fe50cb13ced56102abe0d5d9e4ad2fb0e677787
treee897193ebf6f7e4e560bd0ebe8410dec3b0f9649
parentfb365e39528eca572f099ee1f15f6e1258378ac8

simpler cmake for msvc


1 files changed, 49 insertions(+), 112 deletions(-)

cmake/Findllvm.cmake+49-112
......@@ -7,129 +7,66 @@
77# LLVM_LIBRARIES
88# LLVM_LIBDIRS
99
10if(MSVC)
11 find_package(LLVM REQUIRED CONFIG)
12
13 # TODO: this currently doesn't work, it currently defines UNICODE but zig
14 # uses MBCS
15 #add_definitions(${LLVM_DEFINITIONS})
16
17 link_directories(${LLVM_LIBRARY_DIRS})
18 llvm_map_components_to_libnames(LLVM_LIBRARIES
19 LTO
20 Symbolize
21 XCoreDisassembler
22 XCoreCodeGen
23 XCoreAsmPrinter
24 SystemZDisassembler
25 SystemZCodeGen
26 SystemZAsmParser
27 SystemZAsmPrinter
28 SparcDisassembler
29 SparcCodeGen
30 SparcAsmParser
31 SparcAsmPrinter
32 PowerPCDisassembler
33 PowerPCCodeGen
34 PowerPCAsmParser
35 PowerPCAsmPrinter
36 NVPTXCodeGen
37 NVPTXAsmPrinter
38 MSP430CodeGen
39 MSP430AsmPrinter
40 MipsDisassembler
41 MipsCodeGen
42 MipsAsmParser
43 MipsAsmPrinter
44 LanaiDisassembler
45 LanaiCodeGen
46 LanaiAsmParser
47 LanaiAsmPrinter
48 HexagonDisassembler
49 HexagonCodeGen
50 HexagonAsmParser
51 BPFDisassembler
52 BPFCodeGen
53 BPFAsmPrinter
54 ARMDisassembler
55 ARMCodeGen
56 ARMAsmParser
57 ARMAsmPrinter
58 AMDGPUDisassembler
59 AMDGPUCodeGen
60 AMDGPUAsmParser
61 AMDGPUAsmPrinter
62 AArch64Disassembler
63 AArch64CodeGen
64 AArch64AsmParser
65 AArch64AsmPrinter
66 LibDriver
67 X86Disassembler
68 X86AsmParser
69 X86CodeGen
70 X86AsmPrinter
71 Core
72 )
73
74else()
75 find_program(LLVM_CONFIG_EXE
76 NAMES llvm-config-5.0 llvm-config
77 PATHS
78 "/mingw64/bin"
79 "/c/msys64/mingw64/bin"
80 "c:/msys64/mingw64/bin"
81 "C:/Libraries/llvm-5.0.0/bin")
82
83 if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug"))
84 execute_process(
85 COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static
86 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
87 OUTPUT_STRIP_TRAILING_WHITESPACE)
88 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
89
90 execute_process(
91 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
92 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
93 OUTPUT_STRIP_TRAILING_WHITESPACE)
94 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
10find_program(LLVM_CONFIG_EXE
11 NAMES llvm-config-5.0 llvm-config
12 PATHS
13 "/mingw64/bin"
14 "/c/msys64/mingw64/bin"
15 "c:/msys64/mingw64/bin"
16 "C:/Libraries/llvm-5.0.0/bin")
17
18if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug"))
19 execute_process(
20 COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static
21 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
22 OUTPUT_STRIP_TRAILING_WHITESPACE)
23 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
9524
96 execute_process(
97 COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static
98 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
99 OUTPUT_STRIP_TRAILING_WHITESPACE)
100 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
101 endif()
102 if(NOT LLVM_LIBRARIES)
103 execute_process(
104 COMMAND ${LLVM_CONFIG_EXE} --libs
105 OUTPUT_VARIABLE LLVM_LIBRARIES
106 OUTPUT_STRIP_TRAILING_WHITESPACE)
25 execute_process(
26 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
27 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
28 OUTPUT_STRIP_TRAILING_WHITESPACE)
29 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
10730
108 execute_process(
109 COMMAND ${LLVM_CONFIG_EXE} --system-libs
110 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
111 OUTPUT_STRIP_TRAILING_WHITESPACE)
31 execute_process(
32 COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static
33 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
34 OUTPUT_STRIP_TRAILING_WHITESPACE)
35 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
36endif()
37if(NOT LLVM_LIBRARIES)
38 execute_process(
39 COMMAND ${LLVM_CONFIG_EXE} --libs
40 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
41 OUTPUT_STRIP_TRAILING_WHITESPACE)
42 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
11243
113 execute_process(
114 COMMAND ${LLVM_CONFIG_EXE} --libdir
115 OUTPUT_VARIABLE LLVM_LIBDIRS
116 OUTPUT_STRIP_TRAILING_WHITESPACE)
117 endif()
44 execute_process(
45 COMMAND ${LLVM_CONFIG_EXE} --system-libs
46 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
47 OUTPUT_STRIP_TRAILING_WHITESPACE)
48 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
11849
11950 execute_process(
120 COMMAND ${LLVM_CONFIG_EXE} --includedir
121 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
51 COMMAND ${LLVM_CONFIG_EXE} --libdir
52 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
12253 OUTPUT_STRIP_TRAILING_WHITESPACE)
54 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
55endif()
12356
124 set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
57execute_process(
58 COMMAND ${LLVM_CONFIG_EXE} --includedir
59 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
60 OUTPUT_STRIP_TRAILING_WHITESPACE)
12561
126 if(NOT LLVM_LIBRARIES)
127 find_library(LLVM_LIBRARIES NAMES LLVM LLVM-5.0 LLVM-5)
128 endif()
62set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
12963
130 link_directories("${CMAKE_PREFIX_PATH}/lib")
64if(NOT LLVM_LIBRARIES)
65 find_library(LLVM_LIBRARIES NAMES LLVM LLVM-5.0 LLVM-5)
13166endif()
13267
68link_directories("${CMAKE_PREFIX_PATH}/lib")
69
13370
13471include(FindPackageHandleStandardArgs)
13572find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS)