@@ -2,44 +2,85 @@ cmake_minimum_required(VERSION 3.1)
22
33set (project_name example-postgresql) ## rename your project here
44
5- project (${project_name} -loader )
5+ project (${project_name} )
66
7- include (ExternalProject )
7+ set (CMAKE_CXX_STANDARD 11 )
88
9- #############################################################################
10- ## load all dependencies
9+ add_library (${project_name} -lib
10+ src/App.cpp
11+ src/AppComponent.hpp
12+ src/ServiceComponent.hpp
13+ src/SwaggerComponent.hpp
14+ src/controller/UserController.cpp
15+ src/controller/UserController.hpp
16+ src/db/Database.cpp
17+ src/db/Database.hpp
18+ src/dto/ConfigDto.hpp
19+ src/dto/ErrorDto.hpp
20+ src/dto/UserDto.hpp
21+ )
22+
23+ target_include_directories (${project_name} -lib PUBLIC src)
24+
25+ ## link libs
26+
27+ find_package (oatpp 0.19.4 REQUIRED)
28+ find_package (oatpp-swagger 0.19.4 REQUIRED)
1129
12- ExternalProject_Add(oatpp
13- GIT_REPOSITORY "https://github.com/ oatpp/oatpp.git"
14- GIT_TAG origin/master
15- CMAKE_ARGS -DOATPP_BUILD_TESTS= OFF
30+ target_link_libraries ( ${project_name} -lib
31+ PUBLIC oatpp:: oatpp
32+ PUBLIC oatpp::oatpp- test
33+ PUBLIC oatpp::oatpp-swagger
1634)
1735
18- ExternalProject_Add(oatpp_swagger
19- GIT_REPOSITORY "https://github.com/oatpp/oatpp-swagger.git"
20- GIT_TAG origin/master
21- DEPENDS oatpp
36+ add_definitions (
37+ # Path to swagger-ui resources #
38+ -DOATPP_SWAGGER_RES_PATH="${oatpp-swagger_INCLUDE_DIRS}/../bin/oatpp-swagger/res"
39+
40+ # Path to config file #
41+ -DCONFIG_PATH="${CMAKE_CURRENT_LIST_DIR} /resources/config.json"
2242)
2343
24- ExternalProject_Add(main
25- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /main
26- INSTALL_COMMAND cmake -E echo "SKIP INSTALL"
27- DEPENDS oatpp oatpp_swagger
44+ #################################################################
45+ ## link postgresql client
46+
47+ include (FindPkgConfig)
48+
49+ set (ENV{PKG_CONFIG_PATH} "/usr/local/pgsql/lib/pkgconfig:$ENV{PKG_CONFIG_PATH} " ) ## change this if needed
50+
51+ pkg_check_modules(PKG_PQ REQUIRED libpq)
52+
53+ message ("PKG_PQ_INCLUDE_DIRS=${PKG_PQ_INCLUDE_DIRS} " )
54+ message ("PKG_PQ_LIBRARY_DIRS=${PKG_PQ_LIBRARY_DIRS} " )
55+ message ("PKG_PQ_LIBRARIES=${PKG_PQ_LIBRARIES} " )
56+
57+ target_include_directories (${project_name} -lib
58+ PUBLIC ${PKG_PQ_INCLUDE_DIRS}
2859)
2960
30- #############################################################################
31- ## make run command
61+ link_directories (
62+ ${PKG_PQ_LIBRARY_DIRS}
63+ )
3264
33- ExternalProject_Get_Property(main BINARY_DIR)
65+ target_link_libraries (${project_name} -lib
66+ PUBLIC ${PKG_PQ_LIBRARIES}
67+ )
3468
35- add_custom_target (run
36- COMMAND ${BINARY_DIR} /${project_name} -exe
37- DEPENDS main
38- WORKING_DIRECTORY ${BINARY_DIR}
69+ #################################################################
70+
71+ ## add executables
72+
73+ add_executable (${project_name} -exe
74+ src/App.cpp
3975)
76+ target_link_libraries (${project_name} -exe ${project_name} -lib)
77+ add_dependencies (${project_name} -exe ${project_name} -lib)
4078
41- #############################################################################
42- ## make test command
79+ add_executable (${project_name} -test
80+ test /tests.cpp
81+ )
82+ target_link_libraries (${project_name} -test ${project_name} -lib)
83+ add_dependencies (${project_name} -test ${project_name} -lib)
4384
4485enable_testing ()
45- add_test (all -tests ${BINARY_DIR} / ${project_name} -test )
86+ add_test (project -tests ${project_name} -test )
0 commit comments