mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
b35d23f699
A new module in 'utils' computes NFC and NFD, via a new set of data tables generated by read_ucd.py. The new module comes with a new test program, which can read the NormalizationTest.txt that appears in the Unicode Character Database. All the tests pass, as of Unicode 15.
162 lines
4.2 KiB
CMake
162 lines
4.2 KiB
CMake
cmake_minimum_required(VERSION 3.7)
|
|
project(putty LANGUAGES C)
|
|
|
|
include(cmake/setup.cmake)
|
|
|
|
# Scan the docs directory first, so that when we start calling
|
|
# installed_program(), we'll know if we have man pages available
|
|
add_subdirectory(doc)
|
|
|
|
add_compile_definitions(HAVE_CMAKE_H)
|
|
|
|
include_directories(terminal)
|
|
|
|
add_library(utils STATIC
|
|
${GENERATED_COMMIT_C})
|
|
add_dependencies(utils cmake_commit_c)
|
|
add_subdirectory(utils)
|
|
add_subdirectory(stubs)
|
|
|
|
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
|
|
proxy/cproxy.c proxy/sshproxy.c)
|
|
add_subdirectory(crypto)
|
|
|
|
add_library(network STATIC
|
|
errsock.c logging.c x11disp.c
|
|
proxy/proxy.c
|
|
proxy/http.c
|
|
proxy/socks4.c
|
|
proxy/socks5.c
|
|
proxy/telnet.c
|
|
proxy/local.c
|
|
proxy/interactor.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/terminal.c terminal/bidi.c
|
|
ldisc.c config.c dialog.c
|
|
$<TARGET_OBJECTS:logging>)
|
|
|
|
add_library(noterminal STATIC
|
|
stubs/no-term.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
|
|
test/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_decode_utf8
|
|
utils/decode_utf8.c)
|
|
target_compile_definitions(test_decode_utf8 PRIVATE TEST)
|
|
target_link_libraries(test_decode_utf8 utils ${platform_libraries})
|
|
|
|
add_executable(test_unicode_norm
|
|
utils/unicode-norm.c)
|
|
target_compile_definitions(test_unicode_norm PRIVATE TEST)
|
|
target_link_libraries(test_unicode_norm 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(test_cert_expr
|
|
utils/cert-expr.c)
|
|
target_compile_definitions(test_cert_expr PRIVATE TEST)
|
|
target_link_libraries(test_cert_expr utils ${platform_libraries})
|
|
|
|
add_executable(bidi_gettype
|
|
terminal/bidi_gettype.c)
|
|
target_link_libraries(bidi_gettype guiterminal utils ${platform_libraries})
|
|
|
|
add_executable(bidi_test
|
|
terminal/bidi_test.c)
|
|
target_link_libraries(bidi_test guiterminal utils ${platform_libraries})
|
|
|
|
add_executable(plink
|
|
${platform}/plink.c)
|
|
# Note: if we ever port Plink to a platform where we can't implement a
|
|
# serial backend, this be_list command will need to become platform-
|
|
# dependent, so that it only sets the SERIAL option on platforms where
|
|
# that backend exists. For the moment, though, we have serial port
|
|
# backends for both our platforms, so we can do this unconditionally.
|
|
be_list(plink Plink SSH SERIAL OTHERBACKENDS)
|
|
target_link_libraries(plink
|
|
eventloop noterminal console sshclient otherbackends settings network crypto
|
|
utils
|
|
${platform_libraries})
|
|
installed_program(plink)
|
|
|
|
add_executable(pscp
|
|
pscp.c)
|
|
be_list(pscp PSCP SSH)
|
|
target_link_libraries(pscp
|
|
sftpclient eventloop console sshclient settings network crypto utils
|
|
${platform_libraries})
|
|
installed_program(pscp)
|
|
|
|
add_executable(psftp
|
|
psftp.c)
|
|
be_list(psftp PSFTP SSH)
|
|
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
|
|
stubs/no-rand.c
|
|
proxy/nocproxy.c
|
|
proxy/nosshproxy.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)
|