aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2021-03-08 21:02:05 +0800
committerLi Jin <dragon-fly@qq.com>2021-03-08 21:02:05 +0800
commit8acb48264d3ae87e5cdae2fea4207be22cf08a97 (patch)
tree8f260c52388be52c9fd1b5b9d262300b21771ca8 /CMakeLists.txt
parent34326185b0aaf63c0af8b0e8a07f928aa5a74eaf (diff)
downloadyuescript-8acb48264d3ae87e5cdae2fea4207be22cf08a97.tar.gz
yuescript-8acb48264d3ae87e5cdae2fea4207be22cf08a97.tar.bz2
yuescript-8acb48264d3ae87e5cdae2fea4207be22cf08a97.zip
add new syntax for issue #41. fix a issue for destructure syntax with TableBlock. try fix luarocks installing problem again for issue #42.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt72
1 files changed, 38 insertions, 34 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ce5a7f7..55bcd7d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,42 +1,46 @@
1project ( yue CXX ) 1project(yue CXX)
2cmake_minimum_required ( VERSION 3.1 ) 2cmake_minimum_required(VERSION 3.1)
3 3
4MESSAGE(STATUS "Lua: using information from luarocks") 4SET(LUA_LIBDIR ${LUA_INCDIR}/../lib " " ${LUA_INCDIR}/../../lib)
5 5
6MESSAGE(STATUS "LUA_LIBDIR: " ${LUA_INCDIR}/../lib " " ${LUA_INCDIR}/../../lib ) 6find_package(Lua)
7MESSAGE(STATUS "LUA_INCDIR: " ${LUA_INCDIR}) 7IF(LUA_FOUND)
8MESSAGE(STATUS "LUA: " ${LUA}) 8 SET(LUA_LIBRARIES "${LUA_LIBRARY}")
9 9ELSE(LUA_FOUND)
10SET(LUA_EXECUTABLE "${LUA}") 10 MESSAGE(STATUS "Lua: using information from luarocks")
11SET(LUA_INCLUDE_DIR "${LUA_INCDIR}") 11 SET(LUA_INCLUDE_DIR "${LUA_INCDIR}")
12 12 GET_FILENAME_COMPONENT(LUA_EXEC_NAME ${LUA} NAME_WE)
13GET_FILENAME_COMPONENT(LUA_EXEC_NAME ${LUA} NAME_WE) 13 IF(LUA_EXEC_NAME STREQUAL "luajit")
14IF(LUA_EXEC_NAME STREQUAL "luajit") 14 FIND_LIBRARY(LUA_LIBRARIES
15 FIND_LIBRARY(LUA_LIBRARIES 15 NAMES luajit libluajit
16 NAMES luajit libluajit 16 PATHS ${LUA_LIBDIR}
17 PATHS ${LUA_INCDIR}/../lib ${LUA_INCDIR}/../../lib 17 NO_DEFAULT_PATH)
18 NO_DEFAULT_PATH) 18 ELSEIF(LUA_EXEC_NAME MATCHES "lua.*")
19ELSEIF(LUA_EXEC_NAME MATCHES "lua.*") 19 FIND_LIBRARY(LUA_LIBRARIES
20 FIND_LIBRARY(LUA_LIBRARIES 20 NAMES lua lua54 lua53 lua52 lua51 liblua liblua54 liblua53 liblua52 liblua51 liblua5.4 liblua5.3 liblua5.2 liblua5.1
21 NAMES lua lua54 lua53 lua52 lua51 liblua liblua54 liblua53 liblua52 liblua51 liblua5.4 liblua5.3 liblua5.2 liblua5.1 21 PATHS ${LUA_LIBDIR}
22 PATHS ${LUA_INCDIR}/../lib ${LUA_INCDIR}/../../lib 22 NO_DEFAULT_PATH)
23 NO_DEFAULT_PATH) 23 ENDIF(LUA_EXEC_NAME)
24ENDIF() 24ENDIF(LUA_FOUND)
25
26MESSAGE(STATUS "Lua: " ${LUA})
27MESSAGE(STATUS "Lua include: " ${LUA_INCLUDE_DIR})
25MESSAGE(STATUS "Lua library: ${LUA_LIBRARIES}") 28MESSAGE(STATUS "Lua library: ${LUA_LIBRARIES}")
26 29
27enable_language( CXX ) 30enable_language(CXX)
28include_directories( src ${LUA_INCLUDE_DIR} ) 31include_directories(src ${LUA_INCLUDE_DIR})
29add_definitions( -std=c++17 -O3 -fPIC ) 32add_definitions(-std=c++17 -O3 -fPIC)
30 33
31add_library( libyue MODULE src/yuescript/ast.cpp src/yuescript/parser.cpp src/yuescript/yue_parser.cpp src/yuescript/yue_compiler.cpp src/yuescript/yuescript.cpp) 34add_library(libyue MODULE src/yuescript/ast.cpp src/yuescript/parser.cpp src/yuescript/yue_parser.cpp src/yuescript/yue_compiler.cpp src/yuescript/yuescript.cpp)
32set_target_properties( libyue PROPERTIES PREFIX "" ) 35set_target_properties(libyue PROPERTIES PREFIX "")
33set_target_properties( libyue PROPERTIES OUTPUT_NAME "yue" ) 36set_target_properties(libyue PROPERTIES OUTPUT_NAME "yue")
34target_link_libraries( libyue ${LUA_LIBRARIES} ) 37target_link_libraries(libyue ${LUA_LIBRARIES})
35 38
36add_executable( yue src/yuescript/ast.cpp src/yuescript/yue_compiler.cpp src/yuescript/yue_parser.cpp src/yuescript/yuescript.cpp src/yuescript/parser.cpp src/yue.cpp ) 39add_executable(yue src/yuescript/ast.cpp src/yuescript/yue_compiler.cpp src/yuescript/yue_parser.cpp src/yuescript/yuescript.cpp src/yuescript/parser.cpp src/yue.cpp)
37target_link_libraries( yue ${LUA_LIBRARIES} ) 40target_link_libraries(yue ${LUA_LIBRARIES})
41target_link_options(yue PRIVATE -ldl -lpthread)
38if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") 42if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
39 target_link_options( yue PRIVATE -ldl -lpthread -lstdc++fs ) 43 target_link_options(yue PRIVATE -lstdc++fs)
40endif() 44endif()
41 45
42install(CODE "") 46install(CODE "")