diff --git a/.gitmodules b/.gitmodules index e58a5bbd4..e15a27575 100644 --- a/.gitmodules +++ b/.gitmodules @@ -44,3 +44,6 @@ [submodule "lib/expected-lite"] path = lib/expected-lite url = https://github.com/martinmoene/expected-lite +[submodule "lib/sol2"] + path = lib/sol2 + url = https://github.com/ThePhD/sol2.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 6fb323286..023135891 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,6 +212,8 @@ endif() if (CHATTERINO_PLUGINS) set(LUA_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/lib/lua/src") add_subdirectory(lib/lua) + + find_package(Sol2 REQUIRED) endif() if (BUILD_WITH_CRASHPAD) diff --git a/cmake/FindSol2.cmake b/cmake/FindSol2.cmake new file mode 100644 index 000000000..a20ea58c3 --- /dev/null +++ b/cmake/FindSol2.cmake @@ -0,0 +1,20 @@ +include(FindPackageHandleStandardArgs) + +find_path(Sol2_INCLUDE_DIR sol/sol.hpp HINTS ${CMAKE_SOURCE_DIR}/lib/sol2/include) + +find_package_handle_standard_args(Sol2 DEFAULT_MSG Sol2_INCLUDE_DIR) + +if (Sol2_FOUND) + add_library(Sol2 INTERFACE IMPORTED) + set_target_properties(Sol2 PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${Sol2_INCLUDE_DIR}" + ) + target_compile_definitions(Sol2 INTERFACE + SOL_ALL_SAFETIES_ON=1 + SOL_USING_CXX_LUA=1 + ) + target_link_libraries(Sol2 INTERFACE lua) + add_library(sol2::sol2 ALIAS Sol2) +endif () + +mark_as_advanced(Sol2_INCLUDE_DIR) diff --git a/lib/sol2 b/lib/sol2 new file mode 160000 index 000000000..2b0d2fe8b --- /dev/null +++ b/lib/sol2 @@ -0,0 +1 @@ +Subproject commit 2b0d2fe8ba0074e16b499940c4f3126b9c7d3471 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d24a0155e..1d40a43a3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -787,7 +787,7 @@ target_link_libraries(${LIBRARY_PROJECT} $<$:Wtsapi32> ) if (CHATTERINO_PLUGINS) - target_link_libraries(${LIBRARY_PROJECT} PUBLIC lua) + target_link_libraries(${LIBRARY_PROJECT} PUBLIC lua sol2::sol2) endif() if (BUILD_WITH_QTKEYCHAIN)