summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: d8cfcf6bd2a844a1535a51b9a7914f4c49436c26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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()