diff --git a/CMakeLists.txt b/CMakeLists.txt index 11869fc..c698146 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,35 @@ cmake_minimum_required(VERSION 3.5) +message("Using CMake ${CMAKE_VERSION}\n") project(LMS LANGUAGES CXX) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(REPO_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(PROJECT_TYPE_DEBUG TRUE) +endif() +if(PROJECT_TYPE_DEBUG) + add_definitions(-DPROJECT_TYPE_DEBUG) +endif() + +include(cmake/CommonInfoForProject.cmake) + +common_info_for_project(LMS) + +find_package(Qt5 COMPONENTS Widgets REQUIRED) +find_package(Qt5 COMPONENTS Network REQUIRED) +find_package(Qt5 COMPONENTS Sql REQUIRED) +find_package(Qt5 COMPONENTS LinguistTools REQUIRED) +find_package(Qt5 COMPONENTS Xml REQUIRED) +find_package(Qt5 COMPONENTS Concurrent REQUIRED) + add_subdirectory(DataBaseLMS) add_subdirectory(InstructorsAndTrainees) add_subdirectory(GUIdataBaseLMS) diff --git a/DataBaseLMS/CMakeLists.txt b/DataBaseLMS/CMakeLists.txt index 4b7dc4c..e2eced4 100644 --- a/DataBaseLMS/CMakeLists.txt +++ b/DataBaseLMS/CMakeLists.txt @@ -1,27 +1,6 @@ -cmake_minimum_required(VERSION 3.5) - project(DataBaseLMS LANGUAGES CXX) -get_filename_component(REPO_PATH ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(PROJECT_TYPE_DEBUG TRUE) -endif() - -if(PROJECT_TYPE_DEBUG) - add_definitions(-DPROJECT_TYPE_DEBUG) -endif() - -find_package(Qt5 COMPONENTS Widgets REQUIRED) -find_package(Qt5 COMPONENTS Sql REQUIRED) -find_package(Qt5 COMPONENTS LinguistTools REQUIRED) +common_info_for_project(DataBaseLMS) add_library(DataBaseLMS SHARED DataBaseLMS_global.h @@ -52,8 +31,6 @@ target_link_libraries(DataBaseLMS PRIVATE Qt5::Sql) target_compile_definitions(DataBaseLMS PRIVATE DATABASELMS_LIBRARY) -message("${REPO_PATH}") - if(PROJECT_TYPE_DEBUG) add_custom_command(TARGET DataBaseLMS diff --git a/GUIdataBaseLMS/CMakeLists.txt b/GUIdataBaseLMS/CMakeLists.txt index c5bc10a..1c0e023 100644 --- a/GUIdataBaseLMS/CMakeLists.txt +++ b/GUIdataBaseLMS/CMakeLists.txt @@ -1,28 +1,6 @@ -cmake_minimum_required(VERSION 3.5) - project(GUIdataBaseLMS LANGUAGES CXX) -get_filename_component(REPO_PATH ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(PROJECT_TYPE_DEBUG TRUE) -endif() - -if(PROJECT_TYPE_DEBUG) - add_definitions(-DPROJECT_TYPE_DEBUG) -endif() - -find_package(Qt5 COMPONENTS Widgets REQUIRED) -find_package(Qt5 COMPONENTS Sql REQUIRED) -find_package(Qt5 COMPONENTS Xml REQUIRED) -find_package(Qt5 COMPONENTS Network REQUIRED) +common_info_for_project(GUIdataBaseLMS) add_executable(GUIdataBaseLMS main.cpp @@ -32,13 +10,11 @@ mainwindow.ui testDBpgSQL.qrc ) - target_link_libraries(GUIdataBaseLMS PRIVATE Qt5::Widgets) target_link_libraries(GUIdataBaseLMS PRIVATE Qt5::Sql) target_link_libraries(GUIdataBaseLMS PRIVATE Qt5::Xml) target_link_libraries(GUIdataBaseLMS PRIVATE Qt5::Network) - target_include_directories(GUIdataBaseLMS PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../InstructorsAndTrainees) target_include_directories(GUIdataBaseLMS PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../InstructorsAndTrainees/instructors) target_include_directories(GUIdataBaseLMS PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../InstructorsAndTrainees/trainees) diff --git a/InstructorsAndTrainees/CMakeLists.txt b/InstructorsAndTrainees/CMakeLists.txt index 4d76833..8e13872 100644 --- a/InstructorsAndTrainees/CMakeLists.txt +++ b/InstructorsAndTrainees/CMakeLists.txt @@ -1,29 +1,6 @@ -cmake_minimum_required(VERSION 3.5) - project(InstructorsAndTrainees LANGUAGES CXX) -get_filename_component(REPO_PATH ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(PROJECT_TYPE_DEBUG TRUE) -endif() - -if(PROJECT_TYPE_DEBUG) - add_definitions(-DPROJECT_TYPE_DEBUG) -endif() - -find_package(Qt5 COMPONENTS Widgets REQUIRED) -find_package(Qt5 COMPONENTS Sql REQUIRED) -find_package(Qt5 COMPONENTS LinguistTools REQUIRED) -find_package(Qt5 COMPONENTS Xml REQUIRED) -find_package(Qt5 COMPONENTS Network REQUIRED) +common_info_for_project(InstructorsAndTrainees) add_library(InstructorsAndTrainees SHARED instructorsAndTrainees_global.h @@ -105,7 +82,6 @@ target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Sql) target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Xml) target_link_libraries(InstructorsAndTrainees PRIVATE Qt5::Network) - target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/instructors) target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/trainees) target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/tasks) @@ -116,7 +92,6 @@ target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_ target_compile_definitions(InstructorsAndTrainees PRIVATE INSTRUCTORSANDTRAINEES_LIBRARY) - target_include_directories(InstructorsAndTrainees PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../DataBaseLMS) if(PROJECT_TYPE_DEBUG) target_link_directories(InstructorsAndTrainees PUBLIC ${REPO_PATH}/BUILDS/Debug64/DataBaseLMS) @@ -125,7 +100,6 @@ elseif() endif() target_link_libraries(InstructorsAndTrainees PRIVATE libDataBaseLMS.dll) - if(PROJECT_TYPE_DEBUG) add_custom_command(TARGET InstructorsAndTrainees POST_BUILD @@ -140,6 +114,5 @@ elseif() ${REPO_PATH}/BUILDS/Release64/GUIdataBaseLMS) endif() - #Только для TSMP! #install(TARGETS InstructorsAndTrainees DESTINATION ${VEYON_LIB_DIR}) diff --git a/ServerLMS/CMakeLists.txt b/ServerLMS/CMakeLists.txt index 31ad5f0..581477e 100644 --- a/ServerLMS/CMakeLists.txt +++ b/ServerLMS/CMakeLists.txt @@ -1,31 +1,6 @@ -cmake_minimum_required(VERSION 3.5) - project(ServerLMS LANGUAGES CXX) -get_filename_component(REPO_PATH ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(PROJECT_TYPE_DEBUG TRUE) -endif() - -if(PROJECT_TYPE_DEBUG) - add_definitions(-DPROJECT_TYPE_DEBUG) -endif() - -find_package(Qt5 COMPONENTS Widgets REQUIRED) -find_package(Qt5 COMPONENTS Network REQUIRED) -find_package(Qt5 COMPONENTS Sql REQUIRED) -find_package(Qt5 COMPONENTS LinguistTools REQUIRED) -find_package(Qt5 REQUIRED COMPONENTS Concurrent) -find_package(Qt5 COMPONENTS Xml REQUIRED) - +common_info_for_project(ServerLMS) add_library(ServerLMS SHARED ServerLMS_global.h @@ -75,7 +50,6 @@ target_link_libraries(ServerLMS PRIVATE Qt5::Concurrent) target_link_libraries(ServerLMS PRIVATE Qt5::Sql) target_link_libraries(ServerLMS PRIVATE Qt5::Xml) - target_include_directories(ServerLMS PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../DataBaseLMS) if(PROJECT_TYPE_DEBUG) target_link_directories(ServerLMS PUBLIC ${REPO_PATH}/BUILDS/Debug64/DataBaseLMS) @@ -84,10 +58,8 @@ elseif() endif() target_link_libraries(ServerLMS PRIVATE libDataBaseLMS.dll) - target_compile_definitions(ServerLMS PRIVATE SERVERLMS_LIBRARY) - if(PROJECT_TYPE_DEBUG) add_custom_command(TARGET ServerLMS POST_BUILD diff --git a/TestServerLMS/CMakeLists.txt b/TestServerLMS/CMakeLists.txt index 29e4313..f6d3c77 100644 --- a/TestServerLMS/CMakeLists.txt +++ b/TestServerLMS/CMakeLists.txt @@ -1,31 +1,6 @@ -cmake_minimum_required(VERSION 3.5) - project(TestServerLMS LANGUAGES CXX) -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -get_filename_component(REPO_PATH ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) - -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) - -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(PROJECT_TYPE_DEBUG TRUE) -endif() - -if(PROJECT_TYPE_DEBUG) - add_definitions(-DPROJECT_TYPE_DEBUG) -endif() - -find_package(Qt5 COMPONENTS Widgets REQUIRED) -find_package(Qt5 COMPONENTS Network REQUIRED) -find_package(Qt5 COMPONENTS Sql REQUIRED) -find_package(Qt5 COMPONENTS LinguistTools REQUIRED) -find_package(Qt5 COMPONENTS Xml REQUIRED) +common_info_for_project(TestServerLMS) add_executable(TestServerLMS main.cpp @@ -40,7 +15,6 @@ target_link_libraries(TestServerLMS PRIVATE Qt5::Network) target_link_libraries(TestServerLMS PRIVATE Qt5::Sql) target_link_libraries(TestServerLMS PRIVATE Qt5::Xml) -message("${CMAKE_CURRENT_SOURCE_DIR}") target_include_directories(TestServerLMS PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../DataBaseLMS) if(PROJECT_TYPE_DEBUG) target_link_directories(TestServerLMS PUBLIC ${REPO_PATH}/BUILDS/Debug64/DataBaseLMS) diff --git a/cmake/CommonInfoForProject.cmake b/cmake/CommonInfoForProject.cmake new file mode 100644 index 0000000..8ef9c8b --- /dev/null +++ b/cmake/CommonInfoForProject.cmake @@ -0,0 +1,7 @@ +macro(common_info_for_project TARGET_NAME) + message("${TARGET_NAME}: ") + message("CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}") + message("REPO_PATH: ${REPO_PATH}") + message("PROJECT_TYPE_DEBUG: ${PROJECT_TYPE_DEBUG}\n") +endmacro() +