update llvm deps.
This commit is contained in:
@@ -1,38 +1,40 @@
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
project(clice)
|
||||
project(CLICE)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELEASE} -w -g -O0 -fno-rtti")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELEASE} -w")
|
||||
|
||||
set(JSON_BuildTests OFF CACHE INTERNAL "")
|
||||
set(LLVM_ENABLE_PROJECTS "clang")
|
||||
set(LLVM_TARGETS_TO_BUILD "X86")
|
||||
set(LLVM_USE_LINKER "lld")
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
set(LLVM_ABI_BREAKING_CHECKS "FORCE_OFF")
|
||||
set(CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/deps/llvm/build-install")
|
||||
find_package(LLVM REQUIRED CONFIG)
|
||||
find_package(Clang REQUIRED CONFIG)
|
||||
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/external/llvm-project/llvm")
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/external/json")
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/external/libuv")
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/external/spdlog")
|
||||
message(STATUS "Found LLVM: ${LLVM_DIR}, Version: ${LLVM_PACKAGE_VERSION}")
|
||||
add_definitions(${LLVM_DEFINITIONS})
|
||||
|
||||
set(INCLUDE_DIRS
|
||||
"${CMAKE_SOURCE_DIR}/include"
|
||||
"${CMAKE_SOURCE_DIR}/external/llvm-project/clang/lib/Sema"
|
||||
"${CMAKE_SOURCE_DIR}/external/json/include"
|
||||
"${CMAKE_SOURCE_DIR}/external/libuv/include"
|
||||
"${CMAKE_SOURCE_DIR}/external/spdlog/include"
|
||||
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/deps/libuv)
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/deps/spdlog)
|
||||
|
||||
add_executable(clice)
|
||||
|
||||
target_sources(clice PRIVATE
|
||||
src/main.cpp
|
||||
)
|
||||
|
||||
set(PCH_HEADER "${CMAKE_SOURCE_DIR}/include/Clang/Clang.h")
|
||||
target_include_directories(clice PRIVATE
|
||||
${LLVM_INCLUDE_DIRS}
|
||||
${CMAKE_SOURCE_DIR}/deps/libuv/include
|
||||
${CMAKE_SOURCE_DIR}/deps/spdlog/include
|
||||
)
|
||||
|
||||
set(LLVM_LIBS
|
||||
LLVMCore
|
||||
LLVMSupport
|
||||
LLVMIRReader
|
||||
)
|
||||
|
||||
set(CLANG_LIBS
|
||||
clangAST
|
||||
clangASTMatchers
|
||||
clangBasic
|
||||
clangDependencyScanning
|
||||
clangDriver
|
||||
@@ -49,48 +51,9 @@ set(LLVM_LIBS
|
||||
clangToolingSyntax
|
||||
)
|
||||
|
||||
set(LINK_LIBS
|
||||
nlohmann_json::nlohmann_json
|
||||
target_link_libraries(clice PRIVATE
|
||||
${LLVM_LIBS}
|
||||
${CLANG_LIBS}
|
||||
uv
|
||||
spdlog::spdlog
|
||||
${LLVM_LIBS}
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE SOURCES "${CMAKE_SOURCE_DIR}/src/*.cpp")
|
||||
list(REMOVE_ITEM SOURCES "${CMAKE_SOURCE_DIR}/src/main.cpp")
|
||||
|
||||
add_executable(clice src/main.cpp ${SOURCES})
|
||||
target_precompile_headers(clice PRIVATE ${PCH_HEADER})
|
||||
target_include_directories(clice PRIVATE ${INCLUDE_DIRS})
|
||||
target_link_libraries(clice PRIVATE ${LINK_LIBS})
|
||||
|
||||
if(CLICE_TEST)
|
||||
file(GLOB_RECURSE TEST_SOURCES "${CMAKE_SOURCE_DIR}/tests/*.cpp")
|
||||
include_directories(${CMAKE_SOURCE_DIR}/external/googletest/googletest/include)
|
||||
add_subdirectory(external/googletest)
|
||||
|
||||
if(WIN32)
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
|
||||
add_executable(clice_test ${SOURCES} ${TEST_SOURCES})
|
||||
target_precompile_headers(clice_test PRIVATE ${PCH_HEADER})
|
||||
target_include_directories(clice_test PRIVATE ${INCLUDE_DIRS})
|
||||
target_link_libraries(clice_test PRIVATE ${LINK_LIBS} GTest::gtest_main)
|
||||
endif()
|
||||
|
||||
if(CLICE_EXAMPLES)
|
||||
macro(add_example target)
|
||||
add_executable(${target} ${ARGN})
|
||||
target_precompile_headers(${target} PRIVATE ${PCH_HEADER})
|
||||
target_include_directories(${target} PRIVATE ${INCLUDE_DIRS})
|
||||
target_link_libraries(${target} PRIVATE ${LINK_LIBS})
|
||||
endmacro()
|
||||
|
||||
add_example(ASTVisitor docs/examples/ASTVisitor.cpp)
|
||||
add_example(CodeCompletion docs/examples/CodeCompletion.cpp)
|
||||
add_example(Module docs/examples/Module.cpp)
|
||||
add_example(Preamble docs/examples/Preamble.cpp)
|
||||
add_example(Preprocessor docs/examples/Preprocessor.cpp)
|
||||
add_example(TreeTransform docs/examples/TreeTransform.cpp)
|
||||
endif()
|
||||
5
src/main.cpp
Normal file
5
src/main.cpp
Normal file
@@ -0,0 +1,5 @@
|
||||
#include <clang/AST/Decl.h>
|
||||
|
||||
int main(){
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user