-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
33 lines (26 loc) · 1003 Bytes
/
CMakeLists.txt
File metadata and controls
33 lines (26 loc) · 1003 Bytes
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
cmake_minimum_required(VERSION 3.22)
project(riscv-lifter CXX C)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(LLVM_ENABLE_ZLIB OFF CACHE STRING "Enable or disable ZLIB in LLVM")
find_package(LLVM CONFIG REQUIRED COMPONENTS Core IRReader ExecutionEngine MCJIT)
include_directories(${LLVM_INCLUDE_DIRS})
separate_arguments(LLVM_DEFINITIONS_LIST NATIVE_COMMAND ${LLVM_DEFINITIONS})
add_definitions(${LLVM_DEFINITIONS_LIST})
llvm_map_components_to_libnames(llvm_libs
Core
Support
IRReader
ExecutionEngine
MC
MCJIT
CodeGen # X86 code generation
X86
)
add_library(riscv-lifter-lib src/Decoder.cpp src/Memory.cpp src/ElfLoader.cpp src/Lifter.cpp)
target_include_directories(riscv-lifter-lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_link_libraries(riscv-lifter-lib PRIVATE m ${llvm_libs})
add_executable(riscv-lifter src/main.cpp)
target_link_libraries(riscv-lifter riscv-lifter-lib ${llvm_libs})
enable_testing()
add_subdirectory(tests)