-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
71 lines (63 loc) · 1.99 KB
/
CMakeLists.txt
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
cmake_minimum_required(VERSION 3.10)
project(yarnflow CXX)
set(LUA_LIBDIR ${LUA_INCDIR}/../lib ${LUA_INCDIR}/../../lib)
set(LUA_INCLUDE_DIR "${LUA_INCDIR}")
get_filename_component(LUA_EXEC_NAME ${LUA} NAME)
if (LUA_EXEC_NAME STREQUAL "luajit")
find_library(LUA_LIBRARIES
NAMES luajit libluajit
PATHS ${LUA_LIBDIR}
NO_DEFAULT_PATH)
elseif (LUA_EXEC_NAME MATCHES "lua5\.4" OR LUA_EXEC_NAME MATCHES "lua54")
find_library(LUA_LIBRARIES
NAMES lua54 lua5.4 liblua54 liblua5.4 lua liblua
PATHS ${LUA_LIBDIR}
NO_DEFAULT_PATH)
elseif (LUA_EXEC_NAME MATCHES "lua5\.3" OR LUA_EXEC_NAME MATCHES "lua53")
find_library(LUA_LIBRARIES
NAMES lua53 lua5.3 liblua53 liblua5.3 lua liblua
PATHS ${LUA_LIBDIR}
NO_DEFAULT_PATH)
elseif (LUA_EXEC_NAME MATCHES "lua5\.2" OR LUA_EXEC_NAME MATCHES "lua52")
find_library(LUA_LIBRARIES
NAMES lua52 lua5.2 liblua52 liblua5.2 lua liblua
PATHS ${LUA_LIBDIR}
NO_DEFAULT_PATH)
elseif (LUA_EXEC_NAME MATCHES "lua5\.1" OR LUA_EXEC_NAME MATCHES "lua51")
find_library(LUA_LIBRARIES
NAMES lua51 lua5.1 liblua51 liblua5.1 lua liblua
PATHS ${LUA_LIBDIR}
NO_DEFAULT_PATH)
else ()
find_library(LUA_LIBRARIES
NAMES lua liblua
PATHS ${LUA_LIBDIR}
NO_DEFAULT_PATH)
endif()
if (LUA_LIBRARIES MATCHES "LUA_LIBRARIES-NOTFOUND")
find_package(Lua)
if (LUA_FOUND)
set(LUA_LIBRARIES "${LUA_LIBRARY}")
endif()
else ()
message(STATUS "Lua: using information from luarocks")
endif()
message(STATUS "Lua: " ${LUA})
message(STATUS "Lua include: " ${LUA_INCLUDE_DIR})
message(STATUS "Lua library: ${LUA_LIBRARIES}")
enable_language(CXX)
include_directories(src ${LUA_INCLUDE_DIR})
add_definitions(-std=c++17 -O3 -fPIC)
if (APPLE)
add_compile_options(-Wno-deprecated-declarations)
endif ()
add_library(libyarnflow MODULE
src/ast.cpp
src/parser.cpp
src/yarnflow/yarn_compiler.cpp
src/yarnflow.cpp
)
set_target_properties(libyarnflow PROPERTIES PREFIX "")
set_target_properties(libyarnflow PROPERTIES OUTPUT_NAME "yarnflow")
target_link_libraries(libyarnflow ${LUA_LIBRARIES})
install(CODE "")