mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
77940f8fa3
Now that the main source file of Plink in each platform directory has the same name, we can put centralise the main definition of the program in the main CMakeLists.txt, and in the platform directory, just add the few extra modules needed to clear up platform-specific details. The same goes for psocks. And PSCP and PSFTP could have been moved to the top level already - I just hadn't done it in the initial setup.
118 lines
2.7 KiB
CMake
118 lines
2.7 KiB
CMake
cmake_minimum_required(VERSION 3.12)
|
|
project(putty LANGUAGES C)
|
|
|
|
include(cmake/setup.cmake)
|
|
|
|
add_compile_definitions(HAVE_CMAKE_H)
|
|
|
|
add_library(utils STATIC
|
|
${GENERATED_COMMIT_C})
|
|
add_dependencies(utils cmake_commit_c)
|
|
add_subdirectory(utils)
|
|
|
|
add_library(logging OBJECT
|
|
logging.c)
|
|
|
|
add_library(eventloop STATIC
|
|
callback.c timing.c)
|
|
|
|
add_library(console STATIC
|
|
clicons.c console.c)
|
|
|
|
add_library(settings STATIC
|
|
cmdline.c settings.c)
|
|
|
|
add_library(crypto STATIC
|
|
cproxy.c)
|
|
add_subdirectory(crypto)
|
|
|
|
add_library(network STATIC
|
|
be_misc.c nullplug.c errsock.c proxy.c logging.c x11disp.c)
|
|
|
|
add_library(keygen STATIC
|
|
import.c)
|
|
add_subdirectory(keygen)
|
|
|
|
add_library(agent STATIC
|
|
sshpubk.c pageant.c aqsync.c)
|
|
|
|
add_library(guiterminal STATIC
|
|
terminal.c ldisc.c minibidi.c config.c dialog.c
|
|
$<TARGET_OBJECTS:logging>)
|
|
|
|
add_library(noterminal STATIC
|
|
noterm.c ldisc.c)
|
|
|
|
add_library(all-backends OBJECT
|
|
pinger.c)
|
|
|
|
add_library(sftpclient STATIC
|
|
psftpcommon.c)
|
|
add_subdirectory(ssh)
|
|
|
|
add_library(otherbackends STATIC
|
|
$<TARGET_OBJECTS:all-backends>
|
|
$<TARGET_OBJECTS:logging>)
|
|
add_subdirectory(otherbackends)
|
|
|
|
add_executable(testcrypt
|
|
testcrypt.c sshpubk.c ssh/crc-attack-detector.c)
|
|
target_link_libraries(testcrypt
|
|
keygen crypto utils ${platform_libraries})
|
|
|
|
add_executable(test_host_strfoo
|
|
utils/host_strchr_internal.c)
|
|
target_compile_definitions(test_host_strfoo PRIVATE TEST)
|
|
target_link_libraries(test_host_strfoo utils ${platform_libraries})
|
|
|
|
add_executable(test_tree234
|
|
utils/tree234.c)
|
|
target_compile_definitions(test_tree234 PRIVATE TEST)
|
|
target_link_libraries(test_tree234 utils ${platform_libraries})
|
|
|
|
add_executable(test_wildcard
|
|
utils/wildcard.c)
|
|
target_compile_definitions(test_wildcard PRIVATE TEST)
|
|
target_link_libraries(test_wildcard utils ${platform_libraries})
|
|
|
|
add_executable(plink
|
|
${platform}/plink.c
|
|
be_all_s.c)
|
|
target_link_libraries(plink
|
|
eventloop noterminal console sshclient otherbackends settings network crypto
|
|
utils
|
|
${platform_libraries})
|
|
installed_program(plink)
|
|
|
|
add_executable(pscp
|
|
pscp.c
|
|
be_ssh.c)
|
|
target_link_libraries(pscp
|
|
sftpclient eventloop console sshclient settings network crypto utils
|
|
${platform_libraries})
|
|
installed_program(pscp)
|
|
|
|
add_executable(psftp
|
|
psftp.c
|
|
be_ssh.c)
|
|
target_link_libraries(psftp
|
|
sftpclient eventloop console sshclient settings network crypto utils
|
|
${platform_libraries})
|
|
installed_program(psftp)
|
|
|
|
add_executable(psocks
|
|
${platform}/psocks.c
|
|
psocks.c
|
|
norand.c
|
|
nocproxy.c
|
|
ssh/portfwd.c)
|
|
target_link_libraries(psocks
|
|
eventloop console network utils
|
|
${platform_libraries})
|
|
|
|
foreach(subdir ${platform} ${extra_dirs})
|
|
add_subdirectory(${subdir})
|
|
endforeach()
|
|
|
|
configure_file(cmake/cmake.h.in ${GENERATED_SOURCES_DIR}/cmake.h)
|