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})