diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2020-03-29 00:02:48 +0000 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2020-03-29 00:02:48 +0000 |
commit | 95c97750137e4a9af144ac8531aed392501d7095 (patch) | |
tree | 6c3019e104fb323e7a5293da63dc5c4ac49960f7 /project/cmake | |
parent | project.boost: factor out everything else (diff) | |
download | cmake-common-95c97750137e4a9af144ac8531aed392501d7095.tar.gz cmake-common-95c97750137e4a9af144ac8531aed392501d7095.zip |
project.cmake: factor out common utils
Diffstat (limited to '')
-rw-r--r-- | project/cmake/build.py | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/project/cmake/build.py b/project/cmake/build.py index 89ac6da..2400db2 100644 --- a/project/cmake/build.py +++ b/project/cmake/build.py @@ -36,23 +36,13 @@ cmake/toolchains in this repository for examples). import argparse from contextlib import contextmanager import logging -from enum import Enum import os import os.path -import subprocess import sys import tempfile from project.configuration import Configuration - - -def _run_executable(cmd_line): - logging.info('Running executable: %s', cmd_line) - return subprocess.run(cmd_line, check=True) - - -def _run_cmake(cmake_args): - _run_executable(['cmake'] + cmake_args) +import project.utils @contextmanager @@ -92,7 +82,7 @@ class GenerationPhase: return result def run(self): - _run_cmake(self._cmake_args()) + project.utils.run_cmake(self._cmake_args()) class BuildPhase: @@ -113,11 +103,7 @@ class BuildPhase: return result def run(self): - _run_cmake(self._cmake_args()) - - -def _parse_dir(s): - return os.path.abspath(os.path.normpath(s)) + project.utils.run_cmake(self._cmake_args()) def _parse_args(argv=None): @@ -130,16 +116,16 @@ def _parse_args(argv=None): formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument('--build', metavar='DIR', dest='build_dir', - type=_parse_dir, + type=project.utils.normalize_path, help='build directory (temporary directory unless specified)') parser.add_argument('--install', metavar='DIR', dest='install_dir', - type=_parse_dir, + type=project.utils.normalize_path, help='install directory') parser.add_argument('--configuration', metavar='CONFIG', type=Configuration.parse, default=Configuration.DEBUG, help=f'build configuration ({"/".join(map(str, Configuration))})') parser.add_argument('src_dir', metavar='DIR', - type=_parse_dir, + type=project.utils.normalize_path, help='source directory') parser.add_argument('cmake_args', nargs='*', metavar='CMAKE_ARG', help='additional CMake arguments, to be passed verbatim') @@ -147,12 +133,6 @@ def _parse_args(argv=None): return args -def _setup_logging(): - logging.basicConfig( - format='%(asctime)s | %(levelname)s | %(message)s', - level=logging.INFO) - - def build(argv=None): args = _parse_args(argv) with _create_build_dir(args) as build_dir: @@ -163,12 +143,8 @@ def build(argv=None): def main(argv=None): - _setup_logging() - try: + with project.utils.setup_logging(): build(argv) - except Exception as e: - logging.exception(e) - raise if __name__ == '__main__': |