hoolang/CMakeLists.txt
2025-07-11 08:28:22 +05:30

33 lines
1.2 KiB
CMake

CMAKE_MINIMUM_REQUIRED(VERSION 3.30 FATAL_ERROR)
PROJECT(HOOLANG)
SET (CMAKE_CXX_STANDARD 17)
SET (ANTLR_JAR /usr/local/lib/antlr4-4.13.2-complete.jar)
SET (ANTLR_INCLUDE_DIR /usr/local/include/antlr4-runtime/)
SET (ANTLR_GENERATED_DIR "${CMAKE_BINARY_DIR}/antlr4/generated")
SET (GRAMMAR_FILE "${CMAKE_SOURCE_DIR}/Hoo.g4")
SET (LLVM_LIBRARY_DIRS "/usr/lib/llvm-19/lib")
set(CMAKE_INSTALL_RPATH "/usr/local/lib")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
LINK_DIRECTORIES(${LLVM_LIBRARY_DIRS})
FIND_PACKAGE(LLVM REQUIRED CONFIG)
ADD_DEFINITIONS(${LLVM_DEFINITIONS})
EXECUTE_PROCESS(
COMMAND java -jar ${ANTLR_JAR} -no-listener -visitor -o ${ANTLR_GENERATED_DIR} -Dlanguage=Cpp ${GRAMMAR_FILE}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_FILE ${ANTLR_GENERATED_DIR}/HooBaseVisitor.cpp
)
ADD_CUSTOM_TARGET(HooBaseVisitor ALL DEPENDS ${ANTLR_GENERATED_DIR}/HooBaseVisitor.cpp)
INCLUDE_DIRECTORIES(${ANTLR_GENERATED_DIR} ${ANTLR_INCLUDE_DIR})
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(tests)
ENABLE_TESTING()
ADD_TEST(NAME integer_tests COMMAND integer_tests)
ADD_TEST(NAME double_tests COMMAND double_tests)
ADD_TEST(NAME bool_tests COMMAND bool_tests)
ADD_TEST(NAME char_tests COMMAND char_tests)