|
1 | 1 | cmake_minimum_required(VERSION 3.9)
|
2 | 2 | project(scala-native-bindgen)
|
3 | 3 |
|
4 |
| -# Locate $LLVM_PATH/lib/cmake/clang/ClangConfig.cmake |
5 |
| -find_package(Clang REQUIRED CONFIG) |
6 |
| -message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") |
7 |
| -message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") |
| 4 | +# Locate LLVMConfig.cmake |
| 5 | +#find_package(LLVM REQUIRED CONFIG) |
| 6 | +#message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") |
| 7 | +#message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") |
8 | 8 |
|
9 |
| -include_directories(SYSTEM ${LLVM_INCLUDE_DIRS}) |
10 |
| -add_definitions(${LLVM_DEFINITIONS}) |
| 9 | +find_program(LLVM_CONFIG_PROGRAM |
| 10 | + NAMES |
| 11 | +# llvm-config-${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR} |
| 12 | + llvm-config-6.0 |
| 13 | + llvm-config-5.0 |
| 14 | + llvm-config-4.0 |
| 15 | + llvm-config |
| 16 | +) |
| 17 | + |
| 18 | +execute_process(COMMAND ${LLVM_CONFIG_PROGRAM} --includedir |
| 19 | + OUTPUT_VARIABLE LLVM_INCLUDE_DIR |
| 20 | + OUTPUT_STRIP_TRAILING_WHITESPACE |
| 21 | +) |
| 22 | +message(STATUS "Using LLVM include dir: ${LLVM_INCLUDE_DIR}") |
| 23 | + |
| 24 | +execute_process(COMMAND ${LLVM_CONFIG_PROGRAM} --cxxflags |
| 25 | + OUTPUT_VARIABLE LLVM_CXX_FLAGS |
| 26 | + OUTPUT_STRIP_TRAILING_WHITESPACE |
| 27 | +) |
| 28 | +message(STATUS "Using LLVM CXXFLAGS: ${LLVM_CXX_FLAGS}") |
11 | 29 |
|
12 |
| -add_compile_options(-fexceptions -std=c++11 -Wall -Wconversion -Werror) |
| 30 | +execute_process(COMMAND ${LLVM_CONFIG_PROGRAM} --ldflags |
| 31 | + OUTPUT_VARIABLE LLVM_LINKER_FLAGS |
| 32 | + OUTPUT_STRIP_TRAILING_WHITESPACE |
| 33 | +) |
| 34 | +message(STATUS "Using LLVM LDFLAGS: ${LLVM_LINKER_FLAGS}") |
| 35 | + |
| 36 | +execute_process(COMMAND ${LLVM_CONFIG_PROGRAM} --libs --link-static |
| 37 | + OUTPUT_VARIABLE LLVM_LIBS |
| 38 | + OUTPUT_STRIP_TRAILING_WHITESPACE |
| 39 | +) |
| 40 | + |
| 41 | +execute_process(COMMAND ${LLVM_CONFIG_PROGRAM} --system-libs --link-static |
| 42 | + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS |
| 43 | + OUTPUT_STRIP_TRAILING_WHITESPACE |
| 44 | +) |
| 45 | + |
| 46 | +include_directories(SYSTEM ${LLVM_INCLUDE_DIR}) |
| 47 | + |
| 48 | +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLVM_CXX_FLAGS}") |
| 49 | +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LLVM_LINKER_FLAGS} -static") |
| 50 | + |
| 51 | +add_compile_options(-fexceptions -std=c++11 -Wall -Wconversion) # -Werror) |
13 | 52 |
|
14 | 53 | add_executable(bindgen
|
15 | 54 | Main.cpp
|
@@ -75,4 +114,21 @@ target_link_libraries(bindgen
|
75 | 114 | PRIVATE
|
76 | 115 | clangFrontend
|
77 | 116 | clangTooling
|
| 117 | + |
| 118 | + clangFrontend |
| 119 | + clangSerialization |
| 120 | + clangDriver |
| 121 | + clangTooling |
| 122 | + clangParse |
| 123 | + clangSema |
| 124 | + |
| 125 | + clangAnalysis |
| 126 | + |
| 127 | + clangEdit |
| 128 | + clangAST |
| 129 | + clangLex |
| 130 | + clangBasic |
| 131 | + |
| 132 | + "${LLVM_LIBS}" |
| 133 | + "${LLVM_SYSTEM_LIBS}" |
78 | 134 | )
|
0 commit comments