Re: Qt 6.0 development and qelectrotech

MXE + cmake + shared libs.

Paths used for compilation and installation of QET
--------------------------------------------------
COMPIL_PREFIX              ./
INSTALL_PREFIX             ./
QET_BINARY_PATH            ./
QET_COMMON_COLLECTION_PATH ./elements/
QET_COMMON_TBT_PATH        ./titleblocks/
QET_LANG_PATH              ./l10n/
CMake Error at cmake/define_definitions.cmake:42 (if):
  if given arguments:

    "STRGREATER" ""

  Unknown arguments specified
Call Stack (most recent call first):
  CMakeLists.txt:79 (include)


-- Configuring incomplete, errors occurred!

So hack CMakeLists.txt & define_definitions.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0ff30a7b6..1d8249634 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -133,26 +133,4 @@ target_include_directories(
   )
 
install(TARGETS ${PROJECT_NAME})
-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/qelectrotech.desktop DESTINATION share/applications)
-install(FILES misc/x-qet-element.xml
-              misc/x-qet-project.xml
-              misc/x-qet-titleblock.xml
-              DESTINATION share/mime/application)
-install(FILES misc/x-qet-element.desktop
-              misc/x-qet-project.desktop
-              misc/x-qet-titleblock.desktop
-              DESTINATION share/mimelnk/application)
-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})
+
diff --git a/cmake/define_definitions.cmake b/cmake/define_definitions.cmake
index 659838dde..ce991851f 100644
--- a/cmake/define_definitions.cmake
+++ b/cmake/define_definitions.cmake
@@ -39,10 +39,7 @@ if(${QET_LANG_PATH} STRGREATER "")
   message("QET_LANG_PATH              " ${INSTALL_PREFIX}${QET_LANG_PATH})
   add_definitions(-DQET_LANG_PATH=${INSTALL_PREFIX}${QET_LANG_PATH})
endif()
-if(${QET_EXAMPLES_PATH} STRGREATER "")
-  message("QET_EXAMPLES_PATH          " ${INSTALL_PREFIX}${QET_EXAMPLES_PATH})
-  add_definitions(-DQET_EXAMPLES_PATH=${INSTALL_PREFIX}${QET_EXAMPLES_PATH})
-endif()
+
 
message("QET_LICENSE_PATH           " ${QET_LICENSE_PATH})
message("QET_MIME_XML_PATH          " ${QET_MIME_XML_PATH})

https://download.tuxfamily.org/qet/scorpio/test/bin.zip
Replace this bin in your program to test.

laurent@debian:~/test/bin$ tree
.
├── iconengines
│   └── qsvgicon.dll
├── imageformats
│   ├── qgif.dll
│   ├── qicns.dll
│   ├── qico.dll
│   ├── qjp2.dll
│   ├── qjpeg.dll
│   ├── qmng.dll
│   ├── qsvg.dll
│   ├── qtga.dll
│   ├── qtiff.dll
│   ├── qwbmp.dll
│   └── qwebp.dll
├── kwidgetsaddons5widgets.dll
├── libbs2b-0.dll
├── libbz2.dll
├── libcrypto-1_1-x64.dll
├── libffi-6.dll
├── libfontconfig-1.dll
├── libfreetype-6.dll
├── libgcc_s_seh-1.dll
├── libgcrypt-20.dll
├── libglib-2.0-0.dll
├── libgmp-10.dll
├── libgmpxx-4.dll
├── libgobject-2.0-0.dll
├── libgthread-2.0-0.dll
├── libharfbuzz-0.dll
├── libharfbuzz-icu-0.dll
├── libiconv-2.dll
├── libidn2-0.dll
├── libIlmThread-2_2-12.dll
├── libintl-8.dll
├── libjpeg-9.dll
├── libKF5CoreAddons.dll
├── libKF5WidgetsAddons.dll
├── libmenu5.dll
├── libogg-0.dll
├── libopenjp2.dll
├── libpcre16-0.dll
├── libpcre-1.dll
├── libpcre2-16-0.dll
├── libpcre2-8-0.dll
├── libpng16-16.dll
├── libsqlite3-0.dll
├── libssl-1_1-x64.dll
├── libstdc++-6.dll
├── libtasn1-6.dll
├── libtiff-5.dll
├── libtiffxx-5.dll
├── libwinpthread-1.dll
├── libxml2-2.dll
├── libzstd.dll
├── platforms
│   ├── qdirect2d.dll
│   ├── qminimal.dll
│   ├── qoffscreen.dll
│   └── qwindows.dll
├── platformthemes
│   └── qxdgdesktopportal.dll
├── printsupport
│   └── windowsprintersupport.dll
├── qelectrotech.exe
├── Qt5Concurrent.dll
├── Qt5Core.dll
├── Qt5Gui.dll
├── Qt5Help.dll
├── Qt5Network.dll
├── Qt5PrintSupport.dll
├── Qt5Sql.dll
├── Qt5Svg.dll
├── Qt5Widgets.dll
├── Qt5WinExtras.dll
├── Qt5Xml.dll
├── sqldrivers
│   └── qsqlite.dll
├── styles
│   └── qwindowsvistastyle.dll
└── zlib1.dll

