diff options
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 "") |
