1- cmake_minimum_required (VERSION 3.5 )
1+ cmake_minimum_required (VERSION 3.22 )
22
33project (cortex-server C CXX)
44
55include (CheckIncludeFileCXX)
66
7- check_include_file_cxx(any HAS_ANY)
8- check_include_file_cxx(string_view HAS_STRING_VIEW)
9- check_include_file_cxx(coroutine HAS_COROUTINE)
10- if (HAS_ANY
11- AND HAS_STRING_VIEW
12- AND HAS_COROUTINE)
13- set (CMAKE_CXX_STANDARD 20)
14- elseif (HAS_ANY AND HAS_STRING_VIEW)
15- set (CMAKE_CXX_STANDARD 17)
16- else ()
17- set (CMAKE_CXX_STANDARD 14)
18- endif ()
7+ set (CMAKE_CXX_STANDARD 17)
8+ MESSAGE ("CMAKE_CXX_STANDARD=" ${CMAKE_CXX_STANDARD} )
199
2010set (CMAKE_CXX_STANDARD_REQUIRED ON )
2111set (CMAKE_CXX_EXTENSIONS OFF )
22- set (OPENSSL_USE_STATIC_LIBS TRUE )
12+ # set(OPENSSL_USE_STATIC_LIBS TRUE)
2313set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
2414
2515# Add CORTEX_CQA option
@@ -102,27 +92,36 @@ add_compile_definitions(CORTEX_VARIANT="${CORTEX_VARIANT}")
10292add_compile_definitions (CORTEX_CPP_VERSION="${CORTEX_CPP_VERSION} " )
10393add_compile_definitions (CORTEX_CONFIG_FILE_PATH="${CORTEX_CONFIG_FILE_PATH} " )
10494
105- option (CMAKE_BUILD_TEST "Enable testing" OFF )
95+ option (CMAKE_BUILD_TEST "Enable testing" ON )
10696option (CMAKE_BUILD_INJA_TEST "Enable inja example" OFF )
107- if (CMAKE_BUILD_TEST)
97+ # if(CMAKE_BUILD_TEST)
10898 add_subdirectory (test )
109- endif ()
99+ # endif()
110100
111101add_subdirectory (cli)
112102
113103if (CMAKE_BUILD_INJA_TEST)
114104 add_subdirectory (examples/inja)
115105endif ()
116-
117- find_package (jsoncpp CONFIG REQUIRED)
118- find_package (Drogon CONFIG REQUIRED)
119- find_package (yaml-cpp CONFIG REQUIRED)
120- find_package (unofficial-minizip CONFIG REQUIRED)
121- find_package (LibArchive REQUIRED)
122- find_package (CURL REQUIRED)
123- find_package (SQLiteCpp REQUIRED)
124- find_package (eventpp CONFIG REQUIRED)
125- find_package (lfreist-hwinfo CONFIG REQUIRED)
106+ include (cmake/cli11.cmake)
107+ include (cmake/libarchive.cmake)
108+ include (cmake/curl.cmake)
109+ include (cmake/drogon.cmake)
110+ include (cmake/eventpp.cmake)
111+ include (cmake/gtest.cmake)
112+ include (cmake/indicators.cmake)
113+ include (cmake/inja.cmake)
114+
115+ include (cmake/lfreist-hwinfo.cmake)
116+ include (cmake/minizip.cmake)
117+ include (cmake/sqlitecpp.cmake)
118+ include (cmake/tabulate.cmake)
119+ include (cmake/yaml-cpp.cmake)
120+
121+ find_library (JSONCPP
122+ NAMES jsoncpp
123+ HINTS ${CMAKE_CURRENT_SOURCE_DIR} /build_deps/jsoncpp-lib/lib/
124+ )
126125
127126## Generating openapi json
128127file (READ "${CMAKE_CURRENT_SOURCE_DIR} /../docs/static/openapi/cortex.json" JSON_CONTENT)
@@ -184,7 +183,6 @@ file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/cortex_openapi.h"
184183 "}\n "
185184)
186185## End of generating openapi json
187-
188186add_executable (${TARGET_NAME} main.cc
189187 ${CMAKE_CURRENT_SOURCE_DIR} /utils/cpuid/cpu_info.cc
190188 ${CMAKE_CURRENT_SOURCE_DIR} /utils/file_logger.cc
@@ -199,15 +197,22 @@ add_executable(${TARGET_NAME} main.cc
199197)
200198
201199target_include_directories (${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} )
202-
203- target_link_libraries (${TARGET_NAME} PRIVATE unofficial::minizip::minizip)
204- target_link_libraries (${TARGET_NAME} PRIVATE LibArchive::LibArchive)
205- target_link_libraries (${TARGET_NAME} PRIVATE CURL::libcurl)
206- target_link_libraries (${TARGET_NAME} PRIVATE JsonCpp::JsonCpp Drogon::Drogon OpenSSL::SSL OpenSSL::Crypto yaml-cpp::yaml-cpp
207- ${CMAKE_THREAD_LIBS_INIT} )
200+ # MESSAGE("ssl="${CMAKE_CURRENT_BINARY_DIR}/openssl-src/include)
201+ target_include_directories (${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} /../build_deps/openssl/include )
202+ target_include_directories (${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} /../build_deps/jsoncpp-lib/include )
203+ target_include_directories (${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} /../build /_deps/libarchive-src/libarchive)
204+ target_include_directories (${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} /../build /_deps/minizip-src)
205+
206+ target_link_libraries (${TARGET_NAME} PRIVATE minizip)
207+ target_link_libraries (${TARGET_NAME} PRIVATE archive)
208+ target_link_libraries (${TARGET_NAME} PRIVATE drogon)
208209target_link_libraries (${TARGET_NAME} PRIVATE SQLiteCpp)
209- target_link_libraries (${TARGET_NAME} PRIVATE eventpp::eventpp)
210- target_link_libraries (${TARGET_NAME} PRIVATE lfreist-hwinfo::hwinfo)
210+ target_link_libraries (${TARGET_NAME} PRIVATE ${JSONCPP} )
211+ target_link_libraries (${TARGET_NAME} PRIVATE libcurl)
212+ target_link_libraries (${TARGET_NAME} PRIVATE eventpp)
213+ target_link_libraries (${TARGET_NAME} PRIVATE yaml-cpp)
214+ target_link_libraries (${TARGET_NAME} PRIVATE hwinfo)
215+ target_link_libraries (${TARGET_NAME} PRIVATE inja)
211216
212217# ##############################################################################
213218
0 commit comments