Skip to content

Commit 4f840bd

Browse files
authored
Modify the CMakeLists to modern cmake style (#51)
1 parent 43e6616 commit 4f840bd

File tree

4 files changed

+71
-49
lines changed

4 files changed

+71
-49
lines changed

CMakeLists.txt

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
cmake_minimum_required(VERSION 3.2)
2-
project(Trantor)
3-
1+
cmake_minimum_required(VERSION 3.6)
2+
project(trantor)
3+
add_library(${PROJECT_NAME} STATIC)
44
set(TRANTOR_MAJOR_VERSION 1)
55
set(TRANTOR_MINOR_VERSION 0)
66
set(TRANTOR_PATCH_VERSION 0)
@@ -28,11 +28,13 @@ foreach(p LIB INCLUDE TRANTOR_CMAKE)
2828
endforeach()
2929

3030
# include directories
31-
include_directories(
32-
${PROJECT_SOURCE_DIR}
33-
${PROJECT_SOURCE_DIR}/trantor/utils
34-
${PROJECT_SOURCE_DIR}/trantor/net
35-
${PROJECT_SOURCE_DIR}/trantor/net/inner
31+
target_include_directories(${PROJECT_NAME}
32+
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
33+
$<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>
34+
PRIVATE ${PROJECT_SOURCE_DIR}
35+
${PROJECT_SOURCE_DIR}/trantor/utils
36+
${PROJECT_SOURCE_DIR}/trantor/net
37+
${PROJECT_SOURCE_DIR}/trantor/net/inner
3638
)
3739

3840
set(TRANTOR_SOURCES
@@ -61,10 +63,10 @@ set(TRANTOR_SOURCES
6163
trantor/net/inner/poller/EpollPoller.cc
6264
trantor/net/inner/poller/KQueue.cc)
6365

64-
find_package(OpenSSL)
66+
find_package (OpenSSL)
6567
if(OpenSSL_FOUND)
66-
include_directories(${OPENSSL_INCLUDE_DIR})
67-
link_libraries(${OPENSSL_LIBRARIES})
68+
target_include_directories(${PROJECT_NAME} PRIVATE ${OPENSSL_INCLUDE_DIR})
69+
target_link_libraries(${PROJECT_NAME} PRIVATE ${OPENSSL_LIBRARIES})
6870
set(TRANTOR_SOURCES ${TRANTOR_SOURCES} trantor/net/ssl/SSLConnection.cc)
6971
else()
7072
set(TRANTOR_SOURCES ${TRANTOR_SOURCES} trantor/net/ssl/SSLConnectionSkipped.cc)
@@ -73,23 +75,20 @@ endif()
7375
find_path(CARES_INCLUDE_DIR ares.h)
7476
find_library(CARES_LIBRARY NAMES cares)
7577
if(CARES_INCLUDE_DIR AND CARES_LIBRARY)
76-
include_directories(${CARES_INCLUDE_DIR})
77-
link_libraries(${CARES_LIBRARY})
78+
target_include_directories(${PROJECT_NAME} PRIVATE ${CARES_INCLUDE_DIR})
79+
target_link_libraries(${PROJECT_NAME} INTERFACE ${CARES_LIBRARY})
7880
set(TRANTOR_SOURCES ${TRANTOR_SOURCES} trantor/net/inner/AresResolver.cc)
7981
else()
8082
set(TRANTOR_SOURCES ${TRANTOR_SOURCES} trantor/net/inner/NormalResolver.cc)
8183
endif()
82-
add_library(trantor STATIC ${TRANTOR_SOURCES})
83-
set_property(TARGET trantor PROPERTY CXX_STANDARD 14)
84-
set_property(TARGET trantor PROPERTY CXX_STANDARD_REQUIRED ON)
85-
set_property(TARGET trantor PROPERTY CXX_EXTENSIONS OFF)
84+
target_sources(${PROJECT_NAME} PRIVATE ${TRANTOR_SOURCES})
85+
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14)
86+
target_link_libraries(${PROJECT_NAME} PRIVATE pthread)
8687

8788
if(MAKETEST STREQUAL YES)
8889
add_subdirectory(trantor/tests)
8990
find_package(GTest)
9091
if(GTest_FOUND)
91-
include_directories(${GTEST_INCLUDE_DIRS})
92-
link_libraries(${GTEST_LIBRARIES})
9392
add_subdirectory(trantor/unittests)
9493
endif()
9594
endif()

cmake/templates/TrantorConfig.cmake.in

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,16 @@
22
# It defines the following variables
33
# TRANTOR_INCLUDE_DIRS - include directories for Trantor
44
# TRANTOR_LIBRARIES - libraries to link against
5+
# TRANTOR_FOUND
6+
# This module defines the following IMPORTED target:
7+
# Trantor::Trantor
58

69
@PACKAGE_INIT@
710

811
# Compute paths
9-
set_and_check(TRANTOR_INCLUDE_DIRS "@PACKAGE_CONF_INCLUDE_DIRS@")
12+
add_library(Trantor::Trantor INTERFACE IMPORTED GLOBAL)
13+
set_target_properties(Trantor::Trantor PROPERTIES
14+
INTERFACE_INCLUDE_DIRECTORIES "@PACKAGE_CONF_INCLUDE_DIRS@")
1015

1116
# Our library dependencies (contains definitions for IMPORTED targets)
1217
get_filename_component(TRANTOR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
@@ -15,4 +20,9 @@ if(NOT TARGET trantor)
1520
endif()
1621

1722
# These are IMPORTED targets created by TrantorTargets.cmake
18-
set(TRANTOR_LIBRARIES trantor pthread)
23+
target_link_libraries(Trantor::Trantor INTERFACE trantor)
24+
25+
26+
set(TRANTOR_FOUND TRUE)
27+
set_and_check(TRANTOR_INCLUDE_DIRS "@PACKAGE_CONF_INCLUDE_DIRS@")
28+
set(TRANTOR_LIBRARIES trantor)

trantor/tests/CMakeLists.txt

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,56 @@
1-
LINK_LIBRARIES(trantor pthread)
1+
add_executable(ssl_server_test SSLServerTest.cc)
2+
target_link_libraries(ssl_server_test PRIVATE trantor pthread)
23

3-
ADD_EXECUTABLE(ssl_server_test SSLServerTest.cc)
4+
add_executable(ssl_client_test SSLClientTest.cc)
5+
target_link_libraries(ssl_client_test PRIVATE trantor pthread)
46

5-
ADD_EXECUTABLE(ssl_client_test SSLClientTest.cc)
7+
add_executable(serial_task_queue_test1 SerialTaskQueueTest1.cc)
8+
target_link_libraries(serial_task_queue_test1 PRIVATE trantor pthread)
69

7-
ADD_EXECUTABLE(serial_task_queue_test1 SerialTaskQueueTest1.cc)
10+
add_executable(serial_task_queue_test2 SerialTaskQueueTest2.cc)
11+
target_link_libraries(serial_task_queue_test2 PRIVATE trantor pthread)
812

9-
ADD_EXECUTABLE(serial_task_queue_test2 SerialTaskQueueTest2.cc)
13+
add_executable(timer_test TimerTest.cc)
14+
target_link_libraries(timer_test PRIVATE trantor pthread)
1015

11-
ADD_EXECUTABLE(timer_test TimerTest.cc)
16+
add_executable(timer_test1 TimerTest1.cc)
17+
target_link_libraries(timer_test1 PRIVATE trantor pthread)
1218

13-
ADD_EXECUTABLE(timer_test1 TimerTest1.cc)
19+
add_executable(run_in_loop_test1 RunInLoopTest1.cc)
20+
target_link_libraries(run_in_loop_test1 PRIVATE trantor pthread)
1421

15-
ADD_EXECUTABLE(run_in_loop_test1 RunInLoopTest1.cc)
22+
add_executable(run_in_loop_test2 RunInLoopTest2.cc)
23+
target_link_libraries(run_in_loop_test2 PRIVATE trantor pthread)
1624

17-
ADD_EXECUTABLE(run_in_loop_test2 RunInLoopTest2.cc)
25+
add_executable(logger_test LoggerTest.cc)
26+
target_link_libraries(logger_test PRIVATE trantor pthread)
1827

19-
ADD_EXECUTABLE(logger_test LoggerTest.cc)
28+
add_executable(async_file_logger_test AsyncFileLoggerTest.cc)
29+
target_link_libraries(async_file_logger_test PRIVATE trantor pthread)
2030

21-
ADD_EXECUTABLE(async_file_logger_test AsyncFileLoggerTest.cc)
31+
add_executable(tcp_server_test TcpServerTest.cc)
32+
target_link_libraries(tcp_server_test PRIVATE trantor pthread)
2233

23-
ADD_EXECUTABLE(tcp_server_test TcpServerTest.cc)
34+
add_executable(concurrent_task_queue_test ConcurrentTaskQueueTest.cc)
35+
target_link_libraries(concurrent_task_queue_test PRIVATE trantor pthread)
2436

25-
ADD_EXECUTABLE(concurrent_task_queue_test ConcurrentTaskQueueTest.cc)
37+
add_executable(tcp_client_test TcpClientTest.cc)
38+
target_link_libraries(tcp_client_test PRIVATE trantor pthread)
2639

27-
ADD_EXECUTABLE(tcp_client_test TcpClientTest.cc)
40+
add_executable(async_file_logger_test1 AsyncFileLoggerTest1.cc)
41+
target_link_libraries(async_file_logger_test1 PRIVATE trantor pthread)
2842

29-
ADD_EXECUTABLE(async_file_logger_test1 AsyncFileLoggerTest1.cc)
43+
add_executable(sendfile_test SendfileTest.cc)
44+
target_link_libraries(sendfile_test PRIVATE trantor pthread)
3045

31-
ADD_EXECUTABLE(sendfile_test SendfileTest.cc)
46+
add_executable(timing_wheel_test TimingWheelTest.cc)
47+
target_link_libraries(timing_wheel_test PRIVATE trantor pthread)
3248

33-
ADD_EXECUTABLE(timing_wheel_test TimingWheelTest.cc)
49+
add_executable(kickoff_test KickoffTest.cc)
50+
target_link_libraries(kickoff_test PRIVATE trantor pthread)
3451

35-
ADD_EXECUTABLE(kickoff_test KickoffTest.cc)
36-
37-
ADD_EXECUTABLE(dns_test DnsTest.cc)
52+
add_executable(dns_test DnsTest.cc)
53+
target_link_libraries(dns_test PRIVATE trantor pthread)
3854

3955
SET(targets_list ssl_server_test
4056
ssl_client_test
@@ -55,7 +71,4 @@ SET(targets_list ssl_server_test
5571
kickoff_test
5672
dns_test)
5773

58-
SET_PROPERTY(TARGET ${targets_list} PROPERTY CXX_STANDARD 14)
59-
SET_PROPERTY(TARGET ${targets_list} PROPERTY CXX_STANDARD_REQUIRED ON)
60-
SET_PROPERTY(TARGET ${targets_list} PROPERTY CXX_EXTENSIONS OFF)
6174

trantor/unittests/CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
link_libraries(trantor pthread)
1+
2+
find_package(GTest REQUIRED)
23
add_executable(msgbuffer_unittest MsgBufferUnittest.cc)
4+
target_link_libraries(msgbuffer_unittest PRIVATE trantor GTest::GTest)
35
add_executable(inetaddress_unittest InetAddressUnittest.cc)
6+
target_link_libraries(inetaddress_unittest PRIVATE trantor GTest::GTest)
47
add_executable(date_unittest DateUnittest.cc)
5-
set(UNITTEST_TARGETS msgbuffer_unittest inetaddress_unittest date_unittest)
6-
set_property(TARGET ${UNITTEST_TARGETS} PROPERTY CXX_STANDARD 14)
7-
set_property(TARGET ${UNITTEST_TARGETS} PROPERTY CXX_STANDARD_REQUIRED ON)
8-
set_property(TARGET ${UNITTEST_TARGETS} PROPERTY CXX_EXTENSIONS OFF)
8+
target_link_libraries(date_unittest PRIVATE trantor GTest::GTest)

0 commit comments

Comments
 (0)