@@ -10,8 +10,6 @@ if(NOT userver_FOUND) # Fallback to subdirectory usage
1010
1111 # Compatibility mode: some systems don't support these features
1212 set (USERVER_FEATURE_CRYPTOPP_BLAKE2 OFF CACHE BOOL "" FORCE)
13- set (USERVER_FEATURE_GRPC_CHANNELZ OFF CACHE BOOL "" FORCE)
14- set (USERVER_FEATURE_REDIS_HI_MALLOC ON CACHE BOOL "" FORCE)
1513
1614 if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /third_party/userver)
1715 message (STATUS "Using userver framework from third_party/userver" )
@@ -28,93 +26,14 @@ set(CPP_JWT_BUILD_TESTS OFF)
2826set (CPP_JWT_BUILD_EXAMPLES OFF )
2927add_subdirectory (third_party/cpp-jwt)
3028
31-
32- option (JWT_BUILD_EXAMPLES OFF )
33-
3429# Common sources
35- add_library (${PROJECT_NAME} _objs OBJECT
36- src/cache /articles_cache.hpp
37- src/cache /articles_cache.cpp
38- src/cache /comments_cache.cpp
39- src/cache /comments_cache.hpp
40- src/handlers/common.cpp
41- src/handlers/common.hpp
42- src/handlers/profiles/profiles.cpp
43- src/handlers/profiles/profiles.hpp
44- src/handlers/users/users.cpp
45- src/handlers/users/users.hpp
46- src/handlers/tags/tags.cpp
47- src/handlers/tags/tags.hpp
48- src/handlers/users/users_login.cpp
49- src/handlers/users/users_login.hpp
50- src/handlers/users/user_get.cpp
51- src/handlers/users/user_get.hpp
52- src/handlers/users/user_put.cpp
53- src/handlers/users/user_put.hpp
54- src/handlers/profiles/profiles_follow.cpp
55- src/handlers/profiles/profiles_follow.hpp
56- src/handlers/profiles/profiles_follow_delete.cpp
57- src/handlers/profiles/profiles_follow_delete.hpp
58- src/handlers/articles/articles_slug_delete.cpp
59- src/handlers/articles/articles_slug_delete.hpp
60- src/handlers/articles/articles_slug_get.cpp
61- src/handlers/articles/articles_slug_get.hpp
62- src/handlers/articles/articles_slug_put.cpp
63- src/handlers/articles/articles_slug_put.hpp
64- src/handlers/articles/articles_get.cpp
65- src/handlers/articles/articles_get.hpp
66- src/handlers/articles/articles_post.cpp
67- src/handlers/articles/articles_post.hpp
68- src/handlers/articles/feed_articles.hpp
69- src/handlers/articles/feed_articles.cpp
70- src/handlers/articles/articles_favorite.cpp
71- src/handlers/articles/articles_favorite.hpp
72- src/handlers/comments/comment_delete.cpp
73- src/handlers/comments/comment_delete.hpp
74- src/handlers/comments/comment_post.cpp
75- src/handlers/comments/comment_post.hpp
76- src/handlers/comments/comments_get.cpp
77- src/handlers/comments/comments_get.hpp
78- src/handlers/auth/auth_bearer.hpp
79- src/handlers/auth/auth_bearer.cpp
80- src/dto/article.cpp
81- src/dto/article.hpp
82- src/dto/comment .hpp
83- src/dto/comment .cpp
84- src/db/sql.hpp
85- src/models/user.hpp
86- src/models/user.cpp
87- src/models/comment .hpp
88- src/models/comment .cpp
89- src/models/article.hpp
90- src/models/article.cpp
91- src/models/profile.hpp
92- src/validators/user_validators.hpp
93- src/validators/user_validators.cpp
94- src/validators/length_validator.hpp
95- src/validators/length_validator.cpp
96- src/utils/random.hpp
97- src/utils/random.cpp
98- src/utils/errors.hpp
99- src/utils/errors.cpp
100- src/utils/make_error.hpp
101- src/utils/make_error.cpp
102- src/utils/jwt.hpp
103- src/utils/jwt.cpp
104- src/utils/slugify.hpp
105- src/utils/slugify.cpp
106- src/handlers/articles/articles_unfavorite.cpp
107- src/handlers/articles/articles_unfavorite.hpp
108- src/dto/filter .hpp
109- src/dto/filter .cpp
110- src/validators/validators.cpp
111- src/validators/article_validators.cpp
112- src/validators/article_validators.hpp
113-
114- )
30+ file (GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR} /src/*.[hc]pp)
31+ file (GLOB_RECURSE UNIT_TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR} /src/*_test.cpp)
32+ list (REMOVE_ITEM SOURCES ${UNIT_TEST_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR} /src/main.cpp)
11533
34+ add_library (${PROJECT_NAME} _objs OBJECT ${SOURCES} )
11635include_directories (${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} /src)
117- target_link_libraries (${PROJECT_NAME} _objs PUBLIC userver::core userver:: postgresql)
36+ target_link_libraries (${PROJECT_NAME} _objs PUBLIC userver::postgresql)
11837
11938file (GLOB_RECURSE SCHEMAS ${CMAKE_CURRENT_SOURCE_DIR} /docs/*.yaml)
12039userver_target_generate_chaotic(${PROJECT_NAME} -chgen
@@ -128,25 +47,17 @@ userver_target_generate_chaotic(${PROJECT_NAME}-chgen
12847 ${CMAKE_CURRENT_SOURCE_DIR}
12948)
13049target_link_libraries (${PROJECT_NAME} _objs PUBLIC ${PROJECT_NAME} -chgen)
131-
132- target_include_directories (${PROJECT_NAME} _objs PUBLIC cpp-jwt)
13350target_link_libraries (${PROJECT_NAME} _objs PUBLIC cpp-jwt)
13451
135- set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR} /cmake" )
136- find_package (ICU 4.4 COMPONENTS io i18n REQUIRED)
137- target_include_directories (${PROJECT_NAME} _objs PUBLIC ${ICU_INCLUDE_DIRS} )
138- target_link_libraries (${PROJECT_NAME} _objs PUBLIC ${ICU_LIBRARIES} )
52+ find_package (ICU COMPONENTS uc i18n REQUIRED)
53+ target_link_libraries (${PROJECT_NAME} _objs PUBLIC ICU::uc ICU::i18n)
13954
14055# The Service
14156add_executable (${PROJECT_NAME} src/main.cpp)
14257target_link_libraries (${PROJECT_NAME} PRIVATE ${PROJECT_NAME} _objs)
14358
14459# Unit Tests
145- add_executable (${PROJECT_NAME} _unittest
146- src/utils/slugify_test.cpp
147- src/validators/validator_test.cpp
148- )
149-
60+ add_executable (${PROJECT_NAME} _unittest ${UNIT_TEST_SOURCES} )
15061target_link_libraries (${PROJECT_NAME} _unittest PRIVATE ${PROJECT_NAME} _objs userver::utest)
15162add_google_tests(${PROJECT_NAME} _unittest)
15263
@@ -164,8 +75,6 @@ if(DEFINED ENV{PREFIX})
16475 set (CMAKE_INSTALL_PREFIX ${PREFIX_PATH} )
16576endif ()
16677
167- set (CONFIG_JWT ${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_SYSCONFDIR} /${PROJECT_NAME} /jwt_config.json)
168-
16978file (GLOB CONFIGS_FILES ${CMAKE_CURRENT_SOURCE_DIR} /configs/*.yaml ${CMAKE_CURRENT_SOURCE_DIR} /configs/*.json)
17079
17180install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${PROJECT_NAME} )
0 commit comments