diff options
Diffstat (limited to 'vcpkg/ports/luasocket')
| -rw-r--r-- | vcpkg/ports/luasocket/CMakeLists.txt | 138 | ||||
| -rw-r--r-- | vcpkg/ports/luasocket/portfile.cmake | 32 | ||||
| -rw-r--r-- | vcpkg/ports/luasocket/vcpkg.json | 15 |
3 files changed, 185 insertions, 0 deletions
diff --git a/vcpkg/ports/luasocket/CMakeLists.txt b/vcpkg/ports/luasocket/CMakeLists.txt new file mode 100644 index 0000000..b07f043 --- /dev/null +++ b/vcpkg/ports/luasocket/CMakeLists.txt @@ -0,0 +1,138 @@ +cmake_minimum_required(VERSION 3.10) +project(luasocket) + +if(WIN32) + set(PLATFORM_LIBRARIES ws2_32) +endif() + +find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua) +find_library(LUA_LIBRARY lua) +set(LUASOCKET_INCLUDES ${LUA_INCLUDE_DIR} src) +set(LUASOCKET_LIBRARIES ${LUA_LIBRARY} ${PLATFORM_LIBRARIES}) + +add_library(socket.core + src/luasocket.c + src/timeout.c + src/buffer.c + src/io.c + src/auxiliar.c + src/options.c + src/inet.c + src/except.c + src/select.c + src/tcp.c + src/udp.c + src/compat.c) +if(WIN32) + target_sources(socket.core PRIVATE + src/wsocket.c) +elseif (UNIX) + target_sources(socket.core PRIVATE + src/usocket.c) +endif() +set_target_properties(socket.core PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "socket" + LIBRARY_OUTPUT_DIRECTORY "socket" + PREFIX "" + RUNTIME_OUTPUT_NAME "core" + LIBRARY_OUTPUT_NAME "core") +target_include_directories(socket.core PRIVATE ${LUASOCKET_INCLUDES}) +target_link_libraries(socket.core PRIVATE ${LUASOCKET_LIBRARIES}) + +add_library(mime.core + src/mime.c + src/compat.c) +set_target_properties(mime.core PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "mime" + LIBRARY_OUTPUT_DIRECTORY "mime" + PREFIX "" + RUNTIME_OUTPUT_NAME "core" + LIBRARY_OUTPUT_NAME "core") +target_include_directories(mime.core PRIVATE ${LUASOCKET_INCLUDES}) +target_link_libraries(mime.core PRIVATE ${LUASOCKET_LIBRARIES}) + +if(UNIX) + add_library(socket.unix + src/buffer.c + src/compat.c + src/auxiliar.c + src/options.c + src/timeout.c + src/io.c + src/usocket.c + src/unix.c + src/unixdgram.c + src/unixstream.c) + set_target_properties(socket.unix PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "socket" + LIBRARY_OUTPUT_DIRECTORY "socket" + PREFIX "" + RUNTIME_OUTPUT_NAME "unix" + LIBRARY_OUTPUT_NAME "unix") + target_include_directories(socket.unix PRIVATE ${LUASOCKET_INCLUDES}) + target_link_libraries(socket.unix PRIVATE ${LUASOCKET_LIBRARIES}) + + add_library(socket.serial + src/buffer.c + src/compat.c + src/auxiliar.c + src/options.c + src/timeout.c + src/io.c + src/usocket.c + src/serial.c) + set_target_properties(socket.serial PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "socket" + LIBRARY_OUTPUT_DIRECTORY "socket" + PREFIX "" + RUNTIME_OUTPUT_NAME "serial" + LIBRARY_OUTPUT_NAME "serial") + target_include_directories(socket.serial PRIVATE ${LUASOCKET_INCLUDES}) + target_link_libraries(socket.serial PRIVATE ${LUASOCKET_LIBRARIES}) +endif() + +if(WIN32) + if("${BUILD_TYPE}" STREQUAL "STATIC") + add_definitions( + "-DLUASOCKET_API=") + else() + add_definitions( + "-DLUASOCKET_API=__declspec(dllexport)") + endif() +endif() + +install(TARGETS socket.core + RUNTIME DESTINATION bin/socket + LIBRARY DESTINATION lib/socket + ARCHIVE DESTINATION lib) + +install(TARGETS mime.core + RUNTIME DESTINATION bin/mime + LIBRARY DESTINATION lib/mime + ARCHIVE DESTINATION lib) + +if(UNIX) + install(TARGETS socket.unix + RUNTIME DESTINATION bin/socket + LIBRARY DESTINATION lib/socket + ARCHIVE DESTINATION lib) + install(TARGETS socket.serial + RUNTIME DESTINATION bin/socket + LIBRARY DESTINATION lib/socket + ARCHIVE DESTINATION lib) +endif() + +install(FILES + src/ltn12.lua + src/socket.lua + src/mime.lua + DESTINATION share/lua) + +install(FILES + src/http.lua + src/url.lua + src/tp.lua + src/ftp.lua + src/headers.lua + src/smtp.lua + DESTINATION share/lua/socket) diff --git a/vcpkg/ports/luasocket/portfile.cmake b/vcpkg/ports/luasocket/portfile.cmake new file mode 100644 index 0000000..1a56337 --- /dev/null +++ b/vcpkg/ports/luasocket/portfile.cmake @@ -0,0 +1,32 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO lunarmodules/luasocket + REF "v${VERSION}" + SHA512 1e9e98484740ec6538fe3d2b0dab74d31f052956ecf9ee3b60e229f2d0b13fcc6d4aaf74cd2a3e2ee330333dabb316fe6a43c60baaea26f0cc01069b6aa4519b + HEAD_REF master) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(BUILD_TYPE SHARED) +else() + set(BUILD_TYPE STATIC) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_TYPE=${BUILD_TYPE} +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +# Remove debug share +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +# Handle copyright +vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/LICENSE) + +# Allow empty include directory +set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) diff --git a/vcpkg/ports/luasocket/vcpkg.json b/vcpkg/ports/luasocket/vcpkg.json new file mode 100644 index 0000000..bfae0ba --- /dev/null +++ b/vcpkg/ports/luasocket/vcpkg.json @@ -0,0 +1,15 @@ +{ + "name": "luasocket", + "version": "3.1.0", + "port-version": 1, + "description": "LuaSocket is a Lua extension library that is composed by two parts: a C core that provides support for the TCP and UDP transport layers, and a set of Lua modules that add support for functionality commonly needed by applications that deal with the Internet.", + "homepage": "https://lunarmodules.github.io/luasocket/", + "license": "MIT", + "dependencies": [ + "lua", + { + "name": "vcpkg-cmake", + "host": true + } + ] +} |