diff --git a/CMakeLists.txt b/CMakeLists.txt index bdb9697574b66eda4f50253d36ac8fe5a1aa3a7d..a5cfe4bc5922f3b95888ebab155e503fa56ac1ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,18 @@ find_package(LLVM REQUIRED CONFIG) list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}") + +# Workarounds. +# http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/081050.html +set(LLVM_ENABLE_PLUGINS ON) +set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) +set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib) +set(LLVM_PLUGIN_EXT "so") + include(AddLLVM) add_definitions(${LLVM_DEFINITIONS}) include_directories(${LLVM_INCLUDE_DIRS}) +link_directories(${LLVM_LIBRARY_DIRS}) add_subdirectory(skeleton) # Use your pass name here. diff --git a/README.md b/README.md index c52ae6670b2038c19ce976353b583e47b184d283..87accfdf4d2ebaf5671f89afbd1c58a5b5f84d8f 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,11 @@ Build: $ cd llvm-pass-skeleton $ mkdir build $ cd build - $ cmake .. # Generate the Makefile. - $ make # Actually build the pass. + $ cmake .. + $ make + $ cd .. Run: - $ + $ clang -emit-llvm -c -o something.bc something.c + $ opt -load build/skeleton/SkeletonPass.* -skeleton something.bc diff --git a/skeleton/CMakeLists.txt b/skeleton/CMakeLists.txt index c3f8afd11cac78c8eb5f0f96a7062215d5b0a8bb..6f8941ce985ef2a9ab4705379d367ea7fbc342c3 100644 --- a/skeleton/CMakeLists.txt +++ b/skeleton/CMakeLists.txt @@ -2,3 +2,5 @@ add_llvm_loadable_module(SkeletonPass # List your source files here. Skeleton.cpp ) + +set_target_properties(SkeletonPass PROPERTIES COMPILE_FLAGS "-std=c++11" )