diff --git a/CMakeLists.txt b/CMakeLists.txt index 242986cd9..58795b6d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,21 +28,18 @@ endif() if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT LLVM_DIR) # Workaround for Ubuntu broken LLVM package message(STATUS "Using llvm-3.7-dev package from Ubuntu. If does not work, build LLVM and set -DLLVM_DIR=llvm-build/share/llvm/cmake") - execute_process(COMMAND llvm-config-3.7 --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIRS) + execute_process(COMMAND llvm-config-3.7 --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "LLVM include dirs: ${LLVM_INCLUDE_DIRS}") set(LLVM_LIBS "-lLLVMipo -lLLVMVectorize -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMScalarOpts -lLLVMProfileData -lLLVMInstCombine -lLLVMInstrumentation -lLLVMTransformUtils -lLLVMipa -lLLVMMCJIT -lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMRuntimeDyld -lLLVMObject -lLLVMMCParser -lLLVMBitReader -lLLVMMC -lLLVMCore -lLLVMSupport -lz -lpthread -lffi -ltinfo -ldl -lm") - add_definitions(-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS) + set(LLVM_DEFINITIONS "-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS") link_directories(/usr/lib/llvm-3.7/lib) else() find_package(LLVM 3.7 REQUIRED CONFIG) message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") - add_definitions(${LLVM_DEFINITIONS}) llvm_map_components_to_libnames(LLVM_LIBS core support mcjit x86asmparser x86codegen ipo) endif() -get_filename_component(EVMJIT_INCLUDE_DIR include ABSOLUTE) - add_subdirectory(libevmjit) if(EVMJIT_CPP) diff --git a/libevmjit-cpp/CMakeLists.txt b/libevmjit-cpp/CMakeLists.txt index 5b2a35b00..142687726 100644 --- a/libevmjit-cpp/CMakeLists.txt +++ b/libevmjit-cpp/CMakeLists.txt @@ -19,8 +19,6 @@ add_library(${TARGET_NAME} STATIC ${SOURCES}) set_property(TARGET ${TARGET_NAME} PROPERTY FOLDER "libs") include_directories(../..) -include_directories(${EVMJIT_INCLUDE_DIR}) -include_directories(${LLVM_INCLUDE_DIRS}) include_directories(${Boost_INCLUDE_DIRS}) target_link_libraries(${TARGET_NAME} evmjit) diff --git a/libevmjit/CMakeLists.txt b/libevmjit/CMakeLists.txt index bad3aa2c6..687194dba 100644 --- a/libevmjit/CMakeLists.txt +++ b/libevmjit/CMakeLists.txt @@ -1,5 +1,7 @@ set(TARGET_NAME evmjit) +get_filename_component(EVMJIT_INCLUDE_DIR ../include ABSOLUTE) + set(SOURCES JIT.cpp ${EVMJIT_INCLUDE_DIR}/evmjit/JIT.h Arith256.cpp Arith256.h @@ -46,10 +48,10 @@ set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${EVMJIT_VERSION} SOVERSION ${EVMJIT_SOVERSION} FOLDER "libs") -include_directories(${EVMJIT_INCLUDE_DIR}) -include_directories(${LLVM_INCLUDE_DIRS}) -include_directories(${CMAKE_CURRENT_BINARY_DIR}/gen) - +target_include_directories(${TARGET_NAME} PUBLIC ${EVMJIT_INCLUDE_DIR}) +target_include_directories(${TARGET_NAME} PRIVATE ${LLVM_INCLUDE_DIRS}) +target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/gen) +target_compile_definitions(${TARGET_NAME} PRIVATE ${LLVM_DEFINITIONS}) target_link_libraries(${TARGET_NAME} PRIVATE ${LLVM_LIBS}) install(TARGETS ${TARGET_NAME} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin)