mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
27550b02e2
In 0.81 and before, we put an application manifest (XML-formatted Windows resource) into all the GUI tools on purpose, and the CLI tools like Plink didn't have one. But in 0.82, the CLI tools do have one, and it's a small default one we didn't write ourselves, inserted by some combination of cmake and clang-imitating-MSVC (I haven't checked which of those is the cause). This appears to have happened as a side effect of a build-tools update, not on purpose. And its effect is that Windows XP now objects to our plink.exe, because it's very picky about manifest format (we have an old 'xp-wont-run' bug record about that). Since it seemed to work fine to not have a manifest at all in 0.81, let's go back to that. We were already passing /manifest:no to inhibit the default manifest in the GUI tools, to stop it fighting with our custom one; now I've moved /manifest:no into the global linker flags, so it's applied to _all_ binaries, whether we're putting our own manifest in or not.
205 lines
6.1 KiB
CMake
205 lines
6.1 KiB
CMake
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
add_sources_from_current_dir(utils
|
|
utils/agent_mutex_name.c
|
|
utils/agent_named_pipe_name.c
|
|
utils/arm_arch_queries.c
|
|
utils/aux_match_opt.c
|
|
utils/centre_window.c
|
|
utils/cmdline_arg.c
|
|
utils/cryptoapi.c
|
|
utils/defaults.c
|
|
utils/dll_hijacking_protection.c
|
|
utils/dputs.c
|
|
utils/escape_registry_key.c
|
|
utils/filename.c
|
|
utils/fontspec.c
|
|
utils/getdlgitemtext_alloc.c
|
|
utils/get_system_dir.c
|
|
utils/get_username.c
|
|
utils/gui-timing.c
|
|
utils/interprocess_mutex.c
|
|
utils/is_console_handle.c
|
|
utils/load_system32_dll.c
|
|
utils/ltime.c
|
|
utils/makedlgitemborderless.c
|
|
utils/make_spr_sw_abort_winerror.c
|
|
utils/message_box.c
|
|
utils/minefield.c
|
|
utils/open_for_write_would_lose_data.c
|
|
utils/pgp_fingerprints_msgbox.c
|
|
utils/platform_get_x_display.c
|
|
utils/registry.c
|
|
utils/request_file.c
|
|
utils/screenshot.c
|
|
utils/security.c
|
|
utils/shinydialogbox.c
|
|
utils/split_into_argv.c
|
|
utils/split_into_argv_w.c
|
|
utils/version.c
|
|
utils/win_strerror.c
|
|
unicode.c)
|
|
if(NOT HAVE_STRTOUMAX)
|
|
add_sources_from_current_dir(utils utils/strtoumax.c)
|
|
endif()
|
|
add_sources_from_current_dir(eventloop
|
|
cliloop.c handle-wait.c)
|
|
add_sources_from_current_dir(console
|
|
select-cli.c nohelp.c console.c)
|
|
add_sources_from_current_dir(settings
|
|
storage.c)
|
|
add_sources_from_current_dir(network
|
|
network.c handle-socket.c named-pipe-client.c named-pipe-server.c local-proxy.c x11.c)
|
|
add_sources_from_current_dir(sshcommon
|
|
noise.c)
|
|
add_sources_from_current_dir(sshclient
|
|
agent-client.c gss.c sharing.c)
|
|
add_sources_from_current_dir(sftpclient
|
|
sftp.c)
|
|
add_sources_from_current_dir(otherbackends
|
|
serial.c)
|
|
add_sources_from_current_dir(agent
|
|
agent-client.c)
|
|
add_sources_from_current_dir(guiterminal
|
|
dialog.c controls.c config.c printing.c jump-list.c sizetip.c)
|
|
add_dependencies(guiterminal generated_licence_h) # dialog.c uses licence.h
|
|
|
|
# This object awkwardly needs to live in the network library as well
|
|
# as the eventloop library, in case it didn't get pulled in from the
|
|
# latter before handle-socket.c needed it.
|
|
add_library(handle-io OBJECT
|
|
handle-io.c)
|
|
target_sources(eventloop PRIVATE $<TARGET_OBJECTS:handle-io>)
|
|
target_sources(network PRIVATE $<TARGET_OBJECTS:handle-io>)
|
|
|
|
add_library(guimisc STATIC
|
|
select-gui.c)
|
|
|
|
add_executable(pageant
|
|
pageant.c
|
|
help.c
|
|
pageant.rc)
|
|
add_dependencies(pageant generated_licence_h)
|
|
target_link_libraries(pageant
|
|
guimisc eventloop agent network crypto utils
|
|
${platform_libraries})
|
|
set_target_properties(pageant PROPERTIES WIN32_EXECUTABLE ON)
|
|
installed_program(pageant)
|
|
|
|
add_sources_from_current_dir(plink no-jump-list.c nohelp.c plink.rc)
|
|
add_dependencies(plink generated_licence_h)
|
|
|
|
add_sources_from_current_dir(pscp no-jump-list.c nohelp.c pscp.rc)
|
|
add_dependencies(pscp generated_licence_h)
|
|
|
|
add_sources_from_current_dir(psftp no-jump-list.c nohelp.c psftp.rc)
|
|
add_dependencies(psftp generated_licence_h)
|
|
|
|
add_sources_from_current_dir(psocks nohelp.c)
|
|
|
|
add_executable(putty
|
|
window.c
|
|
putty.c
|
|
help.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-console.c
|
|
putty.rc)
|
|
be_list(putty PuTTY SSH SERIAL OTHERBACKENDS)
|
|
add_dependencies(putty generated_licence_h)
|
|
target_link_libraries(putty
|
|
guiterminal guimisc eventloop sshclient otherbackends settings network crypto
|
|
utils
|
|
${platform_libraries})
|
|
set_target_properties(putty PROPERTIES WIN32_EXECUTABLE ON)
|
|
installed_program(putty)
|
|
|
|
add_executable(puttytel
|
|
window.c
|
|
putty.c
|
|
help.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-gss.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-ca-config.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-console.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-rand.c
|
|
${CMAKE_SOURCE_DIR}/proxy/nocproxy.c
|
|
${CMAKE_SOURCE_DIR}/proxy/nosshproxy.c
|
|
puttytel.rc)
|
|
be_list(puttytel PuTTYtel SERIAL OTHERBACKENDS)
|
|
add_dependencies(puttytel generated_licence_h)
|
|
target_link_libraries(puttytel
|
|
guiterminal guimisc eventloop otherbackends settings network utils
|
|
${platform_libraries})
|
|
set_target_properties(puttytel PROPERTIES WIN32_EXECUTABLE ON)
|
|
installed_program(puttytel)
|
|
|
|
add_executable(puttygen
|
|
puttygen.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-timing.c
|
|
noise.c
|
|
no-jump-list.c
|
|
storage.c
|
|
help.c
|
|
${CMAKE_SOURCE_DIR}/sshpubk.c
|
|
${CMAKE_SOURCE_DIR}/sshrand.c
|
|
controls.c
|
|
puttygen.rc)
|
|
add_dependencies(puttygen generated_licence_h)
|
|
target_link_libraries(puttygen
|
|
keygen guimisc crypto utils
|
|
${platform_libraries})
|
|
set_target_properties(puttygen PROPERTIES WIN32_EXECUTABLE ON)
|
|
installed_program(puttygen)
|
|
|
|
if(HAVE_CONPTY)
|
|
add_executable(pterm
|
|
window.c
|
|
pterm.c
|
|
help.c
|
|
conpty.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-gss.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-ca-config.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-console.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-rand.c
|
|
${CMAKE_SOURCE_DIR}/proxy/nosshproxy.c
|
|
pterm.rc)
|
|
be_list(pterm pterm)
|
|
add_dependencies(pterm generated_licence_h)
|
|
target_link_libraries(pterm
|
|
guiterminal guimisc eventloop settings network utils
|
|
${platform_libraries})
|
|
set_target_properties(pterm PROPERTIES WIN32_EXECUTABLE ON)
|
|
installed_program(pterm)
|
|
else()
|
|
message("ConPTY not available; cannot build Windows pterm")
|
|
endif()
|
|
|
|
add_executable(test_split_into_argv
|
|
test/test_split_into_argv.c)
|
|
target_compile_definitions(test_split_into_argv PRIVATE TEST)
|
|
target_link_libraries(test_split_into_argv utils ${platform_libraries})
|
|
|
|
add_executable(test_screenshot
|
|
test/test_screenshot.c)
|
|
target_link_libraries(test_screenshot utils ${platform_libraries})
|
|
|
|
add_executable(test_lineedit
|
|
${CMAKE_SOURCE_DIR}/test/test_lineedit.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-gss.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-logging.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-printing.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-storage.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-timing.c
|
|
no-jump-list.c)
|
|
target_link_libraries(test_lineedit
|
|
guiterminal settings eventloop utils ${platform_libraries})
|
|
|
|
add_executable(test_terminal
|
|
${CMAKE_SOURCE_DIR}/test/test_terminal.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-gss.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-storage.c
|
|
${CMAKE_SOURCE_DIR}/stubs/no-timing.c
|
|
no-jump-list.c)
|
|
target_link_libraries(test_terminal
|
|
guiterminal settings eventloop utils ${platform_libraries})
|
|
|
|
add_sources_from_current_dir(test_conf no-jump-list.c handle-wait.c)
|