diff options
| author | Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> | 2021-08-12 08:27:43 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-11 17:27:43 -0700 |
| commit | 1dfb5d9d2fa2cf03d4c5272146d90fa09e764c46 (patch) | |
| tree | 181b1c313aca48aadde19004fa980588d7824c4f | |
| parent | 32950ca774a0c2f90c2105b65b594db53d0b40a7 (diff) | |
| download | vcpkg-1dfb5d9d2fa2cf03d4c5272146d90fa09e764c46.tar.gz vcpkg-1dfb5d9d2fa2cf03d4c5272146d90fa09e764c46.zip | |
[lua] Export cmake targets, rewrite CMakeLists and delete usage (#15921)
| -rw-r--r-- | ports/lua/CMakeLists.txt | 36 | ||||
| -rw-r--r-- | ports/lua/portfile.cmake | 37 | ||||
| -rw-r--r-- | ports/lua/usage | 6 | ||||
| -rw-r--r-- | ports/lua/vcpkg-cmake-wrapper.cmake.in | 25 | ||||
| -rw-r--r-- | ports/lua/vcpkg.json | 4 | ||||
| -rw-r--r-- | versions/baseline.json | 2 | ||||
| -rw-r--r-- | versions/l-/lua.json | 5 |
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 |
