1- cmake_minimum_required (VERSION 3.5 )
1+ cmake_minimum_required (VERSION 3.5...3.31 )
22
33project (drogon)
44
@@ -13,6 +13,7 @@ option(BUILD_DOC "Build Doxygen documentation" OFF)
1313option (BUILD_BROTLI "Build Brotli" ON )
1414option (BUILD_YAML_CONFIG "Build yaml config" ON )
1515option (USE_SUBMODULE "Use trantor as a submodule" ON )
16+ option (USE_STATIC_LIBS_ONLY "Use only static libraries as dependencies" OFF )
1617
1718include (CMakeDependentOption )
1819CMAKE_DEPENDENT_OPTION (BUILD_POSTGRESQL "Build with postgresql support" ON "BUILD_ORM" OFF )
@@ -24,7 +25,7 @@ CMAKE_DEPENDENT_OPTION(USE_SPDLOG "Allow using the spdlog logging library" OFF "
2425
2526set (DROGON_MAJOR_VERSION 1)
2627set (DROGON_MINOR_VERSION 9)
27- set (DROGON_PATCH_VERSION 3 )
28+ set (DROGON_PATCH_VERSION 10 )
2829set (DROGON_VERSION
2930 ${DROGON_MAJOR_VERSION} .${DROGON_MINOR_VERSION} .${DROGON_PATCH_VERSION} )
3031set (DROGON_VERSION_STRING "${DROGON_VERSION} " )
@@ -41,7 +42,7 @@ set(INSTALL_DROGON_CMAKE_DIR ${DEF_INSTALL_DROGON_CMAKE_DIR}
4142if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
4243 # Force MSVC to use UTF-8 because that's what we use. Otherwise it uses
4344 # the default of whatever Windows sets and causes encoding issues.
44- message (STATUS "You are using MSVC. Forceing to use UTF-8" )
45+ message (STATUS "You are using MSVC. Forcing to use UTF-8" )
4546 add_compile_options ("$<$<C_COMPILER_ID :MSVC >:/utf -8>" )
4647 add_compile_options ("$<$<CXX_COMPILER_ID :MSVC >:/utf -8>" )
4748 if (MSVC_VERSION GREATER_EQUAL 1914)
@@ -77,6 +78,10 @@ if (BUILD_SHARED_LIBS)
7778 endif ()
7879endif (BUILD_SHARED_LIBS )
7980
81+ if (USE_STATIC_LIBS_ONLY)
82+ set (CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_STATIC_LIBRARY_SUFFIX} " )
83+ endif (USE_STATIC_LIBS_ONLY )
84+
8085if (USE_SPDLOG)
8186 find_package (spdlog CONFIG )
8287 if (spdlog_FOUND)
@@ -116,6 +121,7 @@ endif()
116121target_include_directories (
117122 ${PROJECT_NAME}
118123 PUBLIC $<BUILD_INTERFACE :${PROJECT_SOURCE_DIR} /lib /inc >
124+ $<BUILD_INTERFACE :${CMAKE_CURRENT_BINARY_DIR} /lib /inc >
119125 $<BUILD_INTERFACE :${PROJECT_SOURCE_DIR} /orm_lib /inc >
120126 $<BUILD_INTERFACE :${PROJECT_SOURCE_DIR} /nosql_lib /redis /inc >
121127 $<BUILD_INTERFACE :${PROJECT_BINARY_DIR} >
@@ -253,7 +259,7 @@ set(DROGON_SOURCES
253259 lib/src/Cookie.cc
254260 lib/src/DrClassMap.cc
255261 lib/src/DrTemplateBase.cc
256- lib/src/FiltersFunction .cc
262+ lib/src/MiddlewaresFunction .cc
257263 lib/src/FixedWindowRateLimiter.cc
258264 lib/src/GlobalFilters.cc
259265 lib/src/Histogram.cc
@@ -268,6 +274,7 @@ set(DROGON_SOURCES
268274 lib/src/HttpFileUploadRequest.cc
269275 lib/src/HttpRequestImpl.cc
270276 lib/src/HttpRequestParser.cc
277+ lib/src/RequestStream.cc
271278 lib/src/HttpResponseImpl.cc
272279 lib/src/HttpResponseParser.cc
273280 lib/src/HttpServer.cc
@@ -278,6 +285,7 @@ set(DROGON_SOURCES
278285 lib/src/ListenerManager.cc
279286 lib/src/LocalHostFilter.cc
280287 lib/src/MultiPart.cc
288+ lib/src/MultipartStreamParser.cc
281289 lib/src/NotFound.cc
282290 lib/src/PluginsManager.cc
283291 lib/src/PromExporter.cc
@@ -302,7 +310,7 @@ set(private_headers
302310 lib/src/CacheFile.h
303311 lib/src/ConfigLoader.h
304312 lib/src/ControllerBinderBase.h
305- lib/src/FiltersFunction .h
313+ lib/src/MiddlewaresFunction .h
306314 lib/src/HttpAppFrameworkImpl.h
307315 lib/src/HttpClientImpl.h
308316 lib/src/HttpConnectionLimit.h
@@ -332,7 +340,8 @@ set(private_headers
332340 lib/src/ConfigAdapterManager.h
333341 lib/src/JsonConfigAdapter.h
334342 lib/src/YamlConfigAdapter.h
335- lib/src/ConfigAdapter.h)
343+ lib/src/ConfigAdapter.h
344+ lib/src/MultipartStreamParser.h)
336345
337346if (NOT WIN32 )
338347 set (DROGON_SOURCES
@@ -502,7 +511,7 @@ execute_process(COMMAND "git" rev-parse HEAD
502511 OUTPUT_VARIABLE GIT_SHA1
503512 ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE )
504513configure_file ("${PROJECT_SOURCE_DIR} /cmake/templates/version.h.in"
505- "${PROJECT_SOURCE_DIR } /lib/inc/drogon/version.h" @ONLY )
514+ "${CMAKE_CURRENT_BINARY_DIR } /lib/inc/drogon/version.h" @ONLY )
506515
507516if (DROGON_CXX_STANDARD EQUAL 20)
508517 option (USE_COROUTINE "Enable C++20 coroutine support" ON )
@@ -557,7 +566,9 @@ set(DROGON_HEADERS
557566 lib/inc/drogon/HttpClient.h
558567 lib/inc/drogon/HttpController.h
559568 lib/inc/drogon/HttpFilter.h
569+ lib/inc/drogon/HttpMiddleware.h
560570 lib/inc/drogon/HttpRequest.h
571+ lib/inc/drogon/RequestStream.h
561572 lib/inc/drogon/HttpResponse.h
562573 lib/inc/drogon/HttpSimpleController.h
563574 lib/inc/drogon/HttpTypes.h
@@ -573,7 +584,7 @@ set(DROGON_HEADERS
573584 lib/inc/drogon/WebSocketConnection.h
574585 lib/inc/drogon/WebSocketController.h
575586 lib/inc/drogon/drogon.h
576- lib/inc/drogon/version.h
587+ ${CMAKE_CURRENT_BINARY_DIR} / lib/inc/drogon/version.h
577588 lib/inc/drogon/drogon_callbacks.h
578589 lib/inc/drogon/PubSubService.h
579590 lib/inc/drogon/drogon_test.h
@@ -682,6 +693,7 @@ set(ORM_HEADERS
682693 orm_lib/inc/drogon/orm/BaseBuilder.h
683694 orm_lib/inc/drogon/orm/Criteria.h
684695 orm_lib/inc/drogon/orm/DbClient.h
696+ orm_lib/inc/drogon/orm/DbConfig.h
685697 orm_lib/inc/drogon/orm/DbListener.h
686698 orm_lib/inc/drogon/orm/DbTypes.h
687699 orm_lib/inc/drogon/orm/Exception.h
0 commit comments