mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
159 lines
3.9 KiB
CMake
159 lines
3.9 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
project(c3c)
|
|
#set(CMAKE_CXX_FLAGS_RELEASE "-O3")
|
|
|
|
find_package(LLVM REQUIRED CONFIG)
|
|
|
|
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
|
|
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
|
|
|
|
include_directories(${LLVM_INCLUDE_DIRS})
|
|
add_definitions(${LLVM_DEFINITIONS})
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
|
|
set(LLVM_LINK_COMPONENTS
|
|
Analysis
|
|
BitReader
|
|
Core
|
|
ExecutionEngine
|
|
InstCombine
|
|
Interpreter
|
|
MC
|
|
MCDisassembler
|
|
MCJIT
|
|
Object
|
|
OrcJIT
|
|
RuntimeDyld
|
|
ScalarOpts
|
|
Support
|
|
Target
|
|
TransformUtils
|
|
native
|
|
nativecodegen
|
|
AsmPrinter
|
|
AArch64Info
|
|
AArch64Desc
|
|
AArch64AsmParser
|
|
AArch64Disassembler
|
|
AArch64CodeGen
|
|
ARMInfo
|
|
ARMDesc
|
|
ARMAsmParser
|
|
ARMDisassembler
|
|
ARMCodeGen
|
|
AMDGPUInfo
|
|
AMDGPUAsmParser
|
|
AMDGPUCodeGen
|
|
BPFInfo
|
|
BPFAsmParser
|
|
BPFDisassembler
|
|
BPFCodeGen
|
|
HexagonInfo
|
|
HexagonDesc
|
|
HexagonAsmParser
|
|
HexagonDisassembler
|
|
HexagonCodeGen
|
|
LanaiInfo
|
|
LanaiDesc
|
|
LanaiAsmParser
|
|
LanaiDisassembler
|
|
LanaiCodeGen
|
|
MSP430Info
|
|
MSP430Desc
|
|
MSP430AsmParser
|
|
MSP430Disassembler
|
|
MSP430CodeGen
|
|
MipsInfo
|
|
MipsDesc
|
|
MipsAsmParser
|
|
MipsDisassembler
|
|
MipsCodeGen
|
|
NVPTXInfo
|
|
NVPTXCodeGen
|
|
PowerPCInfo
|
|
PowerPCDesc
|
|
PowerPCAsmParser
|
|
PowerPCDisassembler
|
|
PowerPCCodeGen
|
|
RISCVInfo
|
|
RISCVDesc
|
|
RISCVAsmParser
|
|
RISCVDisassembler
|
|
RISCVCodeGen
|
|
RISCVUtils
|
|
SparcInfo
|
|
SparcDesc
|
|
SparcAsmParser
|
|
SparcDisassembler
|
|
SparcCodeGen
|
|
SystemZInfo
|
|
SystemZDesc
|
|
SystemZAsmParser
|
|
SystemZDisassembler
|
|
SystemZCodeGen
|
|
WebAssemblyInfo
|
|
WebAssemblyDesc
|
|
WebAssemblyAsmParser
|
|
WebAssemblyDisassembler
|
|
WebAssemblyCodeGen
|
|
X86Info
|
|
X86Desc
|
|
X86AsmParser
|
|
X86Disassembler
|
|
X86CodeGen
|
|
X86Utils
|
|
XCoreInfo
|
|
XCoreDesc
|
|
XCoreDisassembler
|
|
XCoreCodeGen
|
|
)
|
|
|
|
llvm_map_components_to_libnames(llvm_libs support core irreader ${LLVM_LINK_COMPONENTS})
|
|
|
|
include_directories(
|
|
"${CMAKE_SOURCE_DIR}/src/"
|
|
"${CMAKE_SOURCE_DIR}/build/")
|
|
|
|
add_executable(c3c
|
|
src/main.c
|
|
src/build/build_options.c
|
|
src/build/project_creation.c
|
|
src/utils/errors.c
|
|
src/utils/file_utils.c
|
|
src/compiler/lexer.c
|
|
src/compiler/tokens.c
|
|
src/compiler/symtab.c
|
|
src/compiler/parser.c
|
|
src/compiler_tests/tests.c
|
|
src/compiler_tests/benchmark.c
|
|
src/utils/malloc.c
|
|
src/compiler/compiler.c
|
|
src/compiler/semantic_analyser.c
|
|
src/compiler/source_file.c
|
|
src/compiler/diagnostics.c
|
|
src/compiler/ast.c
|
|
src/compiler/bigint.c
|
|
src/compiler/bigint.h
|
|
src/compiler/context.c
|
|
src/compiler/expr_analysis.c
|
|
src/compiler/enums.h
|
|
src/compiler/casts.c
|
|
src/compiler/target.c
|
|
src/compiler/compiler.h
|
|
src/compiler/types.c
|
|
src/compiler/module.c
|
|
src/compiler/llvm_codegen.c
|
|
src/utils/stringutils.c
|
|
src/compiler/dwarf.h
|
|
src/compiler/llvm_codegen_stmt.c
|
|
src/compiler/llvm_codegen_internal.h
|
|
src/compiler/llvm_codegen_expr.c
|
|
src/compiler/llvm_codegen_debug_info.c
|
|
src/compiler/llvm_codegen_module.c
|
|
src/compiler/llvm_codegen_type.c
|
|
src/compiler/llvm_codegen_function.c)
|
|
|
|
target_compile_options(c3c PRIVATE -Werror -Wall -Wextra -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter)
|
|
|
|
target_link_libraries(c3c ${llvm_libs}) |