You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.6 KiB
70 lines
1.6 KiB
# CMakeLists.txt for Keystone linking.
|
|
|
|
file(GLOB_RECURSE src_MC "../lib/MC/*.cpp")
|
|
file(GLOB src_Support "../lib/Support/*.c*")
|
|
file(GLOB src_Target "../lib/Target/*.cpp")
|
|
|
|
set(src_core
|
|
${src_MC}
|
|
${src_Support}
|
|
${src_Target}
|
|
)
|
|
|
|
file(GLOB_RECURSE src_AArch64 "../lib/Target/AArch64/*.cpp")
|
|
file(GLOB_RECURSE src_ARM "../lib/Target/ARM/*.cpp")
|
|
file(GLOB_RECURSE src_Hexagon "../lib/Target/Hexagon/*.cpp")
|
|
file(GLOB_RECURSE src_Mips "../lib/Target/Mips/*.cpp")
|
|
file(GLOB_RECURSE src_PowerPC "../lib/Target/PowerPC/*.cpp")
|
|
file(GLOB_RECURSE src_Sparc "../lib/Target/Sparc/*.cpp")
|
|
file(GLOB_RECURSE src_SystemZ "../lib/Target/SystemZ/*.cpp")
|
|
file(GLOB_RECURSE src_X86 "../lib/Target/X86/*.cpp")
|
|
|
|
set(src_all ${src_core})
|
|
|
|
foreach(t ${LLVM_TARGETS_TO_BUILD})
|
|
set(src_all ${src_all} ${src_${t}})
|
|
endforeach(t)
|
|
|
|
include_directories(
|
|
"../../include"
|
|
"../lib/Target/AArch64"
|
|
"../lib/Target/ARM"
|
|
"../lib/Target/Hexagon"
|
|
"../lib/Target/Mips"
|
|
"../lib/Target/PowerPC"
|
|
"../lib/Target/Sparc"
|
|
"../lib/Target/SystemZ"
|
|
"../lib/Target/X86"
|
|
)
|
|
|
|
add_library(keystone
|
|
${src_all}
|
|
ks.cpp
|
|
EVMMapping.cpp
|
|
)
|
|
|
|
install(TARGETS keystone DESTINATION lib${LLVM_LIBDIR_SUFFIX})
|
|
|
|
set_target_properties(
|
|
keystone
|
|
PROPERTIES
|
|
archive_output_directory ${CMAKE_CURRENT_BINARY_DIR}/lib
|
|
COMPILER_FLAGS "/EHsc"
|
|
SOVERSION ${KEYSTONE_VERSION_MAJOR}
|
|
)
|
|
|
|
if(NOT BUILD_SHARED_LIBS)
|
|
target_compile_definitions(
|
|
keystone
|
|
PUBLIC
|
|
KEYSTONE_STATIC
|
|
)
|
|
endif()
|
|
|
|
if (APPLE)
|
|
set_target_properties(keystone
|
|
PROPERTIES
|
|
INSTALL_RPATH "")
|
|
endif()
|
|
|