aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/winpty
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/winpty')
-rw-r--r--vcpkg/ports/winpty/CMakeLists.txt172
-rw-r--r--vcpkg/ports/winpty/allow-build-static.patch45
-rw-r--r--vcpkg/ports/winpty/portfile.cmake32
-rw-r--r--vcpkg/ports/winpty/vcpkg.json16
4 files changed, 265 insertions, 0 deletions
diff --git a/vcpkg/ports/winpty/CMakeLists.txt b/vcpkg/ports/winpty/CMakeLists.txt
new file mode 100644
index 0000000..ce3eb00
--- /dev/null
+++ b/vcpkg/ports/winpty/CMakeLists.txt
@@ -0,0 +1,172 @@
+cmake_minimum_required(VERSION 3.12.0)
+
+set(PROJECT_VERSION "0.4.3")
+project(winpty VERSION ${PROJECT_VERSION} LANGUAGES CXX)
+
+add_definitions(-DPROJECT_VERSION="${PROJECT_VERSION}")
+add_definitions(-D_WIN32_WINNT=0x0600)
+add_definitions(-DUNICODE)
+add_definitions(-D_UNICODE)
+add_definitions(-DNOMINMAX)
+
+if("${BUILD_TYPE}" STREQUAL "STATIC")
+ add_definitions(-DBUILD_STATIC)
+else()
+ add_definitions(-DCOMPILING_WINPTY_DLL)
+endif()
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(WINPTY_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include)
+set(WINPTY_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin)
+set(WINPTY_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib)
+
+include_directories(${WINPTY_INSTALL_INCLUDE_DIR})
+
+#winpty library
+set(WINPTYLIB_SOURCE_FILES
+ src/include/winpty.h
+ src/libwinpty/AgentLocation.cc
+ src/libwinpty/AgentLocation.h
+ src/libwinpty/winpty.cc
+ src/shared/AgentMsg.h
+ src/shared/BackgroundDesktop.h
+ src/shared/BackgroundDesktop.cc
+ src/shared/Buffer.h
+ src/shared/Buffer.cc
+ src/shared/DebugClient.h
+ src/shared/DebugClient.cc
+ src/shared/GenRandom.h
+ src/shared/GenRandom.cc
+ src/shared/OsModule.h
+ src/shared/OwnedHandle.h
+ src/shared/OwnedHandle.cc
+ src/shared/StringBuilder.h
+ src/shared/StringUtil.cc
+ src/shared/StringUtil.h
+ src/shared/WindowsSecurity.cc
+ src/shared/WindowsSecurity.h
+ src/shared/WindowsVersion.h
+ src/shared/WindowsVersion.cc
+ src/shared/WinptyAssert.h
+ src/shared/WinptyAssert.cc
+ src/shared/WinptyException.h
+ src/shared/WinptyException.cc
+ src/shared/WinptyVersion.h
+ src/shared/WinptyVersion.cc
+ src/shared/winpty_snprintf.h
+)
+
+add_library( winpty ${BUILD_TYPE} ${WINPTYLIB_SOURCE_FILES} )
+
+#winpty agent executable
+set(WINPTYAGENT_SOURCE_FILES
+ src/agent/Agent.h
+ src/agent/Agent.cc
+ src/agent/AgentCreateDesktop.h
+ src/agent/AgentCreateDesktop.cc
+ src/agent/ConsoleFont.cc
+ src/agent/ConsoleFont.h
+ src/agent/ConsoleInput.cc
+ src/agent/ConsoleInput.h
+ src/agent/ConsoleInputReencoding.cc
+ src/agent/ConsoleInputReencoding.h
+ src/agent/ConsoleLine.cc
+ src/agent/ConsoleLine.h
+ src/agent/Coord.h
+ src/agent/DebugShowInput.h
+ src/agent/DebugShowInput.cc
+ src/agent/DefaultInputMap.h
+ src/agent/DefaultInputMap.cc
+ src/agent/DsrSender.h
+ src/agent/EventLoop.h
+ src/agent/EventLoop.cc
+ src/agent/InputMap.h
+ src/agent/InputMap.cc
+ src/agent/LargeConsoleRead.h
+ src/agent/LargeConsoleRead.cc
+ src/agent/NamedPipe.h
+ src/agent/NamedPipe.cc
+ src/agent/Scraper.h
+ src/agent/Scraper.cc
+ src/agent/SimplePool.h
+ src/agent/SmallRect.h
+ src/agent/Terminal.h
+ src/agent/Terminal.cc
+ src/agent/UnicodeEncoding.h
+ src/agent/Win32Console.cc
+ src/agent/Win32Console.h
+ src/agent/Win32ConsoleBuffer.cc
+ src/agent/Win32ConsoleBuffer.h
+ src/agent/main.cc
+ src/shared/AgentMsg.h
+ src/shared/BackgroundDesktop.h
+ src/shared/BackgroundDesktop.cc
+ src/shared/Buffer.h
+ src/shared/Buffer.cc
+ src/shared/DebugClient.h
+ src/shared/DebugClient.cc
+ src/shared/GenRandom.h
+ src/shared/GenRandom.cc
+ src/shared/OsModule.h
+ src/shared/OwnedHandle.h
+ src/shared/OwnedHandle.cc
+ src/shared/StringBuilder.h
+ src/shared/StringUtil.cc
+ src/shared/StringUtil.h
+ src/shared/UnixCtrlChars.h
+ src/shared/WindowsSecurity.cc
+ src/shared/WindowsSecurity.h
+ src/shared/WindowsVersion.h
+ src/shared/WindowsVersion.cc
+ src/shared/WinptyAssert.h
+ src/shared/WinptyAssert.cc
+ src/shared/WinptyException.h
+ src/shared/WinptyException.cc
+ src/shared/WinptyVersion.h
+ src/shared/WinptyVersion.cc
+ src/shared/winpty_snprintf.h
+)
+
+add_executable(winpty-agent ${WINPTYAGENT_SOURCE_FILES})
+target_compile_definitions(winpty-agent PRIVATE -DWINPTY_AGENT_ASSERT)
+
+
+#winpty debugserver executable
+set(WINPTYAGENT_SOURCE_FILES
+ src/debugserver/DebugServer.cc
+ src/shared/DebugClient.h
+ src/shared/DebugClient.cc
+ src/shared/OwnedHandle.h
+ src/shared/OwnedHandle.cc
+ src/shared/OsModule.h
+ src/shared/StringBuilder.h
+ src/shared/StringUtil.cc
+ src/shared/StringUtil.h
+ src/shared/WindowsSecurity.h
+ src/shared/WindowsSecurity.cc
+ src/shared/WindowsVersion.h
+ src/shared/WindowsVersion.cc
+ src/shared/WinptyAssert.h
+ src/shared/WinptyAssert.cc
+ src/shared/WinptyException.h
+ src/shared/WinptyException.cc
+ src/shared/winpty_snprintf.h
+)
+
+add_executable(winpty-debugserver ${WINPTYAGENT_SOURCE_FILES})
+
+
+if("${BUILD_TYPE}" STREQUAL "STATIC")
+ install(TARGETS winpty DESTINATION ${WINPTY_INSTALL_LIB_DIR})
+else()
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpty.dll DESTINATION ${WINPTY_INSTALL_BIN_DIR})
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpty.lib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
+endif()
+install(TARGETS winpty-agent DESTINATION ${WINPTY_INSTALL_BIN_DIR})
+install(TARGETS winpty-debugserver DESTINATION ${WINPTY_INSTALL_BIN_DIR})
+install(FILES src/include/winpty.h src/include/winpty_constants.h DESTINATION ${WINPTY_INSTALL_INCLUDE_DIR})
+
+
+
diff --git a/vcpkg/ports/winpty/allow-build-static.patch b/vcpkg/ports/winpty/allow-build-static.patch
new file mode 100644
index 0000000..14447df
--- /dev/null
+++ b/vcpkg/ports/winpty/allow-build-static.patch
@@ -0,0 +1,45 @@
+diff --git a/src/include/winpty.h b/src/include/winpty.h
+index fdfe4bc..7864d96 100644
+--- a/src/include/winpty.h
++++ b/src/include/winpty.h
+@@ -32,11 +32,15 @@
+ * When compiled with __declspec(dllexport), with either MinGW or MSVC, the
+ * winpty functions are unadorned--no underscore prefix or '@nn' suffix--so
+ * GetProcAddress can be used easily. */
++#ifndef BUILD_STATIC
+ #ifdef COMPILING_WINPTY_DLL
+ #define WINPTY_API __declspec(dllexport)
+ #else
+ #define WINPTY_API __declspec(dllimport)
+ #endif
++#else
++#define WINPTY_API
++#endif
+
+ #ifdef __cplusplus
+ extern "C" {
+diff --git a/src/shared/WinptyVersion.cc b/src/shared/WinptyVersion.cc
+index 76bb8a5..33a2c23 100644
+--- a/src/shared/WinptyVersion.cc
++++ b/src/shared/WinptyVersion.cc
+@@ -28,15 +28,15 @@
+ // This header is auto-generated by either the Makefile (Unix) or
+ // UpdateGenVersion.bat (gyp). It is placed in a 'gen' directory, which is
+ // added to the search path.
+-#include "GenVersion.h"
++//#include "GenVersion.h"
+
+ void dumpVersionToStdout() {
+- printf("winpty version %s\n", GenVersion_Version);
+- printf("commit %s\n", GenVersion_Commit);
++ printf("winpty version %s\n", PROJECT_VERSION);
++ printf("commit %s\n", "empty");
+ }
+
+ void dumpVersionToTrace() {
+ trace("winpty version %s (commit %s)",
+- GenVersion_Version,
+- GenVersion_Commit);
++ PROJECT_VERSION,
++ "empty");
+ }
diff --git a/vcpkg/ports/winpty/portfile.cmake b/vcpkg/ports/winpty/portfile.cmake
new file mode 100644
index 0000000..87cecef
--- /dev/null
+++ b/vcpkg/ports/winpty/portfile.cmake
@@ -0,0 +1,32 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO rprichard/winpty
+ REF antivirus
+ SHA512 8f5539c1af2a1127219278446c1d028079867cecdeb03c4f208c7d8176e8802e8075ce1b6992e0ef73db34c69e58f73d3828698d865deb35cb883821ee245e4d
+ HEAD_REF master
+ PATCHES
+ allow-build-static.patch
+)
+
+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()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+vcpkg_copy_tools(TOOL_NAMES winpty-agent winpty-debugserver AUTO_CLEAN)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/vcpkg/ports/winpty/vcpkg.json b/vcpkg/ports/winpty/vcpkg.json
new file mode 100644
index 0000000..dc22885
--- /dev/null
+++ b/vcpkg/ports/winpty/vcpkg.json
@@ -0,0 +1,16 @@
+{
+ "name": "winpty",
+ "version": "0.4.3",
+ "description": "winpty is a Windows software package providing an interface similar to a Unix pty-master for communicating with Windows console programs",
+ "supports": "windows & !uwp",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}