You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
CMake
48 lines
1.2 KiB
CMake
cmake_minimum_required(VERSION 2.8)
|
|
|
|
find_package(LLVM)
|
|
include(AddLLVM OPTIONAL RESULT_VARIABLE INCLUDED_LLVM)
|
|
|
|
if (${INCLUDED_LLVM} STREQUAL "NOTFOUND")
|
|
message(WARNING "Failed to include AddLLVM CMake module")
|
|
else()
|
|
message("Included: '${INCLUDED_LLVM}'")
|
|
|
|
add_definitions(${LLVM_DEFINITIONS})
|
|
include_directories(${LLVM_INCLUDE_DIRS})
|
|
link_directories(${LLVM_LIBRARY_DIRS})
|
|
|
|
|
|
add_llvm_loadable_module( libGNUObjCRuntime
|
|
ClassIMPCache.cpp
|
|
ClassMethodInliner.cpp
|
|
IvarPass.cpp
|
|
ObjectiveCOpts.cpp
|
|
TypeFeedbackDrivenInliner.cpp
|
|
ClassLookupCache.cpp
|
|
IMPCacher.cpp
|
|
LoopIMPCachePass.cpp
|
|
TypeFeedback.cpp
|
|
)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-variadic-macros")
|
|
|
|
set(CMAKE_CXX "clang++")
|
|
|
|
EXEC_PROGRAM(llvm-config
|
|
ARGS --src-root
|
|
OUTPUT_VARIABLE LLVM_SRC)
|
|
EXEC_PROGRAM(llvm-config
|
|
ARGS --obj-root
|
|
OUTPUT_VARIABLE LLVM_OBJ)
|
|
EXEC_PROGRAM(llvm-config
|
|
ARGS --version
|
|
OUTPUT_VARIABLE LLVM_VER)
|
|
|
|
string(REGEX REPLACE "([0-9]*).([0-9]*).*" "-DLLVM_MAJOR=\\1 -DLLVM_MINOR=\\2" LLVM_VERSION "${LLVM_VER}")
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLVM_VERSION} -fno-rtti")
|
|
include_directories( ${LLVM_INCLUDE_DIRS} "${LLVM_SRC}/include/" "${LLVM_OBJ}/include/")
|
|
|
|
endif() # AddLLVM include failed
|