diff --git a/CMakeLists.txt b/CMakeLists.txt index b4c9fc835..ae772b8a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,17 +57,52 @@ set(QET_DIR ${PROJECT_SOURCE_DIR}) #add_definitions(-DTODO_LIST) # From De-Backer ik ben nog aan het testen. -#set(BUILD_QET_YES "yes") +set(BUILD_QET_YES "YES") -execute_process( - COMMAND git -C ${QET_DIR} rev-parse --verify HEAD - OUTPUT_VARIABLE GIT_COMMIT_SHA) +# https://github.com/itay-grudev/SingleApplication/issues/18 +#qmake +#DEFINES += QAPPLICATION_CLASS=QGuiApplication +set(QAPPLICATION_CLASS QApplication) -# This strips terminating newline in the variable -string(REGEX REPLACE "\n$" "" GIT_COMMIT_SHA "${GIT_COMMIT_SHA}") +find_package(Git QUIET) -# This adds to definitions => .cpp -add_definitions(-DGIT_COMMIT_SHA="${GIT_COMMIT_SHA}") +if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") + # updates all git submodules + execute_process( + COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message( + FATAL_ERROR + "git submodule update --init failed with " + ${GIT_SUBMOD_RESULT} + ", please checkout submodules") + endif() +endif() + +if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") + #get GIT COMMIT SHA + execute_process( + COMMAND ${GIT_EXECUTABLE} -C ${QET_DIR} rev-parse --verify HEAD + OUTPUT_VARIABLE GIT_COMMIT_SHA + RESULT_VARIABLE GIT_SUBMOD_RESULT) + + # This strips terminating newline in the variable + string(REGEX REPLACE "\n$" "" GIT_COMMIT_SHA "${GIT_COMMIT_SHA}") + + # This adds to definitions => .cpp + add_definitions(-DGIT_COMMIT_SHA="${GIT_COMMIT_SHA}") + + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message( + FATAL_ERROR + "git rev-parse --verify HEAD failed with " + ${GIT_SUBMOD_RESULT} + ", please check") + endif() +endif() message("PROJECT_NAME :" ${PROJECT_NAME}) message("PROJECT_SOURCE_DIR :" ${PROJECT_SOURCE_DIR}) @@ -75,26 +110,48 @@ message("QET_DIR :" ${QET_DIR}) message("GIT_COMMIT_SHA :" ${GIT_COMMIT_SHA}) Include(FetchContent) -set(KF5_GIT_TAG v5.76.0) -message("KF5_GIT_TAG :" ${KF5_GIT_TAG}) -find_package(KF5CoreAddons) -#---ToDo why you don't work :/ -#FetchContent_Declare( -# kcoreaddons -# GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git -# GIT_TAG ${KF5_GIT_TAG}) -#FetchContent_MakeAvailable(kcoreaddons) -#___ToDo +#ToDo De-Backer +#set(BUILD_KF5_YES "YES") +if(DEFINED BUILD_KF5_YES) -find_package(KF5WidgetsAddons) -#FetchContent_Declare( -# kwidgetsaddons -# GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git -# GIT_TAG ${KF5_GIT_TAG}) + if(NOT DEFINED KF5_GIT_TAG) + set(KF5_GIT_TAG v5.76.0) + message("KF5_GIT_TAG :" ${KF5_GIT_TAG}) + endif() -#FetchContent_MakeAvailable(kwidgetsaddons) + #---ToDo why you don't work :/ + FetchContent_Declare( + kcoreaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kcoreaddons) + #___ToDo + + FetchContent_Declare( + kwidgetsaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kwidgetsaddons) +else() + find_package(KF5CoreAddons REQUIRED) + find_package(KF5WidgetsAddons REQUIRED) +endif() + +FetchContent_Declare( + SingleApplication + GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git + GIT_TAG v3.1.5) + +FetchContent_MakeAvailable(SingleApplication) + +FetchContent_Declare( + pugixml + GIT_REPOSITORY https://github.com/zeux/pugixml.git + GIT_TAG v1.11.1) + +FetchContent_MakeAvailable(pugixml) set(QET_COMPONENTS Widgets @@ -125,38 +182,40 @@ find_package( ${QET_COMPONENTS} REQUIRED) -qt5_create_translation( - QM_FILES - ${CMAKE_SOURCE_DIR} - ${QET_DIR}/lang/qet_ca.ts - ${QET_DIR}/lang/qet_de.ts - ${QET_DIR}/lang/qet_es.ts - ${QET_DIR}/lang/qet_fr.ts - ${QET_DIR}/lang/qet_it.ts - ${QET_DIR}/lang/qet_mn.ts - ${QET_DIR}/lang/qet_pt_br.ts - ${QET_DIR}/lang/qet_ru.ts - ${QET_DIR}/lang/qet_sr.ts - ${QET_DIR}/lang/qet_zh.ts - ${QET_DIR}/lang/qet_be.ts - ${QET_DIR}/lang/qet_da.ts - ${QET_DIR}/lang/qet_en.ts - ${QET_DIR}/lang/qet_fi.ts - ${QET_DIR}/lang/qet_hu.ts - ${QET_DIR}/lang/qet_nl.ts - ${QET_DIR}/lang/qet_pl.ts - ${QET_DIR}/lang/qet_ro.ts - ${QET_DIR}/lang/qet_sk.ts - ${QET_DIR}/lang/qet_ar.ts - ${QET_DIR}/lang/qet_cs.ts - ${QET_DIR}/lang/qet_el.ts - ${QET_DIR}/lang/qet_hr.ts - ${QET_DIR}/lang/qet_ja.ts - ${QET_DIR}/lang/qet_nb.ts - ${QET_DIR}/lang/qet_no.ts - ${QET_DIR}/lang/qet_pt.ts - ${QET_DIR}/lang/qet_sl.ts - ${QET_DIR}/lang/qet_tr.ts) +#qt5_create_translation( +# QM_FILES +# ${CMAKE_SOURCE_DIR} +# ${QET_DIR}/lang/qet_ca.ts +# ${QET_DIR}/lang/qet_de.ts +# ${QET_DIR}/lang/qet_es.ts +# ${QET_DIR}/lang/qet_fr.ts +# ${QET_DIR}/lang/qet_it.ts +# ${QET_DIR}/lang/qet_mn.ts +# ${QET_DIR}/lang/qet_pt_br.ts +# ${QET_DIR}/lang/qet_ru.ts +# ${QET_DIR}/lang/qet_sr.ts +# ${QET_DIR}/lang/qet_zh.ts +# ${QET_DIR}/lang/qet_be.ts +# ${QET_DIR}/lang/qet_da.ts +# ${QET_DIR}/lang/qet_en.ts +# ${QET_DIR}/lang/qet_fi.ts +# ${QET_DIR}/lang/qet_hu.ts +# ${QET_DIR}/lang/qet_nl.ts +# ${QET_DIR}/lang/qet_pl.ts +# ${QET_DIR}/lang/qet_ro.ts +# ${QET_DIR}/lang/qet_sk.ts +# ${QET_DIR}/lang/qet_ar.ts +# ${QET_DIR}/lang/qet_cs.ts +# ${QET_DIR}/lang/qet_el.ts +# ${QET_DIR}/lang/qet_hr.ts +# ${QET_DIR}/lang/qet_ja.ts +# ${QET_DIR}/lang/qet_nb.ts +# ${QET_DIR}/lang/qet_no.ts +# ${QET_DIR}/lang/qet_pt.ts +# ${QET_DIR}/lang/qet_sl.ts +# ${QET_DIR}/lang/qet_tr.ts) + +set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui) set(QET_SRC_FILES ${QET_DIR}/sources/borderproperties.cpp @@ -674,7 +733,7 @@ if(DEFINED BUILD_QET_YES) add_executable( ${PROJECT_NAME} ${QET_SRC_FILES} - ${QM_FILES} +# ${QM_FILES} ) target_link_libraries( @@ -695,6 +754,8 @@ target_link_libraries( ${PROJECT_NAME} PUBLIC PRIVATE + pugixml::pugixml + SingleApplication::SingleApplication KF5::WidgetsAddons KF5::CoreAddons Qt5::Gui @@ -704,46 +765,53 @@ target_link_libraries( Qt5::Sql Qt5::Widgets Qt5::Concurrent) + + target_include_directories( + ${PROJECT_NAME} + PRIVATE + ${QET_DIR}/sources/titleblock + ${QET_DIR}/sources/ui + ${QET_DIR}/sources/qetgraphicsitem + ${QET_DIR}/sources/qetgraphicsitem/ViewItem + ${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui + ${QET_DIR}/sources/richtext + ${QET_DIR}/sources/factory + ${QET_DIR}/sources/properties + ${QET_DIR}/sources/dvevent + ${QET_DIR}/sources/editor + ${QET_DIR}/sources/editor/esevent + ${QET_DIR}/sources/editor/graphicspart + ${QET_DIR}/sources/editor/ui + ${QET_DIR}/sources/editor/UndoCommand + ${QET_DIR}/sources/undocommand + ${QET_DIR}/sources/diagramevent + ${QET_DIR}/sources/ElementsCollection + ${QET_DIR}/sources/ElementsCollection/ui + ${QET_DIR}/sources/autoNum + ${QET_DIR}/sources/autoNum/ui + ${QET_DIR}/sources/ui/configpage + ${QET_DIR}/sources/SearchAndReplace + ${QET_DIR}/sources/SearchAndReplace/ui + ${QET_DIR}/sources/NameList + ${QET_DIR}/sources/NameList/ui + ${QET_DIR}/sources/utils + ${QET_DIR}/sources/pugixml + ${QET_DIR}/sources/dataBase + ${QET_DIR}/sources/dataBase/ui + ${QET_DIR}/sources/factory/ui + ${QET_DIR}/sources/print + ) + # ${QET_DIR}/SingleApplication else() message("!! sorry now Cmake can't get QET builds yet !!") endif() -# target_include_directories( -# ${PROJECT_NAME} -# PRIVATE -# ${QET_DIR}/sources/titleblock -# ${QET_DIR}/sources/ui -# ${QET_DIR}/sources/qetgraphicsitem -# ${QET_DIR}/sources/qetgraphicsitem/ViewItem -# ${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui -# ${QET_DIR}/sources/richtext -# ${QET_DIR}/sources/factory -# ${QET_DIR}/sources/properties -# ${QET_DIR}/sources/dvevent -# ${QET_DIR}/sources/editor -# ${QET_DIR}/sources/editor/esevent -# ${QET_DIR}/sources/editor/graphicspart -# ${QET_DIR}/sources/editor/ui -# ${QET_DIR}/sources/editor/UndoCommand -# ${QET_DIR}/sources/undocommand -# ${QET_DIR}/sources/diagramevent -# ${QET_DIR}/sources/ElementsCollection -# ${QET_DIR}/sources/ElementsCollection/ui -# ${QET_DIR}/sources/autoNum -# ${QET_DIR}/sources/autoNum/ui -# ${QET_DIR}/sources/ui/configpage -# ${QET_DIR}/sources/SearchAndReplace -# ${QET_DIR}/sources/SearchAndReplace/ui -# ${QET_DIR}/sources/NameList -# ${QET_DIR}/sources/NameList/ui -# ${QET_DIR}/sources/utils -# ${QET_DIR}/sources/pugixml -# ${QET_DIR}/sources/dataBase -# ${QET_DIR}/sources/dataBase/ui -# ${QET_DIR}/sources/factory/ui -# ${QET_DIR}/sources/print -# ) # Add sub directories -message("Add sub directorie tests") -add_subdirectory(tests) +option(PACKAGE_TESTS "Build the tests" ON) + +if(PACKAGE_TESTS) + enable_testing() + message("Add sub directorie tests") + add_subdirectory(tests) +endif() diff --git a/sources/main.cpp b/sources/main.cpp index 0f91acfdc..7eb164c08 100644 --- a/sources/main.cpp +++ b/sources/main.cpp @@ -15,10 +15,10 @@ You should have received a copy of the GNU General Public License along with QElectroTech. If not, see . */ -#include "../SingleApplication/singleapplication.h" #include "machine_info.h" #include "qet.h" #include "qetapp.h" +#include "singleapplication.h" #include "utils/macosxopenevent.h" #include diff --git a/sources/utils/macosxopenevent.cpp b/sources/utils/macosxopenevent.cpp index d1ee7a750..7d6c9bce8 100644 --- a/sources/utils/macosxopenevent.cpp +++ b/sources/utils/macosxopenevent.cpp @@ -17,7 +17,7 @@ */ #include "macosxopenevent.h" -#include "SingleApplication/singleapplication.h" +#include "singleapplication.h" #include diff --git a/tests/catch/CMakeLists.txt b/tests/catch/CMakeLists.txt index aca806e9e..d04ba6750 100644 --- a/tests/catch/CMakeLists.txt +++ b/tests/catch/CMakeLists.txt @@ -76,27 +76,31 @@ FetchContent_Declare( FetchContent_MakeAvailable(Catch2) -if(NOT DEFINED KF5_GIT_TAG) - set(KF5_GIT_TAG v5.76.0) - message(".. KF5_GIT_TAG :" ${KF5_GIT_TAG}) +if(DEFINED BUILD_KF5_YES) + + if(NOT DEFINED KF5_GIT_TAG) + set(KF5_GIT_TAG v5.76.0) + message(".. KF5_GIT_TAG :" ${KF5_GIT_TAG}) + endif() + + #---ToDo why you don't work :/ + FetchContent_Declare( + kcoreaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kcoreaddons) + #___ToDo + + FetchContent_Declare( + kwidgetsaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kwidgetsaddons) +else() + find_package(KF5CoreAddons REQUIRED) + find_package(KF5WidgetsAddons REQUIRED) endif() -find_package(KF5CoreAddons REQUIRED) -#---ToDo why you don't work :/ -#FetchContent_Declare( -# kcoreaddons -# GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git -# GIT_TAG ${KF5_GIT_TAG}) -#FetchContent_MakeAvailable(kcoreaddons) -#___ToDo - -FetchContent_Declare( - kwidgetsaddons - GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git - GIT_TAG ${KF5_GIT_TAG}) - -FetchContent_MakeAvailable(kwidgetsaddons) - add_executable( ${PROJECT_NAME} tst_My_test.cpp diff --git a/tests/googlemock/CMakeLists.txt b/tests/googlemock/CMakeLists.txt index 12fe40f82..50a525468 100644 --- a/tests/googlemock/CMakeLists.txt +++ b/tests/googlemock/CMakeLists.txt @@ -76,27 +76,31 @@ FetchContent_Declare( FetchContent_MakeAvailable(GTest) -if(NOT DEFINED KF5_GIT_TAG) - set(KF5_GIT_TAG v5.76.0) - message(".. KF5_GIT_TAG :" ${KF5_GIT_TAG}) +if(DEFINED BUILD_KF5_YES) + + if(NOT DEFINED KF5_GIT_TAG) + set(KF5_GIT_TAG v5.76.0) + message(".. KF5_GIT_TAG :" ${KF5_GIT_TAG}) + endif() + + #---ToDo why you don't work :/ + FetchContent_Declare( + kcoreaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kcoreaddons) + #___ToDo + + FetchContent_Declare( + kwidgetsaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kwidgetsaddons) +else() + find_package(KF5CoreAddons REQUIRED) + find_package(KF5WidgetsAddons REQUIRED) endif() -find_package(KF5CoreAddons REQUIRED) -#---ToDo why you don't work :/ -#FetchContent_Declare( -# kcoreaddons -# GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git -# GIT_TAG ${KF5_GIT_TAG}) -#FetchContent_MakeAvailable(kcoreaddons) -#___ToDo - -FetchContent_Declare( - kwidgetsaddons - GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git - GIT_TAG ${KF5_GIT_TAG}) - -FetchContent_MakeAvailable(kwidgetsaddons) - add_executable( ${PROJECT_NAME} tst_My_test.cpp diff --git a/tests/googletest/CMakeLists.txt b/tests/googletest/CMakeLists.txt index 5c1afdd8e..aab886af3 100644 --- a/tests/googletest/CMakeLists.txt +++ b/tests/googletest/CMakeLists.txt @@ -76,27 +76,31 @@ FetchContent_Declare( FetchContent_MakeAvailable(GTest) -if(NOT DEFINED KF5_GIT_TAG) - set(KF5_GIT_TAG v5.76.0) - message(".. KF5_GIT_TAG :" ${KF5_GIT_TAG}) +if(DEFINED BUILD_KF5_YES) + + if(NOT DEFINED KF5_GIT_TAG) + set(KF5_GIT_TAG v5.76.0) + message(".. KF5_GIT_TAG :" ${KF5_GIT_TAG}) + endif() + + #---ToDo why you don't work :/ + FetchContent_Declare( + kcoreaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kcoreaddons) + #___ToDo + + FetchContent_Declare( + kwidgetsaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kwidgetsaddons) +else() + find_package(KF5CoreAddons REQUIRED) + find_package(KF5WidgetsAddons REQUIRED) endif() -find_package(KF5CoreAddons REQUIRED) -#---ToDo why you don't work :/ -#FetchContent_Declare( -# kcoreaddons -# GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git -# GIT_TAG ${KF5_GIT_TAG}) -#FetchContent_MakeAvailable(kcoreaddons) -#___ToDo - -FetchContent_Declare( - kwidgetsaddons - GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git - GIT_TAG ${KF5_GIT_TAG}) - -FetchContent_MakeAvailable(kwidgetsaddons) - add_executable( ${PROJECT_NAME} tst_My_test.cpp diff --git a/tests/qttest/CMakeLists.txt b/tests/qttest/CMakeLists.txt index ea2fdbcd9..61dba73df 100644 --- a/tests/qttest/CMakeLists.txt +++ b/tests/qttest/CMakeLists.txt @@ -71,31 +71,31 @@ find_package( Include(FetchContent) -if(NOT DEFINED KF5_GIT_TAG) - set(KF5_GIT_TAG v5.76.0) - message(".. KF5_GIT_TAG :" ${KF5_GIT_TAG}) +if(DEFINED BUILD_KF5_YES) + + if(NOT DEFINED KF5_GIT_TAG) + set(KF5_GIT_TAG v5.76.0) + message(".. KF5_GIT_TAG :" ${KF5_GIT_TAG}) + endif() + + #---ToDo why you don't work :/ + FetchContent_Declare( + kcoreaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kcoreaddons) + #___ToDo + + FetchContent_Declare( + kwidgetsaddons + GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git + GIT_TAG ${KF5_GIT_TAG}) + FetchContent_MakeAvailable(kwidgetsaddons) +else() + find_package(KF5CoreAddons REQUIRED) + find_package(KF5WidgetsAddons REQUIRED) endif() -find_package(KF5CoreAddons REQUIRED) -#---ToDo why you don't work :/ -message(".. FetchContent_Declare kcoreaddons") -#FetchContent_Declare( -# kcoreaddons -# GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git -# GIT_TAG ${KF5_GIT_TAG}) -#message(".. FetchContent_MakeAvailable kcoreaddons") -#FetchContent_MakeAvailable(kcoreaddons) -#___ToDo - -message(".. FetchContent_Declare kwidgetsaddons") -FetchContent_Declare( - kwidgetsaddons - GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git - GIT_TAG ${KF5_GIT_TAG}) - -message(".. FetchContent_MakeAvailable kwidgetsaddons") -FetchContent_MakeAvailable(kwidgetsaddons) - enable_testing() add_executable(${PROJECT_NAME} tst_mytest.cpp)