update llvm deps.

This commit is contained in:
ykiko
2024-08-29 23:48:30 +08:00
parent 9e16bbf0e0
commit 81a063b628
2 changed files with 31 additions and 63 deletions

View File

@@ -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
View File

@@ -0,0 +1,5 @@
#include <clang/AST/Decl.h>
int main(){
}