diff --git a/CMakeLists.txt b/CMakeLists.txt index 025b0d8..e08a8b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,11 +11,13 @@ SET (SCULLY_VERSION_MINOR 1) SET (SCULLY_VERSION_RELEASE 0) SET (SCULLY_VERSION_EXTRA "WoC Friday Night") +SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/) + INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/inc) -SET(CMAKE_CXX_FLAGS "-std=c++11") +SET (CMAKE_CXX_FLAGS "-std=c++11") ADD_EXECUTABLE (lemon grammar/lemon.c) ADD_EXECUTABLE (makeheaders grammar/makeheaders.c) @@ -85,4 +87,10 @@ SET(SCULLY_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/grammar.cpp ) +FIND_PACKAGE (LLVM REQUIRED) +ADD_DEFINITIONS (${LLVM_CFLAGS}) + ADD_EXECUTABLE (scully ${SCULLY_SOURCE}) + +TARGET_LINK_LIBRARIES (scully ${LLVM_JIT_LIBS}) +TARGET_LINK_LIBRARIES (scully ${LLVM_LFLAGS}) diff --git a/cmake/FindLLVM.cmake b/cmake/FindLLVM.cmake new file mode 100644 index 0000000..290aa0b --- /dev/null +++ b/cmake/FindLLVM.cmake @@ -0,0 +1,31 @@ +# - Find libev +# Find the native LLVM includes and library +# +# LLVM_INCLUDE_DIR - where to find ev.h, etc. +# LLVM_LIBRARIES - List of libraries when using libev. +# LLVM_FOUND - True if libev found. + +FIND_PROGRAM (LLVM_CONFIG_EXECUTABLE NAMES llvm-config DOC "llvm-config executable") + +EXECUTE_PROCESS (COMMAND ${LLVM_CONFIG_EXECUTABLE} --cppflags + OUTPUT_VARIABLE LLVM_CFLAGS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +EXECUTE_PROCESS (COMMAND ${LLVM_CONFIG_EXECUTABLE} --ldflags + OUTPUT_VARIABLE LLVM_LFLAGS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +EXECUTE_PROCESS (COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs core jit native + OUTPUT_VARIABLE LLVM_JIT_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +EXECUTE_PROCESS (COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs all + OUTPUT_VARIABLE LLVM_ALL_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +#MESSAGE("llvm jit libs: " ${LLVM_JIT_LIBS}) +