c-compiler/CMakeLists.txt
2026-04-10 21:45:05 +03:00

27 lines
964 B
CMake

cmake_minimum_required(VERSION 3.20.0)
project(SimpleProject)
set(PROJECT_NAME llvm_c_compiler)
project(${PROJECT_NAME} VERSION 1.0.0 LANGUAGES CXX)
# Include LLVM as library
find_package(LLVM 21.1.0 CONFIG)
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
include_directories(${LLVM_INCLUDE_DIRS})
separate_arguments(LLVM_DEFINITIONS_LIST NATIVE_COMMAND ${LLVM_DEFINITIONS})
add_definitions(${LLVM_DEFINITIONS_LIST})
# Executable
add_executable(${PROJECT_NAME} src/main.cpp src/tokens.cpp src/parsing.cpp src/ast.cpp src/codegen.cpp src/types.cpp)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Weffc++ -Wextra -Wpedantic -Werror)
# Find the libraries that correspond to the LLVM components
# that we wish to use
llvm_map_components_to_libnames(llvm_libs support core irreader)
# Link
target_link_libraries(${PROJECT_NAME} LLVM)