-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
116 lines (100 loc) · 4.08 KB
/
CMakeLists.txt
File metadata and controls
116 lines (100 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
cmake_minimum_required(VERSION 2.8)
project(libSMTPClient C CXX)
set(CMAKE_C_STANDARD 90)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c90 -ansi -pedantic")
option(SMTP_CLIENT_STATIC "Build static library of SMTP Client" ON)
option(SMTP_CLIENT_SHARED "Build shared library of SMTP Client" ON)
option(SMTP_BUILD_EXAMPLE "Build sample program" OFF)
link_directories(${CMAKE_BINARY_DIR}/lib)
set(CMAKE_DEBUG_POSTFIX "d")
set(CMAKE_RELEASE_POSTFIX "")
set(CMAKE_RELWITHDEBINFO_POSTFIX "")
set(CMAKE_MINSIZEREL_POSTFIX "")
set(SMTPCLIENT_INSTALLS)
if(SMTP_CLIENT_STATIC)
add_library(smtpclient_static STATIC
src/smtp_client.c
)
set_target_properties(smtpclient_static PROPERTIES OUTPUT_NAME smtpclient)
list(APPEND SMTPCLIENT_INSTALLS smtpclient_static)
set_target_properties(smtpclient_static PROPERTIES PUBLIC_HEADER src/smtp_client.h)
set_target_properties(smtpclient_static
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
endif()
if(SMTP_CLIENT_SHARED)
add_library(smtpclient SHARED
src/smtp_client.c
)
target_link_libraries(smtpclient ssl crypto)
list(APPEND SMTPCLIENT_INSTALLS smtpclient)
set_target_properties(smtpclient PROPERTIES PUBLIC_HEADER src/smtp_client.h)
set_target_properties(smtpclient
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
endif()
install(TARGETS ${SMTPCLIENT_INSTALLS}
RUNTIME DESTINATION "bin"
LIBRARY DESTINATION "lib"
ARCHIVE DESTINATION "lib"
FRAMEWORK DESTINATION "lib"
INCLUDES DESTINATION "include"
PUBLIC_HEADER DESTINATION "include"
)
install(FILES
src/smtp_client.h
DESTINATION include
)
if(SMTP_BUILD_EXAMPLE)
set(SMTP_SAMPLE_HOSTNAME "smtp.example.ru" CACHE STRING "Hostname for sample program")
set(SMTP_SAMPLE_PORT 25 CACHE INTEGER "Port for sample program")
set(SMTP_SAMPLE_NAME_FROM "Mr. Fox" CACHE STRING "Sender's name")
set(SMTP_SAMPLE_MAIL_FROM "mrfox@example.ru" CACHE STRING "Mail From")
set(SMTP_SAMPLE_NAME_TO "Ms. Vixen" CACHE STRING "Receipient")
set(SMTP_SAMPLE_MAIL_TO "msvixen@example.ru" CACHE STRING "Mail To")
set(SMTP_SAMPLE_LOGIN "mrfox@example.ru" CACHE STRING "Login to sample SMTP server")
set(SMTP_SAMPLE_PASSWORD "mypassword" CACHE STRING "Password for a sample SMTP server")
set(SMTP_SAMPLE_USE_SSL FALSE CACHE BOOLEAN "Use SSL-SMTP")
add_executable(smtp_test
sample.c
)
target_include_directories(smtp_test
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src/
)
target_compile_definitions(smtp_test PRIVATE
-DSMTP_SAMPLE_HOSTNAME="${SMTP_SAMPLE_HOSTNAME}"
-DSMTP_SAMPLE_PORT=${SMTP_SAMPLE_PORT}
-DSMTP_SAMPLE_LOGIN="${SMTP_SAMPLE_LOGIN}"
-DSMTP_SAMPLE_NAME_FROM="${SMTP_SAMPLE_NAME_FROM}"
-DSMTP_SAMPLE_MAIL_FROM="${SMTP_SAMPLE_MAIL_FROM}"
-DSMTP_SAMPLE_NAME_TO="${SMTP_SAMPLE_NAME_TO}"
-DSMTP_SAMPLE_MAIL_TO="${SMTP_SAMPLE_MAIL_TO}"
-DSMTP_SAMPLE_PASSWORD="${SMTP_SAMPLE_PASSWORD}"
-DSMTP_SAMPLE_USE_SSL=$<BOOL:${SMTP_SAMPLE_USE_SSL}>
)
file(COPY
attachments/foxy.png
attachments/Jazz_walts.mid
DESTINATION "${CMAKE_BINARY_DIR}/bin"
)
set_target_properties(smtp_test
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
if(SMTP_CLIENT_STATIC AND NOT SMTP_CLIENT_SHARED)
add_dependencies(smtp_test smtpclient_static)
target_link_libraries(smtp_test smtpclient ssl crypto)
else()
add_dependencies(smtp_test smtpclient)
target_link_libraries(smtp_test smtpclient)
endif()
endif()