cmake_minimum_required(VERSION 3.22) project(graph) include(CMakePrintHelpers) set(CMAKE_C_COMPILER clang) set(CMAKE_CXX_COMPILER clang++) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS true) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-variable -Wno-unused-private-field") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-variable -Wno-unused-private-field") if(DEBUG) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -DDEBUG") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -DDEBUG") endif() # build plugins include_directories("${CMAKE_SOURCE_DIR}/inc" "${CMAKE_SOURCE_DIR}/build") add_subdirectory("${CMAKE_SOURCE_DIR}/src/graph/plugins") # build gui server find_package(Qt6 REQUIRED COMPONENTS Widgets) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) file(GLOB_RECURSE SERVER_SOURCES "${CMAKE_SOURCE_DIR}/src/graph/server/*.cpp") file(GLOB_RECURSE SERVER_UI "${CMAKE_SOURCE_DIR}/src/graph/server/*.ui") file(GLOB_RECURSE SERVER_RES "${CMAKE_SOURCE_DIR}/src/graph/server/*.qrc") file(GLOB_RECURSE SERVER_HEADERS "${CMAKE_SOURCE_DIR}/inc/graph/server/*.h") cmake_print_variables(SERVER_SOURCES) cmake_print_variables(SERVER_UI) cmake_print_variables(SERVER_RES) cmake_print_variables(SERVER_HEADERS) qt_wrap_cpp(SERVER_GEN_SRC ${SERVER_SRC}) qt_wrap_ui(SERVER_GEN_UI ${SERVER_UI}) add_executable(server ${SERVER_SOURCES} ${SERVER_RES} ${SERVER_UI} ${SERVER_HEADERS} ${SERVER_GEN_SRC} ${SERVER_GEN_UI} ) target_link_libraries(server PRIVATE dl Qt6::Widgets)