diff options
author | Li Jin <dragon-fly@qq.com> | 2021-03-08 21:02:05 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2021-03-08 21:02:05 +0800 |
commit | 8acb48264d3ae87e5cdae2fea4207be22cf08a97 (patch) | |
tree | 8f260c52388be52c9fd1b5b9d262300b21771ca8 /CMakeLists.txt | |
parent | 34326185b0aaf63c0af8b0e8a07f928aa5a74eaf (diff) | |
download | yuescript-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.txt | 72 |
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 @@ | |||
1 | project ( yue CXX ) | 1 | project(yue CXX) |
2 | cmake_minimum_required ( VERSION 3.1 ) | 2 | cmake_minimum_required(VERSION 3.1) |
3 | 3 | ||
4 | MESSAGE(STATUS "Lua: using information from luarocks") | 4 | SET(LUA_LIBDIR ${LUA_INCDIR}/../lib " " ${LUA_INCDIR}/../../lib) |
5 | 5 | ||
6 | MESSAGE(STATUS "LUA_LIBDIR: " ${LUA_INCDIR}/../lib " " ${LUA_INCDIR}/../../lib ) | 6 | find_package(Lua) |
7 | MESSAGE(STATUS "LUA_INCDIR: " ${LUA_INCDIR}) | 7 | IF(LUA_FOUND) |
8 | MESSAGE(STATUS "LUA: " ${LUA}) | 8 | SET(LUA_LIBRARIES "${LUA_LIBRARY}") |
9 | 9 | ELSE(LUA_FOUND) | |
10 | SET(LUA_EXECUTABLE "${LUA}") | 10 | MESSAGE(STATUS "Lua: using information from luarocks") |
11 | SET(LUA_INCLUDE_DIR "${LUA_INCDIR}") | 11 | SET(LUA_INCLUDE_DIR "${LUA_INCDIR}") |
12 | 12 | GET_FILENAME_COMPONENT(LUA_EXEC_NAME ${LUA} NAME_WE) | |
13 | GET_FILENAME_COMPONENT(LUA_EXEC_NAME ${LUA} NAME_WE) | 13 | IF(LUA_EXEC_NAME STREQUAL "luajit") |
14 | IF(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.*") |
19 | ELSEIF(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) |
24 | ENDIF() | 24 | ENDIF(LUA_FOUND) |
25 | |||
26 | MESSAGE(STATUS "Lua: " ${LUA}) | ||
27 | MESSAGE(STATUS "Lua include: " ${LUA_INCLUDE_DIR}) | ||
25 | MESSAGE(STATUS "Lua library: ${LUA_LIBRARIES}") | 28 | MESSAGE(STATUS "Lua library: ${LUA_LIBRARIES}") |
26 | 29 | ||
27 | enable_language( CXX ) | 30 | enable_language(CXX) |
28 | include_directories( src ${LUA_INCLUDE_DIR} ) | 31 | include_directories(src ${LUA_INCLUDE_DIR}) |
29 | add_definitions( -std=c++17 -O3 -fPIC ) | 32 | add_definitions(-std=c++17 -O3 -fPIC) |
30 | 33 | ||
31 | add_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) | 34 | add_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) |
32 | set_target_properties( libyue PROPERTIES PREFIX "" ) | 35 | set_target_properties(libyue PROPERTIES PREFIX "") |
33 | set_target_properties( libyue PROPERTIES OUTPUT_NAME "yue" ) | 36 | set_target_properties(libyue PROPERTIES OUTPUT_NAME "yue") |
34 | target_link_libraries( libyue ${LUA_LIBRARIES} ) | 37 | target_link_libraries(libyue ${LUA_LIBRARIES}) |
35 | 38 | ||
36 | add_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 ) | 39 | add_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) |
37 | target_link_libraries( yue ${LUA_LIBRARIES} ) | 40 | target_link_libraries(yue ${LUA_LIBRARIES}) |
41 | target_link_options(yue PRIVATE -ldl -lpthread) | ||
38 | if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | 42 | if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") |
39 | target_link_options( yue PRIVATE -ldl -lpthread -lstdc++fs ) | 43 | target_link_options(yue PRIVATE -lstdc++fs) |
40 | endif() | 44 | endif() |
41 | 45 | ||
42 | install(CODE "") | 46 | install(CODE "") |