7 directories, 73 files

@Simon: I saw a strange thing with cmake build in Windows, and linux, loading project is very slow like don't use futur?

06:05:31.944 Info: Start-up 
06:05:32.249 Info: debugging enabled: false 
06:05:32.253 Info: Qt library version: 5.15.2 
06:05:32.255 Info: Qt library location default prefix: "C:/Program Files/QElectroTech/bin" 
06:05:32.259 Info: Qt library location documentation: "C:/Program Files/QElectroTech/bin/doc" 
06:05:32.263 Info: Qt library location headers: "C:/Program Files/QElectroTech/bin/include" 
06:05:32.267 Info: Qt library location libraries: "C:/Program Files/QElectroTech/bin/lib" 
06:05:32.271 Info: Qt library location executables: "C:/Program Files/QElectroTech/bin/bin" 
06:05:32.275 Info: Qt library location Qt binaries: "C:/Program Files/QElectroTech/bin/bin" 
06:05:32.279 Info: Qt library location Qt plugins: "C:/Program Files/QElectroTech/bin/plugins" 
06:05:32.283 Info: Qt library location installed QML extensions: "C:/Program Files/QElectroTech/bin/imports" 
06:05:32.288 Info: Qt library location installed QML extensions: "C:/Program Files/QElectroTech/bin/qml" 
06:05:32.293 Info: Qt library location dependent Qt data: "C:/Program Files/QElectroTech/bin" 
06:05:32.297 Info: Qt library location independent Qt data: "C:/Program Files/QElectroTech/bin" 
06:05:32.302 Info: Qt library location translation: "C:/Program Files/QElectroTech/bin/translations" 
06:05:32.306 Info: Qt library location examples: "C:/Program Files/QElectroTech/bin/examples" 
06:05:32.311 Info: Qt library location Qt testcases: "C:/Program Files/QElectroTech/bin/tests" 
06:05:32.315 Info: "GitRevision a4adcf4865a1b8ddf00a0e1ab40ac7ea5406abc1" 
06:05:32.318 Info: "QElectroTech V 0.90-DEV" 
06:05:32.320 Info: "Compilation : GCC 9.3.0" 
06:05:32.322 Info: "Built with Qt 5.15.2 - Date : Mar 20 2021 : 16:26:06" 
06:05:32.327 Info: "Run with Qt 5.15.2 using 8 thread(s)" 
06:05:32.330 Info: "CPU : NAME                                      \r\r\nINTEL(R) CORE(TM) I7-8550U CPU @ 1.80GHZ  \r\r\n\r\r\n" 
06:05:32.335 Info: "RAM Total : 16199 MB" 
06:05:32.337 Info: "RAM Available : 12438 MB" 
06:05:32.339 Info: "GPU : VideoProcessor                \r\r\nIntel(R) UHD Graphics Family  \r\r\n\r\r\n" 
06:05:32.345 Info: "GPU RAM : RAM Total : AdapterRAM  \r\r\n1073741824  \r\r\n\r\r\n B" 
06:05:32.349 Info: "OS : winnt  - x86_64 - Version : Windows 10 Version 2009 - Kernel : 10.0.19042" 
06:05:32.354 Info: *** Qt screens *** 
06:05:32.356 Info: "( 1 : 3840 x 2160 )" 
06:05:32.621 Info: Elements collection reload 
06:05:37.897 Info: Elements collection finished to be loaded

77 (edited by De-Backer 2021-03-21 08:57:34)

Re: Qt 6.0 development and qelectrotech

scorpio810 wrote:

@Simon: I saw a strange thing with cmake build in Windows, and linux, loading project is very slow like don't use futur?

So that something is missing in Cmake file, that is there in Qmake? Or so.

Qmake creates makefiles for the compiler.

for Cmake
you can generate makefiles explicitly using the -G option.

Edit :
Qmake => makefiles
Cmake => Ninja
could this be it?

Re: Qt 6.0 development and qelectrotech

