Skip to content

Commit 8529ffe

Browse files
committed
WIRE-241 Refactored all plugins to use standard plugin_target macro
1 parent 63f97ad commit 8529ffe

File tree

71 files changed

+254
-317
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+254
-317
lines changed

cmake/build-init.cmake

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,17 @@
1-
file(TOUCH ${CMAKE_BINARY_DIR}/.wire-build-root)
1+
file(TOUCH ${CMAKE_BINARY_DIR}/.wire-build-root)
2+
3+
if (UNIX)
4+
if (APPLE)
5+
set(whole_archive_flag "-force_load")
6+
set(no_whole_archive_flag "")
7+
set(build_id_flag "")
8+
else ()
9+
set(whole_archive_flag "--whole-archive")
10+
set(no_whole_archive_flag "--no-whole-archive")
11+
set(build_id_flag "--build-id")
12+
endif ()
13+
else ()
14+
set(whole_archive_flag "--whole-archive")
15+
set(no_whole_archive_flag "--no-whole-archive")
16+
set(build_id_flag "")
17+
endif ()

cmake/chain-tools.cmake

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,6 @@ macro(chain_target TARGET)
77

88
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
99

10-
if (UNIX)
11-
if (APPLE)
12-
set(whole_archive_flag "-force_load")
13-
set(no_whole_archive_flag "")
14-
set(build_id_flag "")
15-
else ()
16-
set(whole_archive_flag "--whole-archive")
17-
set(no_whole_archive_flag "--no-whole-archive")
18-
set(build_id_flag "--build-id")
19-
endif ()
20-
else ()
21-
set(whole_archive_flag "--whole-archive")
22-
set(no_whole_archive_flag "--no-whole-archive")
23-
set(build_id_flag "")
24-
endif ()
25-
2610
target_link_libraries(${TARGET}
2711
PRIVATE
2812
-Wl,${whole_archive_flag}
@@ -41,11 +25,8 @@ macro(chain_target TARGET)
4125
trace_api_plugin
4226
chain_plugin
4327
appbase
44-
boringssl::crypto
45-
boringssl::decrepit
46-
boringssl::ssl
47-
${PLUGIN_DEFAULT_DEPENDENCIES}
4828
-Wl,${no_whole_archive_flag}
29+
${PLUGIN_DEFAULT_DEPENDENCIES}
4930

5031
http_client_plugin
5132
http_plugin

cmake/plugin-tools.cmake

Lines changed: 50 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ if (PLUGIN_DEFAULT_DEPENDENCIES)
33
endif ()
44

55
set(PLUGIN_DEFAULT_DEPENDENCIES
6-
fc
76
fc-lite
7+
fc
88

99
Boost::asio
1010
Boost::beast
11+
Boost::bimap
1112
Boost::chrono
1213
Boost::date_time
1314
Boost::dll
@@ -21,16 +22,19 @@ set(PLUGIN_DEFAULT_DEPENDENCIES
2122
boringssl::ssl
2223
boringssl::crypto
2324
boringssl::decrepit
24-
PARENT_SCOPE
25+
26+
libsodium::libsodium
27+
2528
)
2629

2730
macro(plugin_target TARGET_NAME)
2831

29-
cmake_parse_arguments(ARG "" "" "LIBRARIES;SOURCE_FILES;SOURCE_GLOBS;TEST_SOURCE_FILES;TEST_SOURCE_GLOBS" ${ARGN})
32+
cmake_parse_arguments(ARG "SKIP_TEST_CONFIG" "" "LIBRARIES;SOURCE_FILES;SOURCE_GLOBS;TEST_SOURCE_FILES;TEST_SOURCE_GLOBS" ${ARGN})
3033

31-
message(STATUS "Building plugin ${TARGET_NAME}: src=${CMAKE_CURRENT_SOURCE_DIR}/src")
34+
set(PLUGIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
35+
message(STATUS "Building plugin ${TARGET_NAME} @ ${CMAKE_CURRENT_SOURCE_DIR}")
3236
set(SRC_FILES "")
33-
if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src)
37+
if (IS_DIRECTORY ${PLUGIN_SRC_DIR})
3438
file(GLOB_RECURSE SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
3539
endif ()
3640
if (ARG_SOURCE_FILES)
@@ -42,7 +46,6 @@ macro(plugin_target TARGET_NAME)
4246
list(APPEND SRC_FILES ${GLOB_FILES})
4347
endforeach ()
4448
endif ()
45-
set(TEST_TARGET_NAME test_${TARGET_NAME})
4649

4750
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
4851

@@ -56,8 +59,10 @@ macro(plugin_target TARGET_NAME)
5659
target_link_libraries(
5760
${TARGET_NAME}
5861
PUBLIC
59-
fc
60-
fc-lite
62+
-Wl,${whole_archive_flag}
63+
${PLUGIN_DEFAULT_DEPENDENCIES}
64+
-Wl,${no_whole_archive_flag}
65+
6166
${ARG_LIBRARIES}
6267
)
6368

@@ -71,34 +76,43 @@ macro(plugin_target TARGET_NAME)
7176

7277
)
7378

74-
if (ENABLE_TESTS)
75-
set(TEST_FILES "")
76-
if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test)
77-
file(GLOB_RECURSE TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/test/*.cpp)
78-
endif ()
79-
if (ARG_TEST_SOURCE_FILES)
80-
list(APPEND TEST_FILES ${ARG_TEST_SOURCE_FILES})
81-
endif ()
82-
if (ARG_TEST_SOURCE_GLOBS)
83-
foreach (GLOB_PATTERN ${ARG_TEST_SOURCE_GLOBS})
84-
file(GLOB_RECURSE GLOB_FILES ${GLOB_PATTERN})
85-
list(APPEND TEST_FILES ${GLOB_FILES})
86-
endforeach ()
87-
endif ()
79+
set(PLUGIN_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test)
80+
if(NOT ARG_SKIP_TEST_CONFIG AND ENABLE_TESTS AND IS_DIRECTORY ${PLUGIN_TEST_DIR})
81+
82+
if (EXISTS ${PLUGIN_TEST_DIR}/CMakeLists.txt)
83+
message(NOTICE "Plugin ${TARGET_NAME} test directory (${PLUGIN_TEST_DIR}) has a cmake file, so we will use it")
84+
add_subdirectory(test)
85+
else()
86+
set(TEST_TARGET_NAME test_${TARGET_NAME})
8887

89-
add_executable(${TEST_TARGET_NAME} ${TEST_FILES})
90-
91-
target_link_libraries(
92-
${TEST_TARGET_NAME}
93-
PUBLIC
94-
${TARGET_NAME}
95-
sysio_testing
96-
sysio_chain_wrap
97-
)
98-
add_test(
99-
NAME ${TEST_TARGET_NAME}
100-
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test/${TEST_TARGET_NAME}
101-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
102-
)
88+
set(TEST_FILES "")
89+
if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test)
90+
file(GLOB_RECURSE TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/test/*.cpp)
91+
endif ()
92+
if (ARG_TEST_SOURCE_FILES)
93+
list(APPEND TEST_FILES ${ARG_TEST_SOURCE_FILES})
94+
endif ()
95+
if (ARG_TEST_SOURCE_GLOBS)
96+
foreach (GLOB_PATTERN ${ARG_TEST_SOURCE_GLOBS})
97+
file(GLOB_RECURSE GLOB_FILES ${GLOB_PATTERN})
98+
list(APPEND TEST_FILES ${GLOB_FILES})
99+
endforeach ()
100+
endif ()
101+
102+
add_executable(${TEST_TARGET_NAME} ${TEST_FILES})
103+
104+
target_link_libraries(
105+
${TEST_TARGET_NAME}
106+
PUBLIC
107+
${TARGET_NAME}
108+
sysio_testing
109+
sysio_chain_wrap
110+
)
111+
add_test(
112+
NAME ${TEST_TARGET_NAME}
113+
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test/${TEST_TARGET_NAME}
114+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
115+
)
116+
endif ()
103117
endif ()
104118
endmacro()

cmake/test-tools.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,17 @@ macro(unittest_target TARGET)
77

88
target_link_libraries(
99
${TARGET}
10+
PUBLIC
11+
-Wl,${whole_archive_flag}
12+
13+
${PLUGIN_DEFAULT_DEPENDENCIES}
14+
-Wl,${no_whole_archive_flag}
15+
# ${PLUGIN_DEFAULT_DEPENDENCIES}
16+
1017
sysio_chain_wrap
1118
state_history
1219
chainbase
1320
sysio_testing
14-
fc
1521
custom_appbase
1622
libsodium::libsodium
1723
)
Lines changed: 8 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,8 @@
1-
cmake_minimum_required(VERSION 3.16)
2-
3-
file(GLOB_RECURSE SRC_FILES src/*.cpp)
4-
add_library(batch_operator_plugin STATIC ${SRC_FILES})
5-
6-
target_include_directories(
7-
batch_operator_plugin
8-
PUBLIC
9-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
10-
$<INSTALL_INTERFACE:include>
11-
)
12-
13-
target_link_libraries(
14-
batch_operator_plugin
15-
PUBLIC
16-
appbase
17-
chainbase
18-
chain_plugin
19-
fc
20-
operator_plugin
21-
sysio_chain
22-
)
23-
24-
# Install headers
25-
install(
26-
TARGETS batch_operator_plugin
27-
# TODO: When cleaning up the installation targets, include this library
28-
# allowing other projects to link against it via CMake's find_package
29-
# EXPORT sysioTargets
30-
ARCHIVE DESTINATION lib
31-
LIBRARY DESTINATION lib
32-
RUNTIME DESTINATION bin
33-
INCLUDES DESTINATION include
34-
35-
)
36-
37-
if(ENABLE_TESTS)
38-
file(GLOB_RECURSE TEST_FILES test/*.cpp)
39-
add_executable(test_batch_operator_plugin ${TEST_FILES})
40-
41-
target_link_libraries(
42-
test_batch_operator_plugin
43-
PUBLIC
44-
batch_operator_plugin
45-
sysio_testing
46-
sysio_chain_wrap
47-
)
48-
add_test(
49-
NAME test_plugin_common
50-
COMMAND libraries/plugin_common/test/test_plugin_common
51-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
52-
)
53-
endif()
1+
plugin_target(
2+
batch_operator_plugin
3+
LIBRARIES
4+
appbase
5+
chainbase
6+
chain_plugin
7+
operator_plugin
8+
sysio_chain)
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
file(GLOB HEADERS "include/sysio/chain_api_plugin/*.hpp")
2-
add_library( chain_api_plugin
3-
chain_api_plugin.cpp
4-
${HEADERS} )
1+
plugin_target(
2+
chain_api_plugin
3+
LIBRARIES
4+
chain_plugin
5+
http_plugin
6+
appbase)
57

6-
target_link_libraries( chain_api_plugin chain_plugin http_plugin appbase )
7-
target_include_directories( chain_api_plugin PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" )
File renamed without changes.
Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,10 @@
1-
file(GLOB HEADERS "include/sysio/chain_plugin/*.hpp")
2-
add_library( chain_plugin
3-
account_query_db.cpp
4-
trx_finality_status_processing.cpp
5-
chain_plugin.cpp
6-
trx_retry_db.cpp
7-
tracked_votes.cpp
8-
get_info_db.cpp
9-
${HEADERS} )
101

11-
if(SYSIO_ENABLE_DEVELOPER_OPTIONS)
12-
message(WARNING "SYSIO Developer Options are enabled; these are NOT supported")
13-
target_compile_definitions(chain_plugin PUBLIC SYSIO_DEVELOPER)
14-
endif()
15-
16-
target_link_libraries( chain_plugin producer_plugin sysio_chain custom_appbase appbase resource_monitor_plugin
2+
plugin_target( chain_plugin
3+
LIBRARIES
4+
producer_plugin
5+
sysio_chain
6+
custom_appbase
7+
appbase
8+
resource_monitor_plugin
179
signature_provider_manager_plugin
18-
Boost::bimap Boost::process
19-
Boost::dll
20-
Boost::multiprecision )
21-
target_include_directories( chain_plugin PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/../chain_interface/include" "${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/appbase/include" "${CMAKE_CURRENT_SOURCE_DIR}/../resource_monitor_plugin/include")
22-
23-
add_subdirectory( test )
10+
)
File renamed without changes.

0 commit comments

Comments
 (0)