aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>2021-08-12 08:27:43 +0800
committerGitHub <noreply@github.com>2021-08-11 17:27:43 -0700
commit1dfb5d9d2fa2cf03d4c5272146d90fa09e764c46 (patch)
tree181b1c313aca48aadde19004fa980588d7824c4f
parent32950ca774a0c2f90c2105b65b594db53d0b40a7 (diff)
downloadvcpkg-1dfb5d9d2fa2cf03d4c5272146d90fa09e764c46.tar.gz
vcpkg-1dfb5d9d2fa2cf03d4c5272146d90fa09e764c46.zip
[lua] Export cmake targets, rewrite CMakeLists and delete usage (#15921)
-rw-r--r--ports/lua/CMakeLists.txt36
-rw-r--r--ports/lua/portfile.cmake37
-rw-r--r--ports/lua/usage6
-rw-r--r--ports/lua/vcpkg-cmake-wrapper.cmake.in25
-rw-r--r--ports/lua/vcpkg.json4
-rw-r--r--versions/baseline.json2
-rw-r--r--versions/l-/lua.json5
7 files changed, 80 insertions, 35 deletions
diff --git a/ports/lua/CMakeLists.txt b/ports/lua/CMakeLists.txt
index ff16ff78c..8e93eb1ab 100644
--- a/ports/lua/CMakeLists.txt
+++ b/ports/lua/CMakeLists.txt
@@ -53,9 +53,6 @@ ENDIF ()
#DLL
ADD_LIBRARY ( lua ${SRC_LIBLUA} )
SET_PROPERTY (TARGET lua PROPERTY POSITION_INDEPENDENT_CODE ON)
-IF (COMPILE_AS_CPP)
- SET_TARGET_PROPERTIES(lua PROPERTIES OUTPUT_NAME "lua-c++")
-ENDIF()
IF (BUILD_SHARED_LIBS AND WIN32)
TARGET_COMPILE_DEFINITIONS (lua PUBLIC -DLUA_BUILD_AS_DLL )
@@ -74,11 +71,42 @@ IF (UNIX)
ENDIF ()
INSTALL ( TARGETS lua
+ EXPORT unofficial-lua-config
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
)
+install(EXPORT unofficial-lua-config DESTINATION share/unofficial-lua)
+
+IF (COMPILE_AS_CPP)
+ ADD_LIBRARY ( lua-cpp ${SRC_LIBLUA} )
+ SET_TARGET_PROPERTIES(lua-cpp PROPERTIES OUTPUT_NAME "lua-c++")
+ IF (BUILD_SHARED_LIBS AND WIN32)
+ TARGET_COMPILE_DEFINITIONS (lua-cpp PUBLIC -DLUA_BUILD_AS_DLL )
+ ENDIF ()
+ IF (UNIX)
+ IF (APPLE)
+ TARGET_COMPILE_DEFINITIONS (lua-cpp PUBLIC -DLUA_USE_DLOPEN)
+ ELSE ()
+ FIND_LIBRARY (LIB_DLOPEN NAMES dl)
+ IF (LIB_DLOPEN)
+ TARGET_COMPILE_DEFINITIONS (lua-cpp PUBLIC -DLUA_USE_DLOPEN)
+ TARGET_LINK_LIBRARIES (lua-cpp ${LIB_DLOPEN})
+ ENDIF ()
+ ENDIF ()
+ ENDIF ()
+
+ INSTALL ( TARGETS lua-cpp
+ EXPORT unofficial-lua-cpp-config
+ RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
+ )
+
+ install(EXPORT unofficial-lua-cpp-config DESTINATION share/unofficial-lua-cpp)
+ENDIF()
+
IF (INSTALL_TOOLS)
ADD_EXECUTABLE ( luac src/luac.c ${SRC_LIBLUA} ) # compiler uses non-exported APIs, so must include sources directly.
ADD_EXECUTABLE ( luai src/lua.c ) # interpreter
@@ -102,7 +130,7 @@ IF (INSTALL_TOOLS)
INSTALL ( TARGETS luai luac RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/tools/lua )
ENDIF ()
-IF (NOT DEFINED SKIP_INSTALL_HEADERS)
+IF (NOT SKIP_INSTALL_HEADERS)
INSTALL(
FILES
src/lualib.h
diff --git a/ports/lua/portfile.cmake b/ports/lua/portfile.cmake
index 11eeac875..89097096c 100644
--- a/ports/lua/portfile.cmake
+++ b/ports/lua/portfile.cmake
@@ -13,43 +13,42 @@ vcpkg_extract_source_archive_ex(
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+# Used in cmake wrapper
+set(ENABLE_LUA_CPP 0)
+if ("cpp" IN_LIST FEATURES)
+ set(ENABLE_LUA_CPP 1)
+endif()
+
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
+ cpp COMPILE_AS_CPP
tools INSTALL_TOOLS
)
if(VCPKG_TARGET_IS_IOS AND "tools" IN_LIST FEATURES)
message(FATAL_ERROR "lua[tools] is not supported for iOS platform build")
endif()
-set(ENABLE_LUA_CPP 0)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS_RELEASE
- ${FEATURE_OPTIONS}
OPTIONS
- -DCOMPILE_AS_CPP=OFF
+ ${FEATURE_OPTIONS}
OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
vcpkg_install_cmake()
-if("cpp" IN_LIST FEATURES) # lua[cpp] will create lua-c++, which uses C++ name mangling.
- set(ENABLE_LUA_CPP 1)
- vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- OPTIONS
- ${FEATURE_OPTIONS}
- -DCOMPILE_AS_CPP=ON
- OPTIONS_DEBUG
- -DSKIP_INSTALL_HEADERS=ON
- )
- vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-lua TARGET_PATH share/unofficial-lua)
+
+if("cpp" IN_LIST FEATURES)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-lua-cpp TARGET_PATH share/unofficial-lua-cpp)
endif()
-vcpkg_copy_pdbs()
-vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/lua)
+if ("tools" IN_LIST FEATURES)
+ vcpkg_copy_tools(TOOL_NAMES lua luac SEARCH_DIR "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+endif()
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
if(VCPKG_TARGET_IS_WINDOWS)
@@ -59,7 +58,7 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
endif()
endif()
-# Handle post-build CMake instructions
+# Suitable for old version
configure_file(${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in ${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake @ONLY)
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/lua/usage b/ports/lua/usage
index e27f6392d..01aa81ed3 100644
--- a/ports/lua/usage
+++ b/ports/lua/usage
@@ -1,9 +1,5 @@
Use this package via the module FindLua that comes with CMake. To use in your CMakeLists.txt:
- include(FindLua)
find_package(Lua REQUIRED)
- target_link_libraries(main PRIVATE ${LUA_LIBRARIES})
target_include_directories(main PRIVATE ${LUA_INCLUDE_DIR})
-
-For more information about the variables set by this module, please see:
- https://cmake.org/cmake/help/latest/module/FindLua.html \ No newline at end of file
+ target_link_libraries(main PRIVATE ${LUA_LIBRARIES})
diff --git a/ports/lua/vcpkg-cmake-wrapper.cmake.in b/ports/lua/vcpkg-cmake-wrapper.cmake.in
index 3b974043a..74973eca3 100644
--- a/ports/lua/vcpkg-cmake-wrapper.cmake.in
+++ b/ports/lua/vcpkg-cmake-wrapper.cmake.in
@@ -1,6 +1,23 @@
-_find_package(${ARGS})
+set(REQUIRES )
+foreach(ARG IN_LISTS ${ARGS})
+ if (ARG STREQUAL "REQUIRED")
+ set(REQUIRES "REQUIRED")
+ endif()
+endforeach()
+
+_find_package(unofficial-lua CONFIG ${REQUIRES})
if (@ENABLE_LUA_CPP@)
- find_library(lua_cpp NAMES lua-c++ liblua-c++ REQUIRED)
- set(LUA_LIBRARIES ${LUA_LIBRARIES} ${lua_cpp})
-endif() \ No newline at end of file
+ _find_package(unofficial-lua-cpp CONFIG ${REQUIRES})
+endif()
+
+get_filename_component(LUA_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}" PATH)
+get_filename_component(LUA_INCLUDE_DIR "${LUA_INCLUDE_DIR}" PATH)
+set(LUA_INCLUDE_DIR ${LUA_INCLUDE_DIR}/include)
+
+list(APPEND LUA_LIBRARIES lua)
+if (TARGET lua-cpp)
+ list(APPEND LUA_LIBRARIES lua-cpp)
+endif()
+
+set(LUA_FOUND 1)
diff --git a/ports/lua/vcpkg.json b/ports/lua/vcpkg.json
index 36dd26376..02dc73117 100644
--- a/ports/lua/vcpkg.json
+++ b/ports/lua/vcpkg.json
@@ -1,7 +1,7 @@
{
"name": "lua",
- "version-string": "5.4.3",
- "port-version": 1,
+ "version-semver": "5.4.3",
+ "port-version": 2,
"description": "A powerful, fast, lightweight, embeddable scripting language",
"homepage": "https://www.lua.org",
"features": {
diff --git a/versions/baseline.json b/versions/baseline.json
index 0339d5c72..965e934d8 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -3886,7 +3886,7 @@
},
"lua": {
"baseline": "5.4.3",
- "port-version": 1
+ "port-version": 2
},
"luabridge": {
"baseline": "2.6",
diff --git a/versions/l-/lua.json b/versions/l-/lua.json
index fd0f4da29..930b81157 100644
--- a/versions/l-/lua.json
+++ b/versions/l-/lua.json
@@ -1,6 +1,11 @@
{
"versions": [
{
+ "git-tree": "3be47dc8a0f0e6497caac10e26e2eaf8866b2990",
+ "version-semver": "5.4.3",
+ "port-version": 2
+ },
+ {
"git-tree": "0e8966273a1a18cf591cf78046d345c74941a37d",
"version-string": "5.4.3",
"port-version": 1