cmake_minimum_required(VERSION 3.16) project(lemacs C) set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) find_package(PkgConfig REQUIRED) pkg_check_modules(RAYLIB REQUIRED IMPORTED_TARGET raylib) pkg_check_modules(FONTCONFIG REQUIRED IMPORTED_TARGET fontconfig) find_package(Lua 5.4 QUIET) if(Lua_FOUND) set(LEMACS_LUA_LIBRARIES ${LUA_LIBRARIES}) set(LEMACS_LUA_INCLUDE_DIRS ${LUA_INCLUDE_DIR}) else() pkg_check_modules(LUA54 REQUIRED IMPORTED_TARGET lua5.4) endif() add_executable(lemacs src/main.c src/core/buffer.c src/core/editor.c src/core/lua_bridge.c ) target_compile_definitions(lemacs PRIVATE LEMACS_RUNTIME_INIT="${CMAKE_SOURCE_DIR}/runtime/init.lua") target_include_directories(lemacs PRIVATE src ) if(Lua_FOUND) target_include_directories(lemacs PRIVATE ${LEMACS_LUA_INCLUDE_DIRS}) target_link_libraries(lemacs PRIVATE PkgConfig::RAYLIB PkgConfig::FONTCONFIG ${LEMACS_LUA_LIBRARIES} m) else() target_link_libraries(lemacs PRIVATE PkgConfig::RAYLIB PkgConfig::FONTCONFIG PkgConfig::LUA54 m) endif()