diff options
author | Eike Ziller <eike.ziller@qt.io> | 2022-10-05 13:07:07 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2022-10-07 09:15:33 +0000 |
commit | c72a9197a46695439ba4e59043d7d71993c477bc (patch) | |
tree | caed97bef52dfae2506c3cd11e0162cae7464149 /scripts | |
parent | fcb79ee8108e8332e92e53884320623c0d6d5a3e (diff) | |
download | qt-creator-c72a9197a46695439ba4e59043d7d71993c477bc.tar.gz |
build.py: Add option to call cpack
Adds --with-cpack option.
- macOS: does nothing (we already create a better, signed disk image)
- Linux: creates qtcreator.deb in build directory
- Windows: Checks for NSIS and WIX installation,
creates qtcreator.exe and qtcreator.msi as appropriate
Change-Id: Ie7816d04cb2e01e90795481e1519b0a6645f5cd3
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/build.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/scripts/build.py b/scripts/build.py index e9aecc0132..d69c6e1286 100755 --- a/scripts/build.py +++ b/scripts/build.py @@ -7,8 +7,8 @@ from __future__ import print_function import argparse import collections -import glob import os +import shutil import common @@ -70,6 +70,8 @@ def get_arguments(): action='store_true', default=False) parser.add_argument('--with-pch', help='Enable building with PCH', action='store_true', default=False) + parser.add_argument('--with-cpack', help='Create packages with cpack', + action='store_true', default=False) parser.add_argument('--add-path', help='Prepends a CMAKE_PREFIX_PATH to the build', action='append', dest='prefix_paths', default=[]) parser.add_argument('--add-module-path', help='Prepends a CMAKE_MODULE_PATH to the build', @@ -92,6 +94,23 @@ def get_arguments(): if not args.qt_path and not args.no_qtcreator: parser.error("argument --qt-path is required if --no-qtcreator is not given") + + if args.with_cpack: + if common.is_mac_platform(): + print('warning: --with-cpack is not supported on macOS, turning off') + args.with_cpack = False + elif common.is_linux_platform(): + args.cpack_generators = ['DEB'] + elif common.is_windows_platform(): + args.cpack_generators = [] + if shutil.which('makensis'): + args.cpack_generators += ['NSIS64'] + if shutil.which('candle') and shutil.which('torch'): + args.cpack_generators += ['WIX'] + else: + print('warning: could not find NSIS or WIX, turning cpack off') + args.with_cpack = False + return args def common_cmake_arguments(args): @@ -149,7 +168,6 @@ def build_qtcreator(args, paths): '-DBUILD_DEVELOPER_DOCS=' + cmake_option(not args.no_docs), '-DBUILD_EXECUTABLE_SDKTOOL=OFF', '-DQTC_FORCE_XCB=ON', - '-DCMAKE_INSTALL_PREFIX=' + common.to_posix_path(paths.install), '-DWITH_TESTS=' + cmake_option(args.with_tests)] cmake_args += common_cmake_arguments(args) @@ -168,6 +186,9 @@ def build_qtcreator(args, paths): cmake_args += ['-DWITH_SANITIZE=ON', '-DSANITIZE_FLAGS=' + ",".join(args.sanitize_flags)] + if args.with_cpack: + cmake_args += ['-DCPACK_PACKAGE_FILE_NAME=qtcreator' + args.zip_infix] + cmake_args += args.config_args common.check_print_call(cmake_args + [paths.src], paths.build) @@ -288,6 +309,8 @@ def package_qtcreator(args, paths): paths.src, paths.install], paths.result) + if args.with_cpack and args.cpack_generators: + common.check_print_call(['cpack', '-G', ';'.join(args.cpack_generators)], paths.build) def get_paths(args): |