From 6e5aa806fd2f7c3105ba01528d739ab8511b3719 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Wed, 15 Mar 2023 23:26:44 +0100 Subject: [PATCH 01/15] Start --- AppVeyorBuild.bat | 5 ---- clu/meson.build | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 clu/meson.build diff --git a/AppVeyorBuild.bat b/AppVeyorBuild.bat index f3c39301e..66631227e 100644 --- a/AppVeyorBuild.bat +++ b/AppVeyorBuild.bat @@ -157,16 +157,11 @@ set path=%mingw%\bin;%ai%\bin\x86;%sevenzip%;C:\msys64\mingw64\bin set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% cmake ..\ -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% -rem C:\Windows\System32\notepad.exe - if %errorlevel% neq 0 exit /b %errorlevel% -cmake -LAH - mingw32-make.exe install if %errorlevel% neq 0 exit /b %errorlevel% - "%EXEPROXY%\exeproxy.exe" exeproxy-copy ..\install\ncl.exe npackdcl.exe if %errorlevel% neq 0 exit /b %errorlevel% diff --git a/clu/meson.build b/clu/meson.build new file mode 100644 index 000000000..ceab4598c --- /dev/null +++ b/clu/meson.build @@ -0,0 +1,69 @@ +project('clu', 'c', 'cpp') + +qt5_mod = import('qt5') + +deps =[ + dependency('quazip1-qt5'), + dependency('qt5', modules : 'Sql'), + dependency('qt5', modules : 'Xml'), + dependency('qt5', modules : 'Core') +] + +CXX = meson.get_compiler('cpp') +libs_you_need_to_link = ['userenv', 'winmm', 'ole32', 'uuid', 'wininet', 'psapi', 'version', + 'shlwapi', 'msi', 'netapi32', 'Ws2_32', 'taskschd'] +foreach lib_name : libs_you_need_to_link + deps += CXX.find_library(lib_name, dirs : ['C:\\msys64\\mingw64\\lib']) +endforeach + +add_global_arguments('-std=c++11', '-DUNICODE', '-D_UNICODE', '-DNPACKD_VERSION="1.27.0.0"', + '-Wall', '-Wwrite-strings', '-Wextra', '-Wno-unused-parameter', '-Wno-cast-function-type', '-Wduplicated-cond', + '-Wduplicated-branches', '-Wlogical-op', + language : 'cpp') + +processed = qt5_mod.preprocess( + # Only headers that need moc should be put here + moc_headers : ['../npackdg/src/job.h', '../npackdg/src/installedpackages.h', '../npackdg/src/clprogress.h'] + # must have #include"moc_helperFile.cpp" + #moc_sources : [] +) + +dir = '../npackdg/src' +src = ['src/main.cpp', + 'src/app.cpp', + '../npackdg/src/job.cpp', '../npackdg/src/installedpackages.cpp', '../npackdg/src/clprogress.cpp', + dir / 'package.cpp', + dir / 'license.cpp', + dir / 'dependency.cpp', + dir / 'abstractrepository.cpp', + dir / 'repository.cpp', + dir / 'packageversion.cpp', + dir / 'packageversionfile.cpp', + dir / 'installedpackageversion.cpp', + dir / 'windowsregistry.cpp', + dir / 'abstractthirdpartypm.cpp', + dir / 'controlpanelthirdpartypm.cpp', + dir / 'commandline.cpp', + dir / 'wpmutils.cpp', + dir / 'hrtimer.cpp', + dir / 'version.cpp', + dir / 'installoperation.cpp', + dir / 'dbrepository.cpp', + dir / 'downloader.cpp', + dir / 'repositoryxmlhandler.cpp', + dir / 'installedpackagesthirdpartypm.cpp', + dir / 'wellknownprogramsthirdpartypm.cpp', + dir / 'msithirdpartypm.cpp', + dir / 'mysqlquery.cpp', + dir / 'packageutils.cpp', + dir / 'wuathirdpartypm.cpp', + dir / 'wuapi_i.c', + dir / 'comobject.cpp', + dir / 'sqlutils.cpp', + dir / 'dag.cpp', + dir / 'lockedfiles.cpp', + dir / 'threadpool.cpp', + dir / 'deptask.cpp', + 'C:\\Users\\User\\Documents\\npackd-cpp\\npackdcl\\src' / 'commandlinemessagehandler.cpp', processed] +incdir = include_directories('../npackdg/src', '../npackdcl/src') +executable('clu', src, dependencies: deps, include_directories : incdir) From a4090572130a3712a7e889c39938d975829620c0 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Thu, 16 Mar 2023 00:04:37 +0100 Subject: [PATCH 02/15] some improvements --- clu/meson.build | 116 ++++++++++++++++++++++++++++++------------------ 1 file changed, 72 insertions(+), 44 deletions(-) diff --git a/clu/meson.build b/clu/meson.build index ceab4598c..e57b78fb0 100644 --- a/clu/meson.build +++ b/clu/meson.build @@ -1,5 +1,6 @@ -project('clu', 'c', 'cpp') +project('clu', 'c', 'cpp', default_options : ['c_std=c11', 'cpp_std=c++11']) +fs = import('fs') qt5_mod = import('qt5') deps =[ @@ -10,60 +11,87 @@ deps =[ ] CXX = meson.get_compiler('cpp') -libs_you_need_to_link = ['userenv', 'winmm', 'ole32', 'uuid', 'wininet', 'psapi', 'version', - 'shlwapi', 'msi', 'netapi32', 'Ws2_32', 'taskschd'] -foreach lib_name : libs_you_need_to_link - deps += CXX.find_library(lib_name, dirs : ['C:\\msys64\\mingw64\\lib']) +foreach lib_name : ['userenv', 'winmm', 'ole32', 'uuid', 'wininet', 'psapi', 'version', + 'shlwapi', 'msi', 'netapi32', 'Ws2_32', 'taskschd'] + deps += CXX.find_library(lib_name) endforeach -add_global_arguments('-std=c++11', '-DUNICODE', '-D_UNICODE', '-DNPACKD_VERSION="1.27.0.0"', +version = fs.read('../appveyor.yml').strip().split('\n')[0].replace('version:', '').replace('.{build}', '').strip() + +#TODO NPACKD_VERSION_MAJOR, MINOR, PATCH, TWEAK + +# -flto does not work (01.01.2020) probably because Qt is not compiled with LTO enabled +# -fno-exceptions -fno-unwind-tables do not reduce the binary size at all (05.01.2020) +add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', + '-D_WIN32_WINNT=0x0601', # Windows 7 + '-DNPACKD_VERSION="' + version + '"', '-Wall', '-Wwrite-strings', '-Wextra', '-Wno-unused-parameter', '-Wno-cast-function-type', '-Wduplicated-cond', '-Wduplicated-branches', '-Wlogical-op', + '-Wno-error=cast-qual', '-Wno-unused-local-typedefs', '-Wno-unused-variable', language : 'cpp') +# TODO static builds +# -static -static-libstdc++ -static-libgcc +# qtpcre2 zstd z +# -D QUAZIP_STATIC=1 + +# TODO +# install(FILES ../LICENSE.txt DESTINATION ${CMAKE_INSTALL_PREFIX}) + + +# TODO -g -Os + +# TODO +#configure_file(src/app.rc.in ${CMAKE_CURRENT_BINARY_DIR}/clu.rc @ONLY) +#file(COPY ../npackdg/src/app.ico DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +#list(APPEND CLU_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/clu.rc) + + +add_project_link_arguments('-Wl,-Map,clu.map', language: 'cpp') + processed = qt5_mod.preprocess( # Only headers that need moc should be put here - moc_headers : ['../npackdg/src/job.h', '../npackdg/src/installedpackages.h', '../npackdg/src/clprogress.h'] - # must have #include"moc_helperFile.cpp" - #moc_sources : [] + moc_headers : ['../npackdg/src/job.h', '../npackdg/src/installedpackages.h', '../npackdg/src/clprogress.h'] ) -dir = '../npackdg/src' src = ['src/main.cpp', 'src/app.cpp', - '../npackdg/src/job.cpp', '../npackdg/src/installedpackages.cpp', '../npackdg/src/clprogress.cpp', - dir / 'package.cpp', - dir / 'license.cpp', - dir / 'dependency.cpp', - dir / 'abstractrepository.cpp', - dir / 'repository.cpp', - dir / 'packageversion.cpp', - dir / 'packageversionfile.cpp', - dir / 'installedpackageversion.cpp', - dir / 'windowsregistry.cpp', - dir / 'abstractthirdpartypm.cpp', - dir / 'controlpanelthirdpartypm.cpp', - dir / 'commandline.cpp', - dir / 'wpmutils.cpp', - dir / 'hrtimer.cpp', - dir / 'version.cpp', - dir / 'installoperation.cpp', - dir / 'dbrepository.cpp', - dir / 'downloader.cpp', - dir / 'repositoryxmlhandler.cpp', - dir / 'installedpackagesthirdpartypm.cpp', - dir / 'wellknownprogramsthirdpartypm.cpp', - dir / 'msithirdpartypm.cpp', - dir / 'mysqlquery.cpp', - dir / 'packageutils.cpp', - dir / 'wuathirdpartypm.cpp', - dir / 'wuapi_i.c', - dir / 'comobject.cpp', - dir / 'sqlutils.cpp', - dir / 'dag.cpp', - dir / 'lockedfiles.cpp', - dir / 'threadpool.cpp', - dir / 'deptask.cpp', - 'C:\\Users\\User\\Documents\\npackd-cpp\\npackdcl\\src' / 'commandlinemessagehandler.cpp', processed] + '../npackdg/src/job.cpp', + '../npackdg/src/installedpackages.cpp', + '../npackdg/src/clprogress.cpp', + '../npackdg/src/package.cpp', + '../npackdg/src/license.cpp', + '../npackdg/src/dependency.cpp', + '../npackdg/src/abstractrepository.cpp', + '../npackdg/src/repository.cpp', + '../npackdg/src/packageversion.cpp', + '../npackdg/src/packageversionfile.cpp', + '../npackdg/src/installedpackageversion.cpp', + '../npackdg/src/windowsregistry.cpp', + '../npackdg/src/abstractthirdpartypm.cpp', + '../npackdg/src/controlpanelthirdpartypm.cpp', + '../npackdg/src/commandline.cpp', + '../npackdg/src/wpmutils.cpp', + '../npackdg/src/hrtimer.cpp', + '../npackdg/src/version.cpp', + '../npackdg/src/installoperation.cpp', + '../npackdg/src/dbrepository.cpp', + '../npackdg/src/downloader.cpp', + '../npackdg/src/repositoryxmlhandler.cpp', + '../npackdg/src/installedpackagesthirdpartypm.cpp', + '../npackdg/src/wellknownprogramsthirdpartypm.cpp', + '../npackdg/src/msithirdpartypm.cpp', + '../npackdg/src/mysqlquery.cpp', + '../npackdg/src/packageutils.cpp', + '../npackdg/src/wuathirdpartypm.cpp', + '../npackdg/src/wuapi_i.c', + '../npackdg/src/comobject.cpp', + '../npackdg/src/sqlutils.cpp', + '../npackdg/src/dag.cpp', + '../npackdg/src/lockedfiles.cpp', + '../npackdg/src/threadpool.cpp', + '../npackdg/src/deptask.cpp', + '../npackdcl/src/commandlinemessagehandler.cpp', processed] + incdir = include_directories('../npackdg/src', '../npackdcl/src') executable('clu', src, dependencies: deps, include_directories : incdir) From 3285471f7d5ee04bc631ebcca2a61030a011a5b7 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Thu, 16 Mar 2023 22:25:21 +0100 Subject: [PATCH 03/15] shared build is OK now --- clu/meson.build | 49 ++++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/clu/meson.build b/clu/meson.build index e57b78fb0..c130de7cd 100644 --- a/clu/meson.build +++ b/clu/meson.build @@ -1,13 +1,14 @@ -project('clu', 'c', 'cpp', default_options : ['c_std=c11', 'cpp_std=c++11']) +project('clu', 'c', 'cpp', default_options: ['c_std=c11', 'cpp_std=c++11']) fs = import('fs') qt5_mod = import('qt5') +windows = import('windows') deps =[ dependency('quazip1-qt5'), - dependency('qt5', modules : 'Sql'), - dependency('qt5', modules : 'Xml'), - dependency('qt5', modules : 'Core') + dependency('qt5', modules: 'Sql'), + dependency('qt5', modules: 'Xml'), + dependency('qt5', modules: 'Core') ] CXX = meson.get_compiler('cpp') @@ -17,8 +18,7 @@ foreach lib_name : ['userenv', 'winmm', 'ole32', 'uuid', 'wininet', 'psapi', 've endforeach version = fs.read('../appveyor.yml').strip().split('\n')[0].replace('version:', '').replace('.{build}', '').strip() - -#TODO NPACKD_VERSION_MAJOR, MINOR, PATCH, TWEAK +version_parts = version.split('.') # -flto does not work (01.01.2020) probably because Qt is not compiled with LTO enabled # -fno-exceptions -fno-unwind-tables do not reduce the binary size at all (05.01.2020) @@ -28,7 +28,7 @@ add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', '-Wall', '-Wwrite-strings', '-Wextra', '-Wno-unused-parameter', '-Wno-cast-function-type', '-Wduplicated-cond', '-Wduplicated-branches', '-Wlogical-op', '-Wno-error=cast-qual', '-Wno-unused-local-typedefs', '-Wno-unused-variable', - language : 'cpp') + language: 'cpp') # TODO static builds # -static -static-libstdc++ -static-libgcc @@ -36,22 +36,30 @@ add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', # -D QUAZIP_STATIC=1 # TODO -# install(FILES ../LICENSE.txt DESTINATION ${CMAKE_INSTALL_PREFIX}) - +install_data('../LICENSE.txt') # TODO -g -Os -# TODO -#configure_file(src/app.rc.in ${CMAKE_CURRENT_BINARY_DIR}/clu.rc @ONLY) -#file(COPY ../npackdg/src/app.ico DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -#list(APPEND CLU_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/clu.rc) - - -add_project_link_arguments('-Wl,-Map,clu.map', language: 'cpp') +conf = configuration_data() +conf.set('NPACKD_VERSION_MAJOR', version_parts.length() > 0 ? version_parts[0] : '0') +conf.set('NPACKD_VERSION_MINOR', version_parts.length() > 1 ? version_parts[1] : '0') +conf.set('NPACKD_VERSION_PATCH', version_parts.length() > 2 ? version_parts[2] : '0') +conf.set('NPACKD_VERSION_TWEAK', version_parts.length() > 3 ? version_parts[3] : '0') +conf.set('OUTPUT_FILE_NAME', meson.project_name() + '.exe') +configure_file(input: 'src/app.rc.in', + output: meson.project_name() + '.rc', + configuration: conf) +configure_file(input: '../npackdg/src/app.ico', + output: 'app.ico', copy: true) +rc = windows.compile_resources(meson.current_build_dir() / meson.project_name() + '.rc') + +add_project_link_arguments('-Wl,-Map,' + meson.project_name() + '.map', language: 'cpp') processed = qt5_mod.preprocess( # Only headers that need moc should be put here - moc_headers : ['../npackdg/src/job.h', '../npackdg/src/installedpackages.h', '../npackdg/src/clprogress.h'] + moc_headers : ['../npackdg/src/job.h', + '../npackdg/src/installedpackages.h', + '../npackdg/src/clprogress.h'] ) src = ['src/main.cpp', @@ -91,7 +99,10 @@ src = ['src/main.cpp', '../npackdg/src/lockedfiles.cpp', '../npackdg/src/threadpool.cpp', '../npackdg/src/deptask.cpp', - '../npackdcl/src/commandlinemessagehandler.cpp', processed] + '../npackdcl/src/commandlinemessagehandler.cpp', + processed, rc] incdir = include_directories('../npackdg/src', '../npackdcl/src') -executable('clu', src, dependencies: deps, include_directories : incdir) +executable(meson.project_name(), src, dependencies: deps, include_directories: incdir, + install: true) + From 9f8e1a9f1b9166fcd592fad1c3e2ed8a6a0df8f3 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Thu, 16 Mar 2023 22:34:51 +0100 Subject: [PATCH 04/15] -g --- clu/meson.build | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/clu/meson.build b/clu/meson.build index c130de7cd..2e6f97af2 100644 --- a/clu/meson.build +++ b/clu/meson.build @@ -27,7 +27,7 @@ add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', '-DNPACKD_VERSION="' + version + '"', '-Wall', '-Wwrite-strings', '-Wextra', '-Wno-unused-parameter', '-Wno-cast-function-type', '-Wduplicated-cond', '-Wduplicated-branches', '-Wlogical-op', - '-Wno-error=cast-qual', '-Wno-unused-local-typedefs', '-Wno-unused-variable', + '-Wno-error=cast-qual', '-Wno-unused-local-typedefs', '-Wno-unused-variable', '-g', language: 'cpp') # TODO static builds @@ -35,11 +35,8 @@ add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', # qtpcre2 zstd z # -D QUAZIP_STATIC=1 -# TODO install_data('../LICENSE.txt') -# TODO -g -Os - conf = configuration_data() conf.set('NPACKD_VERSION_MAJOR', version_parts.length() > 0 ? version_parts[0] : '0') conf.set('NPACKD_VERSION_MINOR', version_parts.length() > 1 ? version_parts[1] : '0') From e5f1f4fb7c71c254f2cd5999ba06ebda9ca165a5 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Thu, 16 Mar 2023 22:49:44 +0100 Subject: [PATCH 05/15] NpackdCL --- npackdcl/meson.build | 115 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 npackdcl/meson.build diff --git a/npackdcl/meson.build b/npackdcl/meson.build new file mode 100644 index 000000000..403f47772 --- /dev/null +++ b/npackdcl/meson.build @@ -0,0 +1,115 @@ +project('npackdcl', 'c', 'cpp', default_options: ['c_std=c11', 'cpp_std=c++11']) + +fs = import('fs') +qt5_mod = import('qt5') +windows = import('windows') + +deps =[ + dependency('quazip1-qt5'), + dependency('qt5', modules: 'Sql'), + dependency('qt5', modules: 'Xml'), + dependency('qt5', modules: 'Core') +] + +CXX = meson.get_compiler('cpp') +foreach lib_name : ['userenv', 'winmm', 'ole32', 'uuid', 'wininet', 'psapi', 'version', + 'shlwapi', 'msi', 'netapi32', 'Ws2_32', 'taskschd'] + deps += CXX.find_library(lib_name) +endforeach + +version = fs.read('../appveyor.yml').strip().split('\n')[0].replace('version:', '').replace('.{build}', '').strip() +version_parts = version.split('.') + +# -flto does not work (01.01.2020) probably because Qt is not compiled with LTO enabled +# -fno-exceptions -fno-unwind-tables do not reduce the binary size at all (05.01.2020) +add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', + '-D_WIN32_WINNT=0x0601', # Windows 7 + '-DNPACKD_VERSION="' + version + '"', + '-Wall', '-Wwrite-strings', '-Wextra', '-Wno-unused-parameter', '-Wno-cast-function-type', '-Wduplicated-cond', + '-Wduplicated-branches', '-Wlogical-op', + '-Wno-error=cast-qual', '-Wno-unused-local-typedefs', '-Wno-unused-variable', '-g', + language: 'cpp') + +# TODO static builds +# -static -static-libstdc++ -static-libgcc +# qtpcre2 zstd z +# -D QUAZIP_STATIC=1 + +install_data('../LICENSE.txt') +install_data('../CrystalIcons_LICENSE.txt') + +conf = configuration_data() +conf.set('NPACKD_VERSION_MAJOR', version_parts.length() > 0 ? version_parts[0] : '0') +conf.set('NPACKD_VERSION_MINOR', version_parts.length() > 1 ? version_parts[1] : '0') +conf.set('NPACKD_VERSION_PATCH', version_parts.length() > 2 ? version_parts[2] : '0') +conf.set('NPACKD_VERSION_TWEAK', version_parts.length() > 3 ? version_parts[3] : '0') +conf.set('OUTPUT_FILE_NAME', meson.project_name() + '.exe') +configure_file(input: 'src/app.rc.in', + output: meson.project_name() + '.rc', + configuration: conf) +configure_file(input: '../npackdg/src/app.ico', + output: 'app.ico', copy: true) +rc = windows.compile_resources(meson.current_build_dir() / meson.project_name() + '.rc') + +add_project_link_arguments('-Wl,-Map,' + meson.project_name() + '.map', language: 'cpp') + +processed = qt5_mod.preprocess( + # Only headers that need moc should be put here + moc_headers : ['src/app.h', '../npackdg/src/job.h', + '../npackdg/src/installedpackages.h', '../npackdg/src/visiblejobs.h', + '../npackdg/src/clprogress.h'] +) + +# TODO option(NPACKD_ADMIN "Force admin right on program" TRUE) +#if(NPACKD_ADMIN) +# target_compile_definitions(npackdcl PRIVATE -D NPACKD_ADMIN=1) +#else() +# target_compile_definitions(npackdcl PRIVATE -D NPACKD_ADMIN=0) +#endif() + +src = ['../npackdg/src/visiblejobs.cpp', + '../npackdg/src/repository.cpp', + '../npackdg/src/version.cpp', + '../npackdg/src/packageversionfile.cpp', + '../npackdg/src/package.cpp', + '../npackdg/src/packageversion.cpp', + '../npackdg/src/job.cpp', + '../npackdg/src/installoperation.cpp', + '../npackdg/src/dependency.cpp', + '../npackdg/src/wpmutils.cpp', + '../npackdg/src/downloader.cpp', + '../npackdg/src/license.cpp', + '../npackdg/src/windowsregistry.cpp', + '../npackdg/src/commandline.cpp', + '../npackdg/src/installedpackages.cpp', + '../npackdg/src/installedpackageversion.cpp', + '../npackdg/src/clprogress.cpp', + '../npackdg/src/dbrepository.cpp', + '../npackdg/src/abstractrepository.cpp', + '../npackdg/src/abstractthirdpartypm.cpp', + '../npackdg/src/msithirdpartypm.cpp', + '../npackdg/src/controlpanelthirdpartypm.cpp', + '../npackdg/src/wellknownprogramsthirdpartypm.cpp', + '../npackdg/src/hrtimer.cpp', + '../npackdg/src/repositoryxmlhandler.cpp', + '../npackdg/src/mysqlquery.cpp', + '../npackdg/src/installedpackagesthirdpartypm.cpp', + '../npackdg/src/packageutils.cpp', + '../npackdg/src/wuathirdpartypm.cpp', + '../npackdg/src/wuapi_i.c', + '../npackdg/src/comobject.cpp', + '../npackdg/src/dismthirdpartypm.cpp', + '../npackdg/src/sqlutils.cpp', + '../npackdg/src/dag.cpp', + '../npackdg/src/deptask.cpp', + '../npackdg/src/threadpool.cpp', + '../npackdg/src/lockedfiles.cpp', + 'src/commandlinemessagehandler.cpp', + 'src/main.cpp', + 'src/app.cpp', + processed, rc] + +incdir = include_directories('../npackdg/src', 'src') +executable(meson.project_name(), src, dependencies: deps, include_directories: incdir, + install: true) + From 4713c6ae390400f96666ab92b3d9018fbed41473 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Thu, 16 Mar 2023 23:43:50 +0100 Subject: [PATCH 06/15] shared build for Npackd is OK now --- npackdg/meson.build | 207 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 npackdg/meson.build diff --git a/npackdg/meson.build b/npackdg/meson.build new file mode 100644 index 000000000..f8aa4d807 --- /dev/null +++ b/npackdg/meson.build @@ -0,0 +1,207 @@ +project('npackdg', 'c', 'cpp', default_options: ['c_std=c11', 'cpp_std=c++11']) + +fs = import('fs') +qt5_mod = import('qt5') +windows = import('windows') + +deps =[ + dependency('quazip1-qt5'), + dependency('qt5', modules: 'Gui'), + dependency('qt5', modules: 'Svg'), + dependency('qt5', modules: 'Widgets'), + dependency('qt5', modules: 'WinExtras'), +# TODO dependency('qt5', modules: 'LinguistTools'), +# TODO dependency('qt5', modules: 'FontDatabaseSupport'), +# TODO dependency('qt5', modules: 'QSvgIconPlugin'), +# TODO dependency('qt5', modules: 'QSvgPlugin'), + dependency('qt5', modules: 'Sql'), + dependency('qt5', modules: 'Xml'), + dependency('qt5', modules: 'Core') +] + +CXX = meson.get_compiler('cpp') +foreach lib_name : ['userenv', 'winmm', 'ole32', 'uuid', 'wininet', 'psapi', 'version', + 'shlwapi', 'msi', 'netapi32', 'Ws2_32', 'taskschd'] + deps += CXX.find_library(lib_name) +endforeach + +version = fs.read('../appveyor.yml').strip().split('\n')[0].replace('version:', '').replace('.{build}', '').strip() +version_parts = version.split('.') + +# -flto does not work (01.01.2020) probably because Qt is not compiled with LTO enabled +# -fno-exceptions -fno-unwind-tables do not reduce the binary size at all (05.01.2020) +add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', + '-D_WIN32_WINNT=0x0601', # Windows 7 + '-DNPACKD_VERSION="' + version + '"', + '-Wall', '-Wwrite-strings', '-Wextra', '-Wno-unused-parameter', '-Wno-cast-function-type', '-Wduplicated-cond', + '-Wduplicated-branches', '-Wlogical-op', + '-Wno-error=cast-qual', '-Wno-unused-local-typedefs', '-Wno-unused-variable', '-g', + language: 'cpp') + +# TODO +# file(GLOB RESOURCE_IMAGES "src/*.png") +# file(COPY ${RESOURCE_IMAGES} src/npackdg.qrc DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + + +# TODO static builds +# -static -static-libstdc++ -static-libgcc +# qtpcre2 zstd z +# -D QUAZIP_STATIC=1 + +# TODO +# if(NPACKD_FORCE_STATIC) +# SET(NPACKDG_LIBRARIES ${NPACKDG_LIBRARIES} qsqlite qicns qico qjpeg qgif qtga qtiff qwbmp qwebp qwindows qwindowsvistastyle) +# SET(NPACKDG_LIBRARIES ${NPACKDG_LIBRARIES} mingwex Qt5ThemeSupport Qt5EventDispatcherSupport Qt5FontDatabaseSupport Qt5PlatformCompositorSupport Qt5WindowsUIAutomationSupport qdirect2d) +# SET(NPACKDG_LIBRARIES ${NPACKDG_LIBRARIES} jasper icuin icuuc icudt icutu qtpcre2 qtharfbuzz qtfreetype qtlibpng jpeg zstd z) +# endif() + +install_data('../LICENSE.txt') +install_data('../CrystalIcons_LICENSE.txt') + +# TODO +# file(TO_CMAKE_PATH "$ENV{EXEPROXY}" EXEPROXY) +# install(FILES ${EXEPROXY}/exeproxy.exe DESTINATION ${CMAKE_INSTALL_PREFIX}) +# if(WIN32 AND NOT NPACKD_FORCE_STATIC) +# install(CODE "execute_process(COMMAND \"${WINDEPLOYQT_EXECUTABLE}\" --compiler-runtime --pdb \"${CMAKE_INSTALL_PREFIX}/npackdg.exe\" WORKING_DIRECTORY \"${_qt_bin_dir}\")") +# endif() + +conf = configuration_data() +conf.set('NPACKD_VERSION_MAJOR', version_parts.length() > 0 ? version_parts[0] : '0') +conf.set('NPACKD_VERSION_MINOR', version_parts.length() > 1 ? version_parts[1] : '0') +conf.set('NPACKD_VERSION_PATCH', version_parts.length() > 2 ? version_parts[2] : '0') +conf.set('NPACKD_VERSION_TWEAK', version_parts.length() > 3 ? version_parts[3] : '0') +conf.set('OUTPUT_FILE_NAME', meson.project_name() + '.exe') +configure_file(input: 'src/app.rc.in', + output: meson.project_name() + '.rc', + configuration: conf) +configure_file(input: 'src/app.ico', + output: 'app.ico', copy: true) +rc = windows.compile_resources(meson.current_build_dir() / meson.project_name() + '.rc') + +configure_file(input: 'src/app.ico', + output: 'app.ico', copy: true) + +add_project_link_arguments('-Wl,-Map,' + meson.project_name() + '.map', language: 'cpp') + +qms = qt5_mod.compile_translations(ts_files: + ['src/npackdg_ru.ts', + 'src/npackdg_de.ts', + 'src/npackdg_es.ts', + 'src/npackdg_fr.ts']) + +configure_file(input: 'src' / meson.project_name() + '.qrc', + output: meson.project_name() + '.qrc', copy: true) + +processed = qt5_mod.preprocess( + # Only headers that need moc should be put here + moc_headers : ['src/job.h', + 'src/installedpackages.h', 'src/visiblejobs.h', + 'src/clprogress.h', + 'src/mainwindow.h', + 'src/fileloader.h', + 'src/packageframe.h', 'src/exportrepositoryframe.h', + 'src/licenseform.h', 'src/mainframe.h', + 'src/messageframe.h', 'src/packageversionform.h', + 'src/settingsframe.h', + 'src/progresstree2.h', + 'src/downloader.h', + 'src/asyncdownloader.h'], + ui_files: ['src/packageframe.ui', 'src/exportrepositoryframe.ui', + 'src/licenseform.ui', 'src/mainframe.ui', 'src/mainwindow.ui', + 'src/messageframe.ui', 'src/packageversionform.ui', + 'src/settingsframe.ui'], + qresources: meson.current_build_dir() / meson.project_name() + '.qrc', +) + + +# TODO option(NPACKD_ADMIN "Force admin right on program" TRUE) +#if(NPACKD_ADMIN) +# target_compile_definitions(npackdcl PRIVATE -D NPACKD_ADMIN=1) +#else() +# target_compile_definitions(npackdcl PRIVATE -D NPACKD_ADMIN=0) +#endif() + +# TODO /npackdg.qrc + +# TODO +# set(NPACKDG_FORMS +# src/mainwindow.ui +# src/packageversionform.ui +# src/licenseform.ui +# src/messageframe.ui +# src/settingsframe.ui +# src/packageframe.ui +# src/mainframe.ui +# src/exportrepositoryframe.ui +# ) +# set(NPACKDG_TRANSLATIONS +# src/npackdg_es.ts +# src/npackdg_ru.ts +# src/npackdg_fr.ts +# src/npackdg_de.ts +# ) +# QT5_CREATE_TRANSLATION(qm_files src/ ${NPACKDG_TRANSLATIONS} OPTIONS -locations none) +# qt5_add_translation(NPACKDG_TRANSLATIONS_QM ${NPACKDG_TRANSLATIONS}) + +src = ['src/main.cpp', + 'src/mainwindow.cpp', + 'src/packageversion.cpp', + 'src/repository.cpp', + 'src/job.cpp', + 'src/downloader.cpp', + 'src/wpmutils.cpp', + 'src/package.cpp', + 'src/packageversionfile.cpp', + 'src/version.cpp', + 'src/dependency.cpp', + 'src/fileloader.cpp', + 'src/installoperation.cpp', + 'src/packageversionform.cpp', + 'src/license.cpp', + 'src/licenseform.cpp', + 'src/windowsregistry.cpp', + 'src/uiutils.cpp', + 'src/commandline.cpp', + 'src/messageframe.cpp', + 'src/settingsframe.cpp', + 'src/packageframe.cpp', + 'src/selection.cpp', + 'src/hrtimer.cpp', + 'src/clprogress.cpp', + 'src/mainframe.cpp', + 'src/dbrepository.cpp', + 'src/installedpackages.cpp', + 'src/installedpackageversion.cpp', + 'src/abstractrepository.cpp', + 'src/packageitemmodel.cpp', + 'src/abstractthirdpartypm.cpp', + 'src/controlpanelthirdpartypm.cpp', + 'src/msithirdpartypm.cpp', + 'src/wellknownprogramsthirdpartypm.cpp', + 'src/installedpackagesthirdpartypm.cpp', + 'src/flowlayout.cpp', + 'src/mysqlquery.cpp', + 'src/repositoryxmlhandler.cpp', + 'src/visiblejobs.cpp', + 'src/progresstree2.cpp', + 'src/clprocessor.cpp', + 'src/exportrepositoryframe.cpp', + 'src/asyncdownloader.cpp', + 'src/uimessagehandler.cpp', + 'src/packageutils.cpp', + 'src/wuathirdpartypm.cpp', + 'src/wuapi_i.c', + 'src/comobject.cpp', + 'src/repositoriesitemmodel.cpp', + 'src/dismthirdpartypm.cpp', + 'src/sqlutils.cpp', + 'src/threadpool.cpp', + 'src/dag.cpp', + 'src/deptask.cpp', + 'src/lockedfiles.cpp', + qms, processed, rc] + +incdir = include_directories('src') +executable(meson.project_name(), src, dependencies: deps, include_directories: incdir, + install: true) + From b1d9fa3a68034f09a6d462a24ab92b998be25ad7 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Fri, 17 Mar 2023 21:32:30 +0100 Subject: [PATCH 07/15] already implemented --- npackdg/meson.build | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/npackdg/meson.build b/npackdg/meson.build index f8aa4d807..b3f8e91f2 100644 --- a/npackdg/meson.build +++ b/npackdg/meson.build @@ -124,22 +124,6 @@ processed = qt5_mod.preprocess( # TODO /npackdg.qrc # TODO -# set(NPACKDG_FORMS -# src/mainwindow.ui -# src/packageversionform.ui -# src/licenseform.ui -# src/messageframe.ui -# src/settingsframe.ui -# src/packageframe.ui -# src/mainframe.ui -# src/exportrepositoryframe.ui -# ) -# set(NPACKDG_TRANSLATIONS -# src/npackdg_es.ts -# src/npackdg_ru.ts -# src/npackdg_fr.ts -# src/npackdg_de.ts -# ) # QT5_CREATE_TRANSLATION(qm_files src/ ${NPACKDG_TRANSLATIONS} OPTIONS -locations none) # qt5_add_translation(NPACKDG_TRANSLATIONS_QM ${NPACKDG_TRANSLATIONS}) From 09ae7e18f9a95575a54ae6383bdebb8968cdb39e Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Fri, 17 Mar 2023 22:00:29 +0100 Subject: [PATCH 08/15] tests --- npackdcl/tests/meson.build | 99 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 npackdcl/tests/meson.build diff --git a/npackdcl/tests/meson.build b/npackdcl/tests/meson.build new file mode 100644 index 000000000..be69af960 --- /dev/null +++ b/npackdcl/tests/meson.build @@ -0,0 +1,99 @@ +project('tests', 'c', 'cpp', default_options: ['c_std=c11', 'cpp_std=c++11']) + +fs = import('fs') +qt5_mod = import('qt5') +windows = import('windows') + +deps =[ + dependency('quazip1-qt5'), + dependency('qt5', modules: 'Sql'), + dependency('qt5', modules: 'Xml'), + dependency('qt5', modules: 'Test'), + dependency('qt5', modules: 'Core') +] + +CXX = meson.get_compiler('cpp') +foreach lib_name : ['userenv', 'winmm', 'ole32', 'uuid', 'wininet', 'psapi', 'version', + 'shlwapi', 'msi', 'netapi32', 'Ws2_32', 'taskschd'] + deps += CXX.find_library(lib_name) +endforeach + +version = fs.read('../../appveyor.yml').strip().split('\n')[0].replace('version:', '').replace('.{build}', '').strip() +version_parts = version.split('.') + +# -flto does not work (01.01.2020) probably because Qt is not compiled with LTO enabled +# -fno-exceptions -fno-unwind-tables do not reduce the binary size at all (05.01.2020) +add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', + '-D_WIN32_WINNT=0x0601', # Windows 7 + '-DNPACKD_VERSION="' + version + '"', + '-Wall', '-Wwrite-strings', '-Wextra', '-Wno-unused-parameter', '-Wno-cast-function-type', '-Wduplicated-cond', + '-Wduplicated-branches', '-Wlogical-op', + '-Wno-error=cast-qual', '-Wno-unused-local-typedefs', '-Wno-unused-variable', '-g', + language: 'cpp') + +# TODO static builds +# -static -static-libstdc++ -static-libgcc +# qtpcre2 zstd z +# -D QUAZIP_STATIC=1 + +add_project_link_arguments('-Wl,-Map,' + meson.project_name() + '.map', language: 'cpp') + +processed = qt5_mod.preprocess( + # Only headers that need moc should be put here + moc_headers : ['src/app.h', '../../npackdg/src/job.h', + '../../npackdg/src/installedpackages.h', '../../npackdg/src/visiblejobs.h', + '../../npackdg/src/clprogress.h'] +) + +# TODO option(NPACKD_ADMIN "Force admin right on program" TRUE) +#if(NPACKD_ADMIN) +# target_compile_definitions(npackdcl PRIVATE -D NPACKD_ADMIN=1) +#else() +# target_compile_definitions(npackdcl PRIVATE -D NPACKD_ADMIN=0) +#endif() + +src = ['src/main.cpp', + '../../npackdg/src/visiblejobs.cpp', + '../../npackdg/src/repository.cpp', + '../../npackdg/src/version.cpp', + '../../npackdg/src/packageversionfile.cpp', + '../../npackdg/src/package.cpp', + '../../npackdg/src/packageversion.cpp', + '../../npackdg/src/job.cpp', + '../../npackdg/src/installoperation.cpp', + '../../npackdg/src/dependency.cpp', + '../../npackdg/src/wpmutils.cpp', + '../../npackdg/src/downloader.cpp', + '../../npackdg/src/license.cpp', + '../../npackdg/src/windowsregistry.cpp', + 'src/app.cpp', + '../../npackdg/src/commandline.cpp', + '../../npackdg/src/installedpackages.cpp', + '../../npackdg/src/installedpackageversion.cpp', + '../../npackdg/src/clprogress.cpp', + '../../npackdg/src/dbrepository.cpp', + '../../npackdg/src/abstractrepository.cpp', + '../../npackdg/src/abstractthirdpartypm.cpp', + '../../npackdg/src/msithirdpartypm.cpp', + '../../npackdg/src/controlpanelthirdpartypm.cpp', + '../../npackdg/src/wellknownprogramsthirdpartypm.cpp', + '../../npackdg/src/hrtimer.cpp', + '../../npackdg/src/repositoryxmlhandler.cpp', + '../../npackdg/src/mysqlquery.cpp', + '../../npackdg/src/installedpackagesthirdpartypm.cpp', + '../../npackdg/src/packageutils.cpp', + '../../npackdg/src/wuathirdpartypm.cpp', + '../../npackdg/src/wuapi_i.c', + '../../npackdg/src/comobject.cpp', + '../../npackdg/src/dismthirdpartypm.cpp', + '../../npackdg/src/sqlutils.cpp', + '../../npackdg/src/dag.cpp', + '../../npackdg/src/lockedfiles.cpp', + '../../npackdg/src/threadpool.cpp', + '../../npackdg/src/deptask.cpp', + processed] + +incdir = include_directories('../../npackdg/src', 'src') +executable(meson.project_name(), src, dependencies: deps, include_directories: incdir, + install: true) + From d75ad95f56c29c40ee5b58d45d53193055cf749f Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Fri, 17 Mar 2023 22:05:27 +0100 Subject: [PATCH 09/15] ftests --- npackdcl/ftests/meson.build | 100 ++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 npackdcl/ftests/meson.build diff --git a/npackdcl/ftests/meson.build b/npackdcl/ftests/meson.build new file mode 100644 index 000000000..1a5b5e388 --- /dev/null +++ b/npackdcl/ftests/meson.build @@ -0,0 +1,100 @@ +project('ftests', 'c', 'cpp', default_options: ['c_std=c11', 'cpp_std=c++11']) + +fs = import('fs') +qt5_mod = import('qt5') +windows = import('windows') + +deps =[ + dependency('quazip1-qt5'), + dependency('qt5', modules: 'Sql'), + dependency('qt5', modules: 'Xml'), + dependency('qt5', modules: 'Test'), + dependency('qt5', modules: 'Core') +] + +CXX = meson.get_compiler('cpp') +foreach lib_name : ['userenv', 'winmm', 'ole32', 'uuid', 'wininet', 'psapi', 'version', + 'shlwapi', 'msi', 'netapi32', 'Ws2_32', 'taskschd'] + deps += CXX.find_library(lib_name) +endforeach + +install_data('Rep.xml') + +version = fs.read('../../appveyor.yml').strip().split('\n')[0].replace('version:', '').replace('.{build}', '').strip() +version_parts = version.split('.') + +# -flto does not work (01.01.2020) probably because Qt is not compiled with LTO enabled +# -fno-exceptions -fno-unwind-tables do not reduce the binary size at all (05.01.2020) +add_global_arguments('-DUNICODE', '-D_UNICODE', '-DNOMINMAX', + '-D_WIN32_WINNT=0x0601', # Windows 7 + '-DNPACKD_VERSION="' + version + '"', + '-Wall', '-Wwrite-strings', '-Wextra', '-Wno-unused-parameter', '-Wno-cast-function-type', '-Wduplicated-cond', + '-Wduplicated-branches', '-Wlogical-op', + '-Wno-error=cast-qual', '-Wno-unused-local-typedefs', '-Wno-unused-variable', '-g', + language: 'cpp') + +# TODO static builds +# -static -static-libstdc++ -static-libgcc +# qtpcre2 zstd z +# -D QUAZIP_STATIC=1 + +add_project_link_arguments('-Wl,-Map,' + meson.project_name() + '.map', language: 'cpp') + +processed = qt5_mod.preprocess( + # Only headers that need moc should be put here + moc_headers : ['src/app.h', '../../npackdg/src/job.h', + '../../npackdg/src/installedpackages.h', '../../npackdg/src/visiblejobs.h', + '../../npackdg/src/clprogress.h'] +) + +# TODO option(NPACKD_ADMIN "Force admin right on program" TRUE) +#if(NPACKD_ADMIN) +# target_compile_definitions(npackdcl PRIVATE -D NPACKD_ADMIN=1) +#else() +# target_compile_definitions(npackdcl PRIVATE -D NPACKD_ADMIN=0) +#endif() + +src = ['src/app.cpp', + '../../npackdg/src/downloader.cpp', + '../../npackdg/src/commandline.cpp', + '../../npackdg/src/repositoryxmlhandler.cpp', + '../../npackdg/src/mysqlquery.cpp', + '../../npackdg/src/wellknownprogramsthirdpartypm.cpp', + '../../npackdg/src/abstractthirdpartypm.cpp', + '../../npackdg/src/msithirdpartypm.cpp', + '../../npackdg/src/installedpackagesthirdpartypm.cpp', + '../../npackdg/src/controlpanelthirdpartypm.cpp', + '../../npackdg/src/installoperation.cpp', + '../../npackdg/src/dependency.cpp', + '../../npackdg/src/packageversionfile.cpp', + '../../npackdg/src/dbrepository.cpp', + '../../npackdg/src/license.cpp', + '../../npackdg/src/repository.cpp', + '../../npackdg/src/job.cpp', + '../../npackdg/src/hrtimer.cpp', + '../../npackdg/src/package.cpp', + '../../npackdg/src/installedpackageversion.cpp', + '../../npackdg/src/abstractrepository.cpp', + '../../npackdg/src/version.cpp', + '../../npackdg/src/installedpackages.cpp', + '../../npackdg/src/windowsregistry.cpp', + '../../npackdg/src/packageversion.cpp', + '../../npackdg/src/wpmutils.cpp', + '../../npackdg/src/clprogress.cpp', + '../../npackdg/src/packageutils.cpp', + '../../npackdg/src/wuathirdpartypm.cpp', + '../../npackdg/src/wuapi_i.c', + '../../npackdg/src/comobject.cpp', + '../../npackdg/src/dismthirdpartypm.cpp', + '../../npackdg/src/sqlutils.cpp', + '../../npackdg/src/dag.cpp', + '../../npackdg/src/deptask.cpp', + '../../npackdg/src/threadpool.cpp', + '../../npackdg/src/lockedfiles.cpp', + 'src/main.cpp', + processed] + +incdir = include_directories('../../npackdg/src', 'src') +executable(meson.project_name(), src, dependencies: deps, include_directories: incdir, + install: true) + From 351e8777fccde7276618170cbfa6d6337213ab35 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Fri, 17 Mar 2023 22:39:49 +0100 Subject: [PATCH 10/15] try to use Meson on AppVeyor --- AppVeyorBuild.bat | 91 +++------------ AppVeyorInstall.bat | 2 +- npackdg/build32.bat | 276 ++++++++++++++++++++++++++++++++++++++++++++ npackdg/build64.bat | 85 ++++++++++++++ 4 files changed, 377 insertions(+), 77 deletions(-) create mode 100644 npackdg/build32.bat create mode 100644 npackdg/build64.bat diff --git a/AppVeyorBuild.bat b/AppVeyorBuild.bat index 66631227e..f501eaec0 100644 --- a/AppVeyorBuild.bat +++ b/AppVeyorBuild.bat @@ -44,83 +44,22 @@ for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set drmingw=%%x goto start :start -if %prg% equ npackdcl goto npackdcl -if %prg% equ clu goto clu +if %prg% equ npackd ( + pushd npackdg + call build64.bat + popd +) +if %prg% equ npackdcl ( + pushd npackdcl + call build64.bat + popd +) +if %prg% equ clu ( + pushd clu + call build64.bat + popd +) -:npackd - -mkdir npackdg\build -if %errorlevel% neq 0 exit /b %errorlevel% - -pushd npackdg\build -set path=%mingw%\bin;%ai%\bin\x86;%sevenzip%;C:\msys64\mingw64\bin -set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% - -cmake ..\ -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% -if %errorlevel% neq 0 exit /b %errorlevel% - -mingw32-make.exe install -if %errorlevel% neq 0 exit /b %errorlevel% - -C:\Windows\System32\xcopy.exe ..\install ..\install-debug /E /I /H /Y -if %errorlevel% neq 0 exit /b %errorlevel% - -strip ..\install\npackdg.exe -if %errorlevel% neq 0 exit /b %errorlevel% - -pushd ..\install-debug - -copy ..\build\npackdg.map . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\exchndl.dll" . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\mgwhelp.dll" . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\dbghelp.dll" . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\symsrv.dll" . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\symsrv.yes" . -if %errorlevel% neq 0 exit /b %errorlevel% - -7z a ..\build\Npackd%bits%-debug-%version%.zip * -mx9 -if %errorlevel% neq 0 exit /b %errorlevel% -popd - -pushd ..\install -7z a ..\build\Npackd%bits%-%version%.zip * -mx9 -if %errorlevel% neq 0 exit /b %errorlevel% - -copy ..\src\npackdg%bits%.aip . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy ..\src\app.ico . -if %errorlevel% neq 0 exit /b %errorlevel% - -AdvancedInstaller.com /edit npackdg%bits%.aip /SetVersion %version% -if %errorlevel% neq 0 exit /b %errorlevel% - -AdvancedInstaller.com /build npackdg%bits%.aip -if %errorlevel% neq 0 exit /b %errorlevel% -popd - -popd - -set path=%initial_path% - -appveyor PushArtifact npackdg\build\Npackd%bits%-%version%.zip -if %errorlevel% neq 0 exit /b %errorlevel% - -appveyor PushArtifact npackdg\install\Npackd%bits%-%version%.msi -if %errorlevel% neq 0 exit /b %errorlevel% - -appveyor PushArtifact npackdg\build\Npackd%bits%-debug-%version%.zip -if %errorlevel% neq 0 exit /b %errorlevel% rem Coverity build is too slow goto end diff --git a/AppVeyorInstall.bat b/AppVeyorInstall.bat index 975766b48..195c6a3b7 100644 --- a/AppVeyorInstall.bat +++ b/AppVeyorInstall.bat @@ -31,7 +31,7 @@ rem update all packages to the newest versions pacman -Syu --noconfirm pacman -Syu --noconfirm -pacman -S --noconfirm mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-ninja mingw64/mingw-w64-x86_64-wget +pacman -S --noconfirm mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-ninja mingw64/mingw-w64-x86_64-wget mingw64/mingw-w64-x86_64-meson if %errorlevel% neq 0 exit /b %errorlevel% if %bits% equ 64 (if %static% equ ON (call :install64static) else (call :install64dynamic)) else (call :install32) diff --git a/npackdg/build32.bat b/npackdg/build32.bat new file mode 100644 index 000000000..4bef30ce0 --- /dev/null +++ b/npackdg/build32.bat @@ -0,0 +1,276 @@ +set initial_path=%path% + +set version=%APPVEYOR_BUILD_VERSION:~0,-4% + +SET NPACKD_CL=C:\Program Files\NpackdCL + +set onecmd="%npackd_cl%\ncl.exe" path -p com.advancedinstaller.AdvancedInstallerFreeware -r [10,100) +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set ai=%%x + +set onecmd="%npackd_cl%\ncl.exe" path -p org.7-zip.SevenZIP -r [9,100) +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set SEVENZIP=%%x + +set onecmd="%npackd_cl%\ncl.exe" path -p exeproxy -r [0.2,1) +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set EXEPROXY=%%x + +if %bits% equ 64 goto bits64 + +set mingw_libs=i686-w64-mingw32 +set mingw=C:\msys64\mingw32 + +set onecmd="%npackd_cl%\ncl.exe" path -p quazip-dev-i686-w64_dw2_posix_7.2-qt_5.9.2-static -v 0.7.3 +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set quazip=%%x + +set onecmd="%npackd_cl%\ncl.exe" path -p drmingw -v 0.7.7 +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set drmingw=%%x + +goto start + +:bits64 + +set mingw_libs=x86_64-w64-mingw32 +set mingw=C:\msys64\mingw64 + +set onecmd="%npackd_cl%\ncl.exe" path -p quazip-dev-x86_64-w64_seh_posix_7.2-qt_5.9.2-static -v 0.7.3 +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set quazip=%%x + +set onecmd="%npackd_cl%\ncl.exe" path -p drmingw64 -v 0.7.7 +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set drmingw=%%x + +goto start + +:start +if %prg% equ npackdcl goto npackdcl +if %prg% equ clu goto clu + +:npackd + +pushd npackdg +set path=%mingw%\bin;%ai%\bin\x86;%sevenzip% +rem set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% + +rem TODO -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% +meson setup build +if %errorlevel% neq 0 exit /b %errorlevel% + +meson compile -C build +if %errorlevel% neq 0 exit /b %errorlevel% + +mkdir dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy build\npackdg.exe dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy src\CrystalIcons_LICENSE.txt dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy src\LICENSE.txt dist +if %errorlevel% neq 0 exit /b %errorlevel% + +rem TODO exeproxy + +C:\Windows\System32\xcopy.exe dist dist-debug /E /I /H /Y +if %errorlevel% neq 0 exit /b %errorlevel% + +strip dist\npackdg.exe +if %errorlevel% neq 0 exit /b %errorlevel% + +copy build\npackdg.map dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\exchndl.dll" dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\mgwhelp.dll" dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\dbghelp.dll" dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\symsrv.dll" dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\symsrv.yes" dist +if %errorlevel% neq 0 exit /b %errorlevel% + +7z a build\Npackd%bits%-debug-%version%.zip dist-debug\* -mx9 +if %errorlevel% neq 0 exit /b %errorlevel% + +7z a build\Npackd%bits%-%version%.zip dist\* -mx9 +if %errorlevel% neq 0 exit /b %errorlevel% + +copy src\npackdg%bits%.aip build +if %errorlevel% neq 0 exit /b %errorlevel% + +copy src\app.ico build +if %errorlevel% neq 0 exit /b %errorlevel% + +AdvancedInstaller.com /edit npackdg%bits%.aip /SetVersion %version% +if %errorlevel% neq 0 exit /b %errorlevel% + +AdvancedInstaller.com /build npackdg%bits%.aip +if %errorlevel% neq 0 exit /b %errorlevel% +popd + +popd + +set path=%initial_path% + +appveyor PushArtifact npackdg\build\Npackd%bits%-%version%.zip +if %errorlevel% neq 0 exit /b %errorlevel% + +appveyor PushArtifact npackdg\install\Npackd%bits%-%version%.msi +if %errorlevel% neq 0 exit /b %errorlevel% + +appveyor PushArtifact npackdg\build\Npackd%bits%-debug-%version%.zip +if %errorlevel% neq 0 exit /b %errorlevel% + +rem Coverity build is too slow +goto end + +if "%bits%" neq "64" goto end + +pushd npackdg\build + +set path=%mingw%\bin;%ai%\bin\x86;%sevenzip%;C:\msys64\mingw64\bin +set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% +mingw32-make.exe clean + +"..\..\cov-analysis\bin\cov-configure.exe" --comptype gcc --compiler C:\PROGRA~2\MINGW-~1\bin\G__~1.EXE -- -std=gnu++11 +"..\..\cov-analysis\bin\cov-build.exe" --dir ..\..\cov-int mingw32-make.exe install + +rem type C:\projects\Npackd\cov-int\build-log.txt + +popd + +7z a cov-int.zip cov-int +if %errorlevel% neq 0 exit /b %errorlevel% + +"C:\Program Files (x86)\Gow\bin\curl" --form token=%covtoken% --form email=tim.lebedkov@gmail.com -k --form file=@cov-int.zip --form version="Version" --form description="Description" https://scan.coverity.com/builds?project=Npackd +if %errorlevel% neq 0 exit /b %errorlevel% + +goto end + +:npackdcl +mkdir npackdcl\build +if %errorlevel% neq 0 exit /b %errorlevel% + +pushd npackdcl\build +set path=%mingw%\bin;%ai%\bin\x86;%sevenzip%;C:\msys64\mingw64\bin +set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% + +cmake ..\ -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% +if %errorlevel% neq 0 exit /b %errorlevel% + +mingw32-make.exe install +if %errorlevel% neq 0 exit /b %errorlevel% + +"%EXEPROXY%\exeproxy.exe" exeproxy-copy ..\install\ncl.exe npackdcl.exe +if %errorlevel% neq 0 exit /b %errorlevel% + +del ..\install\tests.exe +if %errorlevel% neq 0 exit /b %errorlevel% + +del ..\install\ftests.exe +if %errorlevel% neq 0 exit /b %errorlevel% + +C:\Windows\System32\xcopy.exe ..\install ..\install-debug /E /I /H /Y +if %errorlevel% neq 0 exit /b %errorlevel% + +strip ..\install\npackdcl.exe +if %errorlevel% neq 0 exit /b %errorlevel% + +pushd ..\install-debug +copy ..\build\npackdcl.map . +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\exchndl.dll" . +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\mgwhelp.dll" . +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\dbghelp.dll" . +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\symsrv.dll" . +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\symsrv.yes" . +if %errorlevel% neq 0 exit /b %errorlevel% + +7z a ..\build\NpackdCL%bits%-debug-%version%.zip * -mx9 +if %errorlevel% neq 0 exit /b %errorlevel% +popd + +pushd ..\install + +7z a ..\build\NpackdCL%bits%-%version%.zip * -mx9 +if %errorlevel% neq 0 exit /b %errorlevel% + +copy ..\src\NpackdCL%bits%.aip . +if %errorlevel% neq 0 exit /b %errorlevel% + +copy ..\src\app.ico . +if %errorlevel% neq 0 exit /b %errorlevel% + +AdvancedInstaller.com /edit NpackdCL%bits%.aip /SetVersion %version% +if %errorlevel% neq 0 exit /b %errorlevel% + +AdvancedInstaller.com /build NpackdCL%bits%.aip +if %errorlevel% neq 0 exit /b %errorlevel% + +popd +popd + +set path=%initial_path% + +appveyor PushArtifact npackdcl\build\NpackdCL%bits%-%version%.zip +if %errorlevel% neq 0 exit /b %errorlevel% + +appveyor PushArtifact npackdcl\install\NpackdCL%bits%-%version%.msi +if %errorlevel% neq 0 exit /b %errorlevel% + +appveyor PushArtifact npackdcl\build\NpackdCL%bits%-debug-%version%.zip +if %errorlevel% neq 0 exit /b %errorlevel% + +goto end + +:clu +mkdir clu\build +if %errorlevel% neq 0 exit /b %errorlevel% + +pushd clu\build +set path=%mingw%\bin;%ai%\bin\x86;%sevenzip%;C:\msys64\mingw64\bin +set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% + +cmake ..\ -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% +if %errorlevel% neq 0 exit /b %errorlevel% + +mingw32-make.exe install +if %errorlevel% neq 0 exit /b %errorlevel% + +strip ..\install\clu.exe +if %errorlevel% neq 0 exit /b %errorlevel% + +pushd ..\install + +7z a ..\build\CLU%bits%-%version%.zip * -mx9 +if %errorlevel% neq 0 exit /b %errorlevel% + +copy ..\src\app.ico . +if %errorlevel% neq 0 exit /b %errorlevel% + +popd +popd + +set path=%initial_path% + +appveyor PushArtifact clu\build\CLU%bits%-%version%.zip +if %errorlevel% neq 0 exit /b %errorlevel% + +goto end + +:end + diff --git a/npackdg/build64.bat b/npackdg/build64.bat new file mode 100644 index 000000000..6b3f7c412 --- /dev/null +++ b/npackdg/build64.bat @@ -0,0 +1,85 @@ +set version=%APPVEYOR_BUILD_VERSION:~0,-4% +SET NPACKD_CL=C:\Program Files\NpackdCL +set mingw=C:\msys64\mingw64 +rem TODO set mingw_libs=x86_64-w64-mingw32 +set path=%mingw%\bin;%ai%\bin\x86;%sevenzip% + +set onecmd="%npackd_cl%\ncl.exe" path -p com.advancedinstaller.AdvancedInstallerFreeware -r [10,100) +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set ai=%%x + +set onecmd="%npackd_cl%\ncl.exe" path -p org.7-zip.SevenZIP -r [9,100) +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set SEVENZIP=%%x + +set onecmd="%npackd_cl%\ncl.exe" path -p exeproxy -r [0.2,1) +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set EXEPROXY=%%x + +set onecmd="%npackd_cl%\ncl.exe" path -p quazip-dev-x86_64-w64_seh_posix_7.2-qt_5.9.2-static -v 0.7.3 +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set quazip=%%x + +set onecmd="%npackd_cl%\ncl.exe" path -p drmingw64 -v 0.7.7 +for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set drmingw=%%x + +rem set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% + +rem TODO -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% +meson setup build\meson +if %errorlevel% neq 0 exit /b %errorlevel% + +meson compile -C build\meson +if %errorlevel% neq 0 exit /b %errorlevel% + +mkdir build\dist + +copy build\meson\npackdg.exe build\dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy src\CrystalIcons_LICENSE.txt build\dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy src\LICENSE.txt build\dist +if %errorlevel% neq 0 exit /b %errorlevel% + +rem TODO exeproxy + +C:\Windows\System32\xcopy.exe build\dist build\dist-debug /E /I /H /Y +if %errorlevel% neq 0 exit /b %errorlevel% + +strip dist\npackdg.exe +if %errorlevel% neq 0 exit /b %errorlevel% + +copy build\meson\npackdg.map build\dist-debug +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\exchndl.dll" build\dist-debug +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\mgwhelp.dll" build\dist-debug +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\dbghelp.dll" build\dist-debug +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\symsrv.dll" build\dist-debug +if %errorlevel% neq 0 exit /b %errorlevel% + +copy "%DRMINGW%\bin\symsrv.yes" build\dist-debug +if %errorlevel% neq 0 exit /b %errorlevel% + +7z a build\Npackd%bits%-debug-%version%.zip build\dist-debug\* -mx9 +if %errorlevel% neq 0 exit /b %errorlevel% + +7z a build\Npackd%bits%-%version%.zip build\dist\* -mx9 +if %errorlevel% neq 0 exit /b %errorlevel% + +copy src\npackdg%bits%.aip build\dist +if %errorlevel% neq 0 exit /b %errorlevel% + +copy src\app.ico build\dist +if %errorlevel% neq 0 exit /b %errorlevel% + +AdvancedInstaller.com /edit build\dist\npackdg%bits%.aip /SetVersion %version% +if %errorlevel% neq 0 exit /b %errorlevel% + +AdvancedInstaller.com /build build\dist\npackdg%bits%.aip +if %errorlevel% neq 0 exit /b %errorlevel% + From 7340b6c643c3e36c2bad212854eaf363a7e511a7 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Fri, 17 Mar 2023 22:48:12 +0100 Subject: [PATCH 11/15] 32 bit --- npackdg/build32.bat | 234 +++++--------------------------------------- 1 file changed, 22 insertions(+), 212 deletions(-) diff --git a/npackdg/build32.bat b/npackdg/build32.bat index 4bef30ce0..9bf9e74cb 100644 --- a/npackdg/build32.bat +++ b/npackdg/build32.bat @@ -1,8 +1,8 @@ -set initial_path=%path% - set version=%APPVEYOR_BUILD_VERSION:~0,-4% - +set mingw_libs=i686-w64-mingw32 +set mingw=C:\msys64\mingw32 SET NPACKD_CL=C:\Program Files\NpackdCL +set path=%mingw%\bin;%ai%\bin\x86;%sevenzip% set onecmd="%npackd_cl%\ncl.exe" path -p com.advancedinstaller.AdvancedInstallerFreeware -r [10,100) for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set ai=%%x @@ -13,10 +13,6 @@ for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set SEVENZIP=%%x set onecmd="%npackd_cl%\ncl.exe" path -p exeproxy -r [0.2,1) for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set EXEPROXY=%%x -if %bits% equ 64 goto bits64 - -set mingw_libs=i686-w64-mingw32 -set mingw=C:\msys64\mingw32 set onecmd="%npackd_cl%\ncl.exe" path -p quazip-dev-i686-w64_dw2_posix_7.2-qt_5.9.2-static -v 0.7.3 for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set quazip=%%x @@ -24,253 +20,67 @@ for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set quazip=%%x set onecmd="%npackd_cl%\ncl.exe" path -p drmingw -v 0.7.7 for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set drmingw=%%x -goto start - -:bits64 - -set mingw_libs=x86_64-w64-mingw32 -set mingw=C:\msys64\mingw64 - -set onecmd="%npackd_cl%\ncl.exe" path -p quazip-dev-x86_64-w64_seh_posix_7.2-qt_5.9.2-static -v 0.7.3 -for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set quazip=%%x - -set onecmd="%npackd_cl%\ncl.exe" path -p drmingw64 -v 0.7.7 -for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set drmingw=%%x - -goto start - -:start -if %prg% equ npackdcl goto npackdcl -if %prg% equ clu goto clu - -:npackd - -pushd npackdg -set path=%mingw%\bin;%ai%\bin\x86;%sevenzip% rem set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% rem TODO -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% -meson setup build +meson setup build\meson if %errorlevel% neq 0 exit /b %errorlevel% -meson compile -C build +meson compile -C build\meson if %errorlevel% neq 0 exit /b %errorlevel% -mkdir dist -if %errorlevel% neq 0 exit /b %errorlevel% +mkdir build\dist -copy build\npackdg.exe dist +copy build\meson\npackdg.exe build\dist if %errorlevel% neq 0 exit /b %errorlevel% -copy src\CrystalIcons_LICENSE.txt dist +copy src\CrystalIcons_LICENSE.txt build\dist if %errorlevel% neq 0 exit /b %errorlevel% -copy src\LICENSE.txt dist +copy src\LICENSE.txt build\dist if %errorlevel% neq 0 exit /b %errorlevel% rem TODO exeproxy -C:\Windows\System32\xcopy.exe dist dist-debug /E /I /H /Y +C:\Windows\System32\xcopy.exe build\dist build\dist-debug /E /I /H /Y if %errorlevel% neq 0 exit /b %errorlevel% strip dist\npackdg.exe if %errorlevel% neq 0 exit /b %errorlevel% -copy build\npackdg.map dist -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\exchndl.dll" dist -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\mgwhelp.dll" dist -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\dbghelp.dll" dist -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\symsrv.dll" dist +copy build\meson\npackdg.map build\dist-debug if %errorlevel% neq 0 exit /b %errorlevel% -copy "%DRMINGW%\bin\symsrv.yes" dist +copy "%DRMINGW%\bin\exchndl.dll" build\dist-debug if %errorlevel% neq 0 exit /b %errorlevel% -7z a build\Npackd%bits%-debug-%version%.zip dist-debug\* -mx9 +copy "%DRMINGW%\bin\mgwhelp.dll" build\dist-debug if %errorlevel% neq 0 exit /b %errorlevel% -7z a build\Npackd%bits%-%version%.zip dist\* -mx9 +copy "%DRMINGW%\bin\dbghelp.dll" build\dist-debug if %errorlevel% neq 0 exit /b %errorlevel% -copy src\npackdg%bits%.aip build +copy "%DRMINGW%\bin\symsrv.dll" build\dist-debug if %errorlevel% neq 0 exit /b %errorlevel% -copy src\app.ico build +copy "%DRMINGW%\bin\symsrv.yes" build\dist-debug if %errorlevel% neq 0 exit /b %errorlevel% -AdvancedInstaller.com /edit npackdg%bits%.aip /SetVersion %version% -if %errorlevel% neq 0 exit /b %errorlevel% - -AdvancedInstaller.com /build npackdg%bits%.aip -if %errorlevel% neq 0 exit /b %errorlevel% -popd - -popd - -set path=%initial_path% - -appveyor PushArtifact npackdg\build\Npackd%bits%-%version%.zip -if %errorlevel% neq 0 exit /b %errorlevel% - -appveyor PushArtifact npackdg\install\Npackd%bits%-%version%.msi -if %errorlevel% neq 0 exit /b %errorlevel% - -appveyor PushArtifact npackdg\build\Npackd%bits%-debug-%version%.zip -if %errorlevel% neq 0 exit /b %errorlevel% - -rem Coverity build is too slow -goto end - -if "%bits%" neq "64" goto end - -pushd npackdg\build - -set path=%mingw%\bin;%ai%\bin\x86;%sevenzip%;C:\msys64\mingw64\bin -set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% -mingw32-make.exe clean - -"..\..\cov-analysis\bin\cov-configure.exe" --comptype gcc --compiler C:\PROGRA~2\MINGW-~1\bin\G__~1.EXE -- -std=gnu++11 -"..\..\cov-analysis\bin\cov-build.exe" --dir ..\..\cov-int mingw32-make.exe install - -rem type C:\projects\Npackd\cov-int\build-log.txt - -popd - -7z a cov-int.zip cov-int -if %errorlevel% neq 0 exit /b %errorlevel% - -"C:\Program Files (x86)\Gow\bin\curl" --form token=%covtoken% --form email=tim.lebedkov@gmail.com -k --form file=@cov-int.zip --form version="Version" --form description="Description" https://scan.coverity.com/builds?project=Npackd -if %errorlevel% neq 0 exit /b %errorlevel% - -goto end - -:npackdcl -mkdir npackdcl\build -if %errorlevel% neq 0 exit /b %errorlevel% - -pushd npackdcl\build -set path=%mingw%\bin;%ai%\bin\x86;%sevenzip%;C:\msys64\mingw64\bin -set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% - -cmake ..\ -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% +7z a build\Npackd%bits%-debug-%version%.zip build\dist-debug\* -mx9 if %errorlevel% neq 0 exit /b %errorlevel% -mingw32-make.exe install +7z a build\Npackd%bits%-%version%.zip build\dist\* -mx9 if %errorlevel% neq 0 exit /b %errorlevel% -"%EXEPROXY%\exeproxy.exe" exeproxy-copy ..\install\ncl.exe npackdcl.exe +copy src\npackdg%bits%.aip build\dist if %errorlevel% neq 0 exit /b %errorlevel% -del ..\install\tests.exe +copy src\app.ico build\dist if %errorlevel% neq 0 exit /b %errorlevel% -del ..\install\ftests.exe +AdvancedInstaller.com /edit build\dist\npackdg%bits%.aip /SetVersion %version% if %errorlevel% neq 0 exit /b %errorlevel% -C:\Windows\System32\xcopy.exe ..\install ..\install-debug /E /I /H /Y +AdvancedInstaller.com /build build\dist\npackdg%bits%.aip if %errorlevel% neq 0 exit /b %errorlevel% -strip ..\install\npackdcl.exe -if %errorlevel% neq 0 exit /b %errorlevel% - -pushd ..\install-debug -copy ..\build\npackdcl.map . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\exchndl.dll" . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\mgwhelp.dll" . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\dbghelp.dll" . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\symsrv.dll" . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy "%DRMINGW%\bin\symsrv.yes" . -if %errorlevel% neq 0 exit /b %errorlevel% - -7z a ..\build\NpackdCL%bits%-debug-%version%.zip * -mx9 -if %errorlevel% neq 0 exit /b %errorlevel% -popd - -pushd ..\install - -7z a ..\build\NpackdCL%bits%-%version%.zip * -mx9 -if %errorlevel% neq 0 exit /b %errorlevel% - -copy ..\src\NpackdCL%bits%.aip . -if %errorlevel% neq 0 exit /b %errorlevel% - -copy ..\src\app.ico . -if %errorlevel% neq 0 exit /b %errorlevel% - -AdvancedInstaller.com /edit NpackdCL%bits%.aip /SetVersion %version% -if %errorlevel% neq 0 exit /b %errorlevel% - -AdvancedInstaller.com /build NpackdCL%bits%.aip -if %errorlevel% neq 0 exit /b %errorlevel% - -popd -popd - -set path=%initial_path% - -appveyor PushArtifact npackdcl\build\NpackdCL%bits%-%version%.zip -if %errorlevel% neq 0 exit /b %errorlevel% - -appveyor PushArtifact npackdcl\install\NpackdCL%bits%-%version%.msi -if %errorlevel% neq 0 exit /b %errorlevel% - -appveyor PushArtifact npackdcl\build\NpackdCL%bits%-debug-%version%.zip -if %errorlevel% neq 0 exit /b %errorlevel% - -goto end - -:clu -mkdir clu\build -if %errorlevel% neq 0 exit /b %errorlevel% - -pushd clu\build -set path=%mingw%\bin;%ai%\bin\x86;%sevenzip%;C:\msys64\mingw64\bin -set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% - -cmake ..\ -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% -if %errorlevel% neq 0 exit /b %errorlevel% - -mingw32-make.exe install -if %errorlevel% neq 0 exit /b %errorlevel% - -strip ..\install\clu.exe -if %errorlevel% neq 0 exit /b %errorlevel% - -pushd ..\install - -7z a ..\build\CLU%bits%-%version%.zip * -mx9 -if %errorlevel% neq 0 exit /b %errorlevel% - -copy ..\src\app.ico . -if %errorlevel% neq 0 exit /b %errorlevel% - -popd -popd - -set path=%initial_path% - -appveyor PushArtifact clu\build\CLU%bits%-%version%.zip -if %errorlevel% neq 0 exit /b %errorlevel% - -goto end - -:end - From 77837bd8209390d59df2d62cab76de05b12f3ceb Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Fri, 17 Mar 2023 23:03:12 +0100 Subject: [PATCH 12/15] copy PNGs --- npackdg/meson.build | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/npackdg/meson.build b/npackdg/meson.build index b3f8e91f2..8f9dd2f9c 100644 --- a/npackdg/meson.build +++ b/npackdg/meson.build @@ -78,8 +78,18 @@ configure_file(input: 'src/app.ico', output: 'app.ico', copy: true) rc = windows.compile_resources(meson.current_build_dir() / meson.project_name() + '.rc') -configure_file(input: 'src/app.ico', - output: 'app.ico', copy: true) +foreach f : ['app.png', + 'update.png', + 'wait.png', + 'uninstall.png', + 'fileissue.png', + 'gotosite.png', + 'install.png', + 'broken.png', + 'add.png'] + configure_file(input: 'src' / f, + output: f, copy: true) +endforeach add_project_link_arguments('-Wl,-Map,' + meson.project_name() + '.map', language: 'cpp') From a0eb4edf4b5c6780cb3fbca918201af56cd412f1 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Sat, 18 Mar 2023 11:19:26 +0100 Subject: [PATCH 13/15] try to fix the Meson error --- npackdg/meson.build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/npackdg/meson.build b/npackdg/meson.build index 8f9dd2f9c..0625e98e7 100644 --- a/npackdg/meson.build +++ b/npackdg/meson.build @@ -94,10 +94,10 @@ endforeach add_project_link_arguments('-Wl,-Map,' + meson.project_name() + '.map', language: 'cpp') qms = qt5_mod.compile_translations(ts_files: - ['src/npackdg_ru.ts', - 'src/npackdg_de.ts', - 'src/npackdg_es.ts', - 'src/npackdg_fr.ts']) + ['src\\npackdg_ru.ts', + 'src\\npackdg_de.ts', + 'src\\npackdg_es.ts', + 'src\\npackdg_fr.ts']) configure_file(input: 'src' / meson.project_name() + '.qrc', output: meson.project_name() + '.qrc', copy: true) From 8227887f00717c9c78319fa32ad180651e2ad2b0 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Sat, 18 Mar 2023 11:37:25 +0100 Subject: [PATCH 14/15] Meson does not like nested build directories --- npackdg/build64.bat | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/npackdg/build64.bat b/npackdg/build64.bat index 6b3f7c412..06efaf9fe 100644 --- a/npackdg/build64.bat +++ b/npackdg/build64.bat @@ -22,15 +22,15 @@ for /f "usebackq delims=" %%x in (`%%onecmd%%`) do set drmingw=%%x rem set CMAKE_PREFIX_PATH=%mingw%\%mingw_libs%;%quazip% rem TODO -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=..\install -DNPACKD_FORCE_STATIC:BOOL=%STATIC% -meson setup build\meson +meson setup build if %errorlevel% neq 0 exit /b %errorlevel% -meson compile -C build\meson +meson compile -C build if %errorlevel% neq 0 exit /b %errorlevel% mkdir build\dist -copy build\meson\npackdg.exe build\dist +copy build\npackdg.exe build\dist if %errorlevel% neq 0 exit /b %errorlevel% copy src\CrystalIcons_LICENSE.txt build\dist @@ -44,10 +44,10 @@ rem TODO exeproxy C:\Windows\System32\xcopy.exe build\dist build\dist-debug /E /I /H /Y if %errorlevel% neq 0 exit /b %errorlevel% -strip dist\npackdg.exe +strip build\dist\npackdg.exe if %errorlevel% neq 0 exit /b %errorlevel% -copy build\meson\npackdg.map build\dist-debug +copy build\npackdg.map build\dist-debug if %errorlevel% neq 0 exit /b %errorlevel% copy "%DRMINGW%\bin\exchndl.dll" build\dist-debug From f7abc4aa07b0473da68fb0a5a5b9a1845a12aee0 Mon Sep 17 00:00:00 2001 From: tim/lebedkov Date: Sat, 18 Mar 2023 20:58:02 +0100 Subject: [PATCH 15/15] Meson tests --- npackdg/meson.build | 48 ++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/npackdg/meson.build b/npackdg/meson.build index 0625e98e7..c80ae836d 100644 --- a/npackdg/meson.build +++ b/npackdg/meson.build @@ -74,6 +74,8 @@ conf.set('OUTPUT_FILE_NAME', meson.project_name() + '.exe') configure_file(input: 'src/app.rc.in', output: meson.project_name() + '.rc', configuration: conf) +configure_file(input: 'src/npackdg.manifest', + output: 'npackdg.manifest', copy: true) configure_file(input: 'src/app.ico', output: 'app.ico', copy: true) rc = windows.compile_resources(meson.current_build_dir() / meson.project_name() + '.rc') @@ -91,20 +93,21 @@ foreach f : ['app.png', output: f, copy: true) endforeach + add_project_link_arguments('-Wl,-Map,' + meson.project_name() + '.map', language: 'cpp') -qms = qt5_mod.compile_translations(ts_files: - ['src\\npackdg_ru.ts', - 'src\\npackdg_de.ts', - 'src\\npackdg_es.ts', - 'src\\npackdg_fr.ts']) +qms = qt5_mod.compile_translations(qresource: 'src' / meson.project_name() + '.qrc') configure_file(input: 'src' / meson.project_name() + '.qrc', output: meson.project_name() + '.qrc', copy: true) -processed = qt5_mod.preprocess( - # Only headers that need moc should be put here - moc_headers : ['src/job.h', +uis = qt5_mod.compile_ui(sources: ['src/packageframe.ui', 'src/exportrepositoryframe.ui', + 'src/licenseform.ui', 'src/mainframe.ui', 'src/mainwindow.ui', + 'src/messageframe.ui', 'src/packageversionform.ui', + 'src/settingsframe.ui']) + +# Only headers that need moc should be put here +mocs = qt5_mod.compile_moc(sources: ['src/job.h', 'src/installedpackages.h', 'src/visiblejobs.h', 'src/clprogress.h', 'src/mainwindow.h', @@ -115,14 +118,11 @@ processed = qt5_mod.preprocess( 'src/settingsframe.h', 'src/progresstree2.h', 'src/downloader.h', - 'src/asyncdownloader.h'], - ui_files: ['src/packageframe.ui', 'src/exportrepositoryframe.ui', - 'src/licenseform.ui', 'src/mainframe.ui', 'src/mainwindow.ui', - 'src/messageframe.ui', 'src/packageversionform.ui', - 'src/settingsframe.ui'], - qresources: meson.current_build_dir() / meson.project_name() + '.qrc', -) + 'src/asyncdownloader.h']) +processed = qt5_mod.compile_resources( + sources: meson.current_build_dir() / meson.project_name() + '.qrc', +) # TODO option(NPACKD_ADMIN "Force admin right on program" TRUE) #if(NPACKD_ADMIN) @@ -134,6 +134,22 @@ processed = qt5_mod.preprocess( # TODO /npackdg.qrc # TODO +# set(NPACKDG_FORMS +# src/mainwindow.ui +# src/packageversionform.ui +# src/licenseform.ui +# src/messageframe.ui +# src/settingsframe.ui +# src/packageframe.ui +# src/mainframe.ui +# src/exportrepositoryframe.ui +# ) +# set(NPACKDG_TRANSLATIONS +# src/npackdg_es.ts +# src/npackdg_ru.ts +# src/npackdg_fr.ts +# src/npackdg_de.ts +# ) # QT5_CREATE_TRANSLATION(qm_files src/ ${NPACKDG_TRANSLATIONS} OPTIONS -locations none) # qt5_add_translation(NPACKDG_TRANSLATIONS_QM ${NPACKDG_TRANSLATIONS}) @@ -193,7 +209,7 @@ src = ['src/main.cpp', 'src/dag.cpp', 'src/deptask.cpp', 'src/lockedfiles.cpp', - qms, processed, rc] + mocs, uis, processed, rc] incdir = include_directories('src') executable(meson.project_name(), src, dependencies: deps, include_directories: incdir, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy