61 lines
1.5 KiB
CMake
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)
|