mirror of
https://github.com/walterschell/Lua.git
synced 2024-11-24 06:04:34 +00:00
Merge pull request #27 from walterschell/landing/pr-18-correct-lua-libraries
Landing/pr 18 correct lua libraries
This commit is contained in:
commit
ec129b7b0e
15
.github/workflows/build-emscripten-cxx.yml
vendored
15
.github/workflows/build-emscripten-cxx.yml
vendored
@ -35,3 +35,18 @@ jobs:
|
|||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
working-directory: ${{github.workspace}}/build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install . --prefix $GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
## Test of installing as CXX doesn't really make sense
|
||||||
|
# - name: Configure Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake -S $GITHUB_WORKSPACE/lua-config-package-tests -B build-pkg-test -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
# - name: Build Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake --build build-pkg-test
|
14
.github/workflows/build-emscripten.yml
vendored
14
.github/workflows/build-emscripten.yml
vendored
@ -35,3 +35,17 @@ jobs:
|
|||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
working-directory: ${{github.workspace}}/build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install . --prefix $GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
# - name: Configure Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: emcmake cmake -S $GITHUB_WORKSPACE/lua-config-package-tests -B build-pkg-test -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
# - name: Build Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake --build build-pkg-test
|
19
.github/workflows/build-linux-cxx.yml
vendored
19
.github/workflows/build-linux-cxx.yml
vendored
@ -43,7 +43,24 @@ jobs:
|
|||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
working-directory: ${{github.workspace}}/build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install . --prefix $GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
working-directory: ${{github.workspace}}/build
|
working-directory: ${{github.workspace}}/build
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ctest -V
|
run: ctest -V
|
||||||
|
|
||||||
|
## Test of installing as CXX doesn't really make sense
|
||||||
|
|
||||||
|
# - name: Configure Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake -S $GITHUB_WORKSPACE/lua-config-package-tests -B build-pkg-test -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
# - name: Build Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake --build build-pkg-test
|
17
.github/workflows/build-linux.yml
vendored
17
.github/workflows/build-linux.yml
vendored
@ -43,7 +43,22 @@ jobs:
|
|||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
working-directory: ${{github.workspace}}/build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install . --prefix $GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
working-directory: ${{github.workspace}}/build
|
working-directory: ${{github.workspace}}/build
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ctest -V
|
run: ctest -V
|
||||||
|
|
||||||
|
- name: Configure Test of CMake Package
|
||||||
|
working-directory: ${{github.workspace}}
|
||||||
|
shell: bash
|
||||||
|
run: cmake -S $GITHUB_WORKSPACE/lua-config-package-tests -B build-pkg-test -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
- name: Build Test of CMake Package
|
||||||
|
working-directory: ${{github.workspace}}
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build-pkg-test
|
18
.github/workflows/build-osx-cxx.yml
vendored
18
.github/workflows/build-osx-cxx.yml
vendored
@ -43,7 +43,23 @@ jobs:
|
|||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
working-directory: ${{github.workspace}}/build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install . --prefix $GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
working-directory: ${{github.workspace}}/build
|
working-directory: ${{github.workspace}}/build
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ctest -V
|
run: ctest -V
|
||||||
|
|
||||||
|
## Test of installing as CXX doesn't really make sense
|
||||||
|
# - name: Configure Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake -S $GITHUB_WORKSPACE/lua-config-package-tests -B build-pkg-test -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
# - name: Build Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake --build build-pkg-test
|
18
.github/workflows/build-osx.yml
vendored
18
.github/workflows/build-osx.yml
vendored
@ -43,7 +43,23 @@ jobs:
|
|||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
working-directory: ${{github.workspace}}/build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install . --prefix $GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
working-directory: ${{github.workspace}}/build
|
working-directory: ${{github.workspace}}/build
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ctest -V
|
run: ctest -V
|
||||||
|
|
||||||
|
- name: Configure Test of CMake Package
|
||||||
|
working-directory: ${{github.workspace}}
|
||||||
|
shell: bash
|
||||||
|
run: cmake -S $GITHUB_WORKSPACE/lua-config-package-tests -B build-pkg-test -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
- name: Build Test of CMake Package
|
||||||
|
working-directory: ${{github.workspace}}
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build-pkg-test
|
18
.github/workflows/build-windows-cxx.yml
vendored
18
.github/workflows/build-windows-cxx.yml
vendored
@ -43,7 +43,23 @@ jobs:
|
|||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
working-directory: ${{github.workspace}}/build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install . --prefix $GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
working-directory: ${{github.workspace}}/build
|
working-directory: ${{github.workspace}}/build
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ctest -V -C $BUILD_TYPE
|
run: ctest -V -C $BUILD_TYPE
|
||||||
|
|
||||||
|
## Test of installing as CXX doesn't really make sense
|
||||||
|
# - name: Configure Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake -S $GITHUB_WORKSPACE/lua-config-package-tests -B build-pkg-test -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
# - name: Build Test of CMake Package
|
||||||
|
# working-directory: ${{github.workspace}}
|
||||||
|
# shell: bash
|
||||||
|
# run: cmake --build build-pkg-test
|
17
.github/workflows/build-windows.yml
vendored
17
.github/workflows/build-windows.yml
vendored
@ -43,7 +43,22 @@ jobs:
|
|||||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||||
run: cmake --build . --config $BUILD_TYPE
|
run: cmake --build . --config $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
working-directory: ${{github.workspace}}/build
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install . --prefix $GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
working-directory: ${{github.workspace}}/build
|
working-directory: ${{github.workspace}}/build
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ctest -V -C $BUILD_TYPE
|
run: ctest -V -C $BUILD_TYPE
|
||||||
|
|
||||||
|
- name: Configure Test of CMake Package
|
||||||
|
working-directory: ${{github.workspace}}
|
||||||
|
shell: bash
|
||||||
|
run: cmake -S $GITHUB_WORKSPACE/lua-config-package-tests -B build-pkg-test -DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/sysroot
|
||||||
|
|
||||||
|
- name: Build Test of CMake Package
|
||||||
|
working-directory: ${{github.workspace}}
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build-pkg-test
|
@ -35,6 +35,8 @@ set(LUA_LIB_SRCS
|
|||||||
|
|
||||||
set(TARGETS_TO_INSTALL lua_internal lua_include)
|
set(TARGETS_TO_INSTALL lua_internal lua_include)
|
||||||
|
|
||||||
|
set(LUA_LINKED_LIBRARIES)
|
||||||
|
|
||||||
if(LUA_BUILD_AS_CXX)
|
if(LUA_BUILD_AS_CXX)
|
||||||
set_source_files_properties(${LUA_LIB_SRCS} "src/lua.c" "src/luac.c" PROPERTIES LANGUAGE CXX )
|
set_source_files_properties(${LUA_LIB_SRCS} "src/lua.c" "src/luac.c" PROPERTIES LANGUAGE CXX )
|
||||||
endif()
|
endif()
|
||||||
@ -87,14 +89,17 @@ if(UNIX)
|
|||||||
if(NOT LIBM)
|
if(NOT LIBM)
|
||||||
message(FATAL_ERROR "libm not found and is required by lua")
|
message(FATAL_ERROR "libm not found and is required by lua")
|
||||||
endif()
|
endif()
|
||||||
|
target_compile_definitions(lua_internal INTERFACE "LUA_USE_POSIX")
|
||||||
target_link_libraries(lua_internal INTERFACE m)
|
target_link_libraries(lua_internal INTERFACE m)
|
||||||
|
list(APPEND LUA_LINKED_LIBRARIES m)
|
||||||
target_compile_definitions(lua_internal
|
|
||||||
INTERFACE LUA_USE_POSIX
|
|
||||||
)
|
|
||||||
if(LUA_SUPPORT_DL)
|
if(LUA_SUPPORT_DL)
|
||||||
|
find_library(LIBDL "${CMAKE_DL_LIBS}")
|
||||||
|
if(NOT LIBDL)
|
||||||
|
message(FATAL_ERROR "libdl not found and is required by lua")
|
||||||
|
endif()
|
||||||
target_compile_definitions(lua_internal INTERFACE "LUA_USE_DLOPEN")
|
target_compile_definitions(lua_internal INTERFACE "LUA_USE_DLOPEN")
|
||||||
target_link_libraries(lua_internal INTERFACE dl)
|
target_link_libraries(lua_internal INTERFACE "${CMAKE_DL_LIBS}")
|
||||||
|
list(APPEND LUA_LINKED_LIBRARIES "${CMAKE_DL_LIBS}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -150,17 +155,17 @@ write_basic_package_version_file(
|
|||||||
|
|
||||||
install(EXPORT LuaTargets
|
install(EXPORT LuaTargets
|
||||||
FILE LuaTargets.cmake
|
FILE LuaTargets.cmake
|
||||||
DESTINATION "lib/cmake"
|
DESTINATION "share/cmake/Lua"
|
||||||
NAMESPACE Lua::
|
NAMESPACE Lua::
|
||||||
)
|
)
|
||||||
|
|
||||||
configure_package_config_file(
|
configure_package_config_file(
|
||||||
LuaConfig.cmake.in
|
LuaConfig.cmake.in
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/LuaConfig.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/LuaConfig.cmake"
|
||||||
INSTALL_DESTINATION "lib/cmake"
|
INSTALL_DESTINATION "share/cmake/Lua"
|
||||||
)
|
)
|
||||||
|
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/LuaConfig.cmake"
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/LuaConfig.cmake"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/LuaConfigVersion.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/LuaConfigVersion.cmake"
|
||||||
DESTINATION "lib/cmake"
|
DESTINATION "share/cmake/Lua"
|
||||||
)
|
)
|
||||||
|
@ -4,6 +4,20 @@ include("${CMAKE_CURRENT_LIST_DIR}/LuaTargets.cmake")
|
|||||||
|
|
||||||
set_and_check(LUA_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include")
|
set_and_check(LUA_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include")
|
||||||
add_library(Lua::Library ALIAS "Lua::@LUA_EXPORT_LIBRARY@")
|
add_library(Lua::Library ALIAS "Lua::@LUA_EXPORT_LIBRARY@")
|
||||||
set(LUA_LIBRARIES "Lua::Library")
|
get_target_property(LUA_CONFIG "Lua::@LUA_EXPORT_LIBRARY@" IMPORTED_CONFIGURATIONS)
|
||||||
|
get_target_property(LUA_LIBRARY "Lua::@LUA_EXPORT_LIBRARY@" "IMPORTED_LOCATION_${LUA_CONFIG}")
|
||||||
|
set(LUA_LIBRARIES "${LUA_LIBRARY}")
|
||||||
|
add_library(LUA_INCLUDE_LIB INTERFACE)
|
||||||
|
target_include_directories(LUA_INCLUDE_LIB INTERFACE "${LUA_INCLUDE_DIR}")
|
||||||
|
list(APPEND LUA_LIBRARIES LUA_INCLUDE_LIB)
|
||||||
|
|
||||||
|
foreach(LIB_NAME @LUA_LINKED_LIBRARIES@)
|
||||||
|
find_library(LIB_LOCATION "${LIB_NAME}")
|
||||||
|
if(NOT LIB_LOCATION)
|
||||||
|
message(FATAL_ERROR "lib${LIB_NAME} not found and is required by lua")
|
||||||
|
else()
|
||||||
|
list(APPEND LUA_LIBRARIES "${LIB_LOCATION}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
check_required_components(Lua)
|
check_required_components(Lua)
|
||||||
|
22
lua-config-package-tests/CMakeLists.txt
Normal file
22
lua-config-package-tests/CMakeLists.txt
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.1)
|
||||||
|
project(lua-config-package-test C)
|
||||||
|
|
||||||
|
find_package(Lua REQUIRED CONFIG)
|
||||||
|
|
||||||
|
add_executable(lua-config-package-build-test-using-static-target "./lua-config-package-build-test.c")
|
||||||
|
target_link_libraries(lua-config-package-build-test-using-static-target Lua::lua_static)
|
||||||
|
|
||||||
|
add_executable(lua-config-package-build-test-using-shared-target "./lua-config-package-build-test.c")
|
||||||
|
target_link_libraries(lua-config-package-build-test-using-shared-target Lua::lua_shared)
|
||||||
|
|
||||||
|
add_executable(lua-config-package-build-test-using-variables "./lua-config-package-build-test.c")
|
||||||
|
target_link_libraries(lua-config-package-build-test-using-variables "${LUA_LIBRARIES}")
|
||||||
|
|
||||||
|
add_library(lua-lib-module-compatible-mode UNKNOWN IMPORTED "${LUA_LIBRARY}")
|
||||||
|
set_target_properties(lua-lib-module-compatible-mode PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${LUA_INCLUDE_DIR}"
|
||||||
|
IMPORTED_LOCATION "${LUA_LIBRARY}")
|
||||||
|
target_link_libraries(lua-lib-module-compatible-mode INTERFACE "${LUA_LIBRARIES}")
|
||||||
|
|
||||||
|
add_executable(lua-config-package-build-test-using-module-compatible-mode "./lua-config-package-build-test.c")
|
||||||
|
target_link_libraries(lua-config-package-build-test-using-module-compatible-mode lua-lib-module-compatible-mode)
|
10
lua-config-package-tests/lua-config-package-build-test.c
Normal file
10
lua-config-package-tests/lua-config-package-build-test.c
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#include <lua.h>
|
||||||
|
#include <lauxlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
lua_State *l = luaL_newstate();
|
||||||
|
double lversion = lua_version(l);
|
||||||
|
printf("Lua version is %f\n", lversion);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user