diff --git a/CMakeLists.txt b/CMakeLists.txt index 33fa0bb9c..157ff4ca6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,10 +19,10 @@ include(cmake/hoto_update_cmake_message.cmake) cmake_minimum_required(VERSION 3.14...3.19 FATAL_ERROR) project(qelectrotech - VERSION 0.9.0 - DESCRIPTION "QET is a CAD/CAE editor focusing on schematics drawing features." - HOMEPAGE_URL "https://qelectrotech.org/" - LANGUAGES CXX) + VERSION 0.100.1 + DESCRIPTION "QET is a CAD/CAE editor focusing on schematics drawing features." + HOMEPAGE_URL "https://qelectrotech.org/" + LANGUAGES CXX) include(cmake/copyright_message.cmake) @@ -31,8 +31,8 @@ set(QET_DIR ${PROJECT_SOURCE_DIR}) # Add sub directories option(PACKAGE_TESTS "Build the tests" ON) if(PACKAGE_TESTS) - message("Add sub directory tests") - add_subdirectory(tests) + message("Add sub directory tests") + add_subdirectory(tests) endif() include(cmake/paths_compilation_installation.cmake) @@ -46,31 +46,31 @@ include(cmake/fetch_pugixml.cmake) include(cmake/qet_compilation_vars.cmake) set(CMAKE_INCLUDE_CURRENT_DIR ON) - set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) - SET(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package( - QT - NAMES - Qt5 - COMPONENTS - ${QET_COMPONENTS} - REQUIRED - ) + QT + NAMES + Qt5 + COMPONENTS + ${QET_COMPONENTS} + REQUIRED +) find_package( - Qt${QT_VERSION_MAJOR} - COMPONENTS - ${QET_COMPONENTS} - REQUIRED) + Qt${QT_VERSION_MAJOR} + COMPONENTS + ${QET_COMPONENTS} + REQUIRED) + find_package(SQLite3 REQUIRED) set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui) + qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES}) set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${QET_DIR}/lang") qt5_add_translation(QM_FILES ${TS_FILES}) @@ -78,78 +78,91 @@ qt5_add_translation(QM_FILES ${TS_FILES}) # als laatse include(cmake/define_definitions.cmake) -add_executable( - ${PROJECT_NAME} - ${QET_RES_FILES} - ${QET_SRC_FILES} - ${QM_FILES} - ${QET_DIR}/qelectrotech.qrc - ) +# On Windows, WIN32 sets /SUBSYSTEM:WINDOWS to suppress the console window. +# Qt automatically links qtmain.lib which provides the WinMain entry point, +# so no source code change is needed. +if(WIN32) + add_executable( + ${PROJECT_NAME} + WIN32 + ${QET_RES_FILES} + ${QET_SRC_FILES} + ${QM_FILES} + ${QET_DIR}/qelectrotech.qrc + ) +else() + add_executable( + ${PROJECT_NAME} + ${QET_RES_FILES} + ${QET_SRC_FILES} + ${QM_FILES} + ${QET_DIR}/qelectrotech.qrc + ) +endif() target_link_libraries( - ${PROJECT_NAME} - PUBLIC - PRIVATE - pugixml::pugixml - SingleApplication::SingleApplication - SQLite::SQLite3 - ${KF5_PRIVATE_LIBRARIES} - ${QET_PRIVATE_LIBRARIES} - ) + ${PROJECT_NAME} + PUBLIC + PRIVATE + pugixml::pugixml + SingleApplication::SingleApplication + SQLite::SQLite3 + ${KF5_PRIVATE_LIBRARIES} + ${QET_PRIVATE_LIBRARIES} +) 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}/pugixml/src - ${QET_DIR}/sources/dataBase - ${QET_DIR}/sources/dataBase/ui - ${QET_DIR}/sources/factory/ui - ${QET_DIR}/sources/print - ) + ${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}/pugixml/src + ${QET_DIR}/sources/dataBase + ${QET_DIR}/sources/dataBase/ui + ${QET_DIR}/sources/factory/ui + ${QET_DIR}/sources/print +) install(TARGETS ${PROJECT_NAME}) + if (NOT MINGW) - -install(DIRECTORY ico/breeze-icons/16x16 DESTINATION ${QET_ICONS_PATH}) -install(DIRECTORY ico/breeze-icons/22x22 DESTINATION ${QET_ICONS_PATH}) -install(DIRECTORY ico/breeze-icons/32x32 DESTINATION ${QET_ICONS_PATH}) -install(DIRECTORY ico/breeze-icons/48x48 DESTINATION ${QET_ICONS_PATH}) -install(DIRECTORY ico/breeze-icons/64x64 DESTINATION ${QET_ICONS_PATH}) -install(DIRECTORY ico/breeze-icons/128x128 DESTINATION ${QET_ICONS_PATH}) -install(DIRECTORY ico/breeze-icons/256x256 DESTINATION ${QET_ICONS_PATH}) -install(DIRECTORY elements DESTINATION share/qelectrotech) -install(DIRECTORY examples DESTINATION share/qelectrotech) -install(DIRECTORY titleblocks DESTINATION share/qelectrotech) -install(FILES LICENSE ELEMENTS.LICENSE CREDIT README ChangeLog DESTINATION share/doc/qelectrotech) -install(FILES misc/org.qelectrotech.qelectrotech.desktop DESTINATION share/applications) -install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages) -install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH}) -install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH}) - + install(DIRECTORY ico/breeze-icons/16x16 DESTINATION ${QET_ICONS_PATH}) + install(DIRECTORY ico/breeze-icons/22x22 DESTINATION ${QET_ICONS_PATH}) + install(DIRECTORY ico/breeze-icons/32x32 DESTINATION ${QET_ICONS_PATH}) + install(DIRECTORY ico/breeze-icons/48x48 DESTINATION ${QET_ICONS_PATH}) + install(DIRECTORY ico/breeze-icons/64x64 DESTINATION ${QET_ICONS_PATH}) + install(DIRECTORY ico/breeze-icons/128x128 DESTINATION ${QET_ICONS_PATH}) + install(DIRECTORY ico/breeze-icons/256x256 DESTINATION ${QET_ICONS_PATH}) + install(DIRECTORY elements DESTINATION share/qelectrotech) + install(DIRECTORY examples DESTINATION share/qelectrotech) + install(DIRECTORY titleblocks DESTINATION share/qelectrotech) + install(FILES LICENSE ELEMENTS.LICENSE CREDIT README ChangeLog DESTINATION share/doc/qelectrotech) + install(FILES misc/org.qelectrotech.qelectrotech.desktop DESTINATION share/applications) + install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages) + install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH}) + install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH}) endif()