@@ -3,13 +3,11 @@ PROJECT(example_module CXX)
33
44SET (CMAKE_CXX_STANDARD 20)
55
6+ SET (EXAMPLE_MODULE_VERSION 1.1.0)
67
7- OPTION (BRINGAUTO_TESTS "Disable tests" OFF )
88OPTION (BRINGAUTO_PACKAGE "Package creation" OFF )
99OPTION (BRINGAUTO_INSTALL "Disable install" OFF )
1010OPTION (BRINGAUTO_SYSTEM_DEP "Enable system dependencies" OFF )
11- OPTION (BRINGAUTO_SAMPLES "Enable build of sample app, not used in project" OFF )
12- OPTION (STATE_SMURF "Enables state smurf" OFF )
1311
1412FIND_PACKAGE (CMLIB
1513 COMPONENTS CMDEF CMUTIL STORAGE
@@ -20,24 +18,66 @@ IF (NOT BRINGAUTO_SYSTEM_DEP)
2018 INCLUDE (cmake/Dependencies.cmake )
2119ENDIF ()
2220
23- IF (NOT TARGET common_headers)
24- ADD_SUBDIRECTORY ("lib/fleet-protocol" )
25- ENDIF ()
21+ FIND_PACKAGE (fleet-protocol-interface REQUIRED 2.0.0 )
2622
2723FILE (GLOB_RECURSE MODULE_GATEWAY_SOURCES "source/module_gateway/*" )
2824FILE (GLOB_RECURSE EXTERNAL_SERVER_SOURCES "source/external_server/*" )
2925FILE (GLOB_RECURSE COMMON_SOURCES "source/common/*" )
3026
31- ADD_LIBRARY (example_module_gateway SHARED ${MODULE_GATEWAY_SOURCES} ${COMMON_SOURCES} )
32- TARGET_INCLUDE_DIRECTORIES (example_module_gateway PRIVATE "include/common/" )
33- TARGET_LINK_LIBRARIES (example_module_gateway PRIVATE
34- common_headers
35- module_gateway_maintainer
27+ CMDEF_ADD_LIBRARY (
28+ LIBRARY_GROUP example-module-gateway
29+ TYPE SHARED
30+ SOURCES ${MODULE_GATEWAY_SOURCES} ${COMMON_SOURCES}
31+ VERSION ${EXAMPLE_MODULE_VERSION}
32+ INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR} /include/common/"
33+ )
34+ TARGET_LINK_LIBRARIES (example-module-gateway-shared PRIVATE
35+ fleet-protocol-interface::common-headers-interface
36+ fleet-protocol-interface::module-maintainer-module-gateway-interface
37+ )
38+
39+ CMDEF_ADD_LIBRARY (
40+ LIBRARY_GROUP example-external-server
41+ TYPE SHARED
42+ SOURCES ${EXTERNAL_SERVER_SOURCES} ${COMMON_SOURCES}
43+ VERSION ${EXAMPLE_MODULE_VERSION}
44+ INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR} /include/common/"
45+ )
46+ TARGET_LINK_LIBRARIES (example-external-server-shared PRIVATE
47+ fleet-protocol-interface::common-headers-interface
48+ fleet-protocol-interface::module-maintainer-external-server-interface
3649)
3750
38- ADD_LIBRARY (example_external_server SHARED ${EXTERNAL_SERVER_SOURCES} ${COMMON_SOURCES} )
39- TARGET_INCLUDE_DIRECTORIES (example_external_server PRIVATE "include/common/" )
40- TARGET_LINK_LIBRARIES (example_external_server PRIVATE
41- common_headers
42- external_server
43- )
51+ CMDEF_ADD_LIBRARY (
52+ LIBRARY_GROUP example-module
53+ TYPE INTERFACE
54+ VERSION ${EXAMPLE_MODULE_VERSION}
55+ )
56+ TARGET_LINK_LIBRARIES (example-module-interface INTERFACE
57+ example-module-gateway-shared
58+ example-external-server-shared
59+ )
60+ IF (BRINGAUTO_INSTALL)
61+ CMDEF_INSTALL (
62+ TARGET example-module-gateway-shared
63+ NAMESPACE example-module-interface::
64+ )
65+ CMDEF_INSTALL (
66+ TARGET example-external-server-shared
67+ NAMESPACE example-module-interface::
68+ )
69+ CMDEF_INSTALL (
70+ TARGET example-module-interface
71+ NAMESPACE example-module-interface::
72+ )
73+ ENDIF ()
74+
75+ IF (BRINGAUTO_PACKAGE)
76+ CMDEF_PACKAGE (
77+ MAIN_TARGET example-module-interface
78+ VERSION ${EXAMPLE_MODULE_VERSION}
79+ )
80+ SET (CPACK_GENERATOR ZIP)
81+ SET (CPACK_PACKAGE_CONTACT "BringAuto s.r.o. <maintainers@bringauto.com>" )
82+ INCLUDE (CPack )
83+ ENDIF ()
0 commit comments