mkdir build && cd build
export PATH=/home/laurent/digikam2/project/bundles/mxe/build.win64/usr/bin:$PATH
/home/laurent/digikam2/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-cmake .. -G Ninja
time ninja -j48

cmake + ninja
time ninja -j48 (shared)
real    0m10,666s


cmake + make
time make -j48  (shared)
real    0m15,390s

qmake + make (static)
time make -j48
real    0m39,842s


Static exe =34Mio
shared libs +exe = 103Mio


I haven't seen any big improvements with shared libs, and you?

Ninja build
https://download.tuxfamily.org/qet/scorpio/test/ninja/

Re: Qt 6.0 development and qelectrotech

https://fossies.org/linux/texstudio/.gi … age_win.sh

laurent@debian:~/Qet-svn/git/cmake/build$ /home/laurent/digikam2/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-peldd qelectrotech.exe -a -w d3d11.dll -w dxgi.dll|grep dll|xargs cp -t .
laurent@debian:~/Qet-svn/git/cmake/build$ tree | grep dll
│   ├── kwidgetsaddons5widgets.dll
│   ├── libgmock.dll
│   ├── libgmock_main.dll
│   ├── libgtest.dll
│   ├── libgtest_main.dll
│   ├── libKF5CoreAddons.dll
│   └── libKF5WidgetsAddons.dll
│   │   │       │   └── pugixml_dll.rc.res
│   │   ├── libpugixml.dll
│   │   ├── libpugixml.dll.a
│   │   │   ├── pugixml_dll.rc
│   ├── libgmock.dll.a
│   ├── libgmock_main.dll.a
│   ├── libgtest.dll.a
│   ├── libgtest_main.dll.a
│   ├── libKF5CoreAddons.dll.a
│   └── libKF5WidgetsAddons.dll.a
├── libbz2.dll
├── libcrypto-1_1-x64.dll
├── libfreetype-6.dll
├── libgcc_s_seh-1.dll
├── libglib-2.0-0.dll
├── libharfbuzz-0.dll
├── libiconv-2.dll
├── libintl-8.dll
├── libKF5CoreAddons.dll
├── libKF5WidgetsAddons.dll
├── libpcre-1.dll
├── libpcre2-16-0.dll
├── libpng16-16.dll
├── libssl-1_1-x64.dll
├── libstdc++-6.dll
├── libwinpthread-1.dll
├── libzstd.dll
├── Qt5Concurrent.dll
├── Qt5Core.dll
├── Qt5Gui.dll
├── Qt5Network.dll
├── Qt5PrintSupport.dll
├── Qt5Sql.dll
├── Qt5Svg.dll
├── Qt5Widgets.dll
├── Qt5Xml.dll
└── zlib1.dll

great! but forgot libsqlite3-0.dll

Maybe add
find_package(SQLite3 REQUIRED)


laurent@debian:~/Qet-svn/git/cmake/build$ /home/laurent/digikam2/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-objdump -p  qelectrotech.exe | grep "DLL Name" | awk '{print $3}'
ADVAPI32.dll
KERNEL32.dll
msvcrt.dll
libgcc_s_seh-1.dll
libstdc++-6.dll
Qt5Concurrent.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Network.dll
Qt5PrintSupport.dll
Qt5Sql.dll
Qt5Svg.dll
Qt5Widgets.dll
Qt5Xml.dll
libKF5CoreAddons.dll
libKF5WidgetsAddons.dll

 laurent@debian:~/Qet-svn/git/cmake/build$ strings qelectrotech.exe | grep -i '\.dll$'
ADVAPI32.dll
KERNEL32.dll
msvcrt.dll
libgcc_s_seh-1.dll
libstdc++-6.dll
Qt5Concurrent.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Network.dll
Qt5PrintSupport.dll
Qt5Sql.dll
Qt5Svg.dll
Qt5Widgets.dll
Qt5Xml.dll
libKF5CoreAddons.dll
libKF5WidgetsAddons.dll

Try ninja install

Re: Qt 6.0 development and qelectrotech

Qt 6 Reaches Feature Parity with Qt 5 - the Qt 6.2 Alpha Released

https://www.qt.io/blog/qt-6.2-alpha-released

the porting guide https://doc.qt.io/qt-6/portingguide.html

Changes to Qt Modules https://doc.qt.io/qt-6/modulechanges.html
Concurrent,GUI,Core,Print Support ,SQL,SVG,Test,Widgets,XML,....

Re: Qt 6.0 development and qelectrotech

https://github.com/mxe/mxe/issues/2594