-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathCMakeLists.txt
53 lines (41 loc) · 1.19 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
cmake_minimum_required(VERSION 3.4.3)
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
message(STATUS "LLD-STANDALONE: out-of-tree configuration")
set(LLD_STANDALONE_IN_TREE OFF)
else()
message(STATUS "LLD-STANDALONE: in-tree configuration")
set(LLD_STANDALONE_IN_TREE ON)
endif()
if (NOT LLD_STANDALONE_IN_TREE)
cmake_policy(SET CMP0048 NEW)
project(lld-standalone)
find_package(LLVM CONFIG REQUIRED tablegen)
list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR})
include(AddLLVM)
include(TableGen)
set(LLVM_TABLEGEN_EXE "llvm-tblgen")
include(HandleLLVMOptions)
endif()
message(STATUS "LLD-STANDALONE: configuring for LLVM ${LLVM_VERSION}...")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
include_directories(
${LLVM_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}
${PROJECT_BINARY_DIR})
set(LLVM_TARGET_DEFINITIONS Options.td)
tablegen(LLVM Options.inc -gen-opt-parser-defs)
add_public_tablegen_target(LLDStandaloneOptionsTableGen)
set(LLVM_LINK_COMPONENTS
Support
Option
Target
${LLVM_TARGETS_TO_BUILD}
)
add_llvm_executable(lld-standalone
lld-standalone.cpp
DEPENDS
LLDStandaloneOptionsTableGen
)
install(TARGETS lld-standalone
RUNTIME DESTINATION bin
)