Skip to content

Commit

Permalink
build: make cmake setup actually work
Browse files Browse the repository at this point in the history
  • Loading branch information
piscisaureus committed Jun 13, 2019
1 parent 84360ff commit f7397fb
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 16 deletions.
52 changes: 36 additions & 16 deletions CMakeLists.txt
Expand Up @@ -2,28 +2,39 @@ cmake_minimum_required(VERSION 3.4.3)
project(gen8)

file(GLOB SOURCES_SRC src/*.cpp src/*.h)
add_executable(gen8 ${SOURCES_SRC})

add_subdirectory(llvm/llvm)
set(LLVM_ENABLE_PROJECTS clang CACHE STRING "")
set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "")

include_directories(${LLVM_INCLUDE_DIRS})
link_directories(${LLVM_LIBRARY_DIRS})
add_definitions(${LLVM_DEFINITIONS})
set(LLVM_ENABLE_BINDINGS OFF CACHE BOOL "")
set(LLVM_ENABLE_DIA_SDK OFF CACHE BOOL "")
set(LLVM_ENABLE_OCAMLDOC OFF CACHE BOOL "")

add_executable(gen8 ${SOURCES_SRC})
set(LLVM_INCLUDE_BENCHMARKS OFF CACHE BOOL "")
set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "")
set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
set(LLVM_INCLUDE_GO_TESTS OFF CACHE BOOL "")
set(LLVM_INCLUDE_RUNTIMES OFF CACHE BOOL "")
set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "")

add_subdirectory(llvm/llvm)

llvm_map_components_to_libnames(
LLVM_COMPONENT_LIBS
x86asmparser
bitreader
support
mc
option
profiledata
set(LLVM_INCLUDE_DIRS
${LLVM_SOURCE_DIR}/include
${LLVM_BINARY_DIR}/include
)
llvm_map_components_to_libnames(LLVM_LIBS
Option
Support
)

target_link_libraries(
gen8
${LLVM_COMPONENT_LIBS}
set(CLANG_INCLUDE_DIRS
${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/include
${LLVM_BINARY_DIR}/tools/clang/include
)
set(CLANG_LIBS
clangAST
clangASTMatchers
clangAnalysis
Expand All @@ -39,3 +50,12 @@ target_link_libraries(
clangSerialization
clangTooling
)

target_include_directories(gen8 PRIVATE
${LLVM_INCLUDE_DIRS}
${CLANG_INCLUDE_DIRS}
)
target_link_libraries(gen8
${LLVM_LIBS}
${CLANG_LIBS}
)
13 changes: 13 additions & 0 deletions src/main.cpp
@@ -0,0 +1,13 @@
#include "clang/AST/AST.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
#include "clang/ASTMatchers/ASTMatchers.h"
#include "clang/Driver/Options.h"
#include "clang/Frontend/ASTConsumers.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/FrontendActions.h"
#include "clang/Rewrite/Core/Rewriter.h"
#include "clang/Tooling/CommonOptionsParser.h"
#include "clang/Tooling/Tooling.h"

0 comments on commit f7397fb

Please sign in to comment.