Files
beluga/CMakeLists.txt
T
2025-06-02 10:31:31 +02:00

61 lines
1.5 KiB
CMake

# Specify the minimum version of CMake required
cmake_minimum_required(VERSION 3.10)
# Define the project name and the programming language (C)
project(Beluga)
# Set the C standard (optional)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_COMPILER clang)
# Add the header files directory to the include path
include_directories(include)
include_directories(blisp/include)
# Add the source files for the project
set(SRCS
main.c
src/append_buffer.c
src/file_io.c
src/input.c
src/row_op.c
src/editor_op.c
src/init.c
src/output.c
src/terminal.c
src/builtins.c
blisp/src/config_tools.c
blisp/src/data.c
blisp/src/lexer.c
blisp/src/parser.c)
find_package(Doxygen)
if(DOXYGEN_FOUND)
# set input and output for doxygen
set(DOXYGEN_OUT ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile)
add_custom_target(
doc_doxygen ALL
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Generating documentation with Doxygen"
VERBATIM)
else(DOXYGEN_FOUND)
message("Doxygen not found")
endif(DOXYGEN_FOUND)
# we default to Release build type
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()
set(CMAKE_C_FLAGS "-Wall -Wextra")
set(CMAKE_C_FLAGS_DEBUG "-g")
# Create an executable target with the specified source files
add_executable(beluga ${SRCS})
# Optionally, you can set the output directory for the executable
set_target_properties(beluga PROPERTIES RUNTIME_OUTPUT_DIRECTORY bin)