diff --git a/CMakeLists.txt b/CMakeLists.txt index abdcfe164d70111beb27869728b500ae13236ad1..3c1bbe7c28d9bf5de0d233f73ae07d4f07a1aee7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,10 +116,16 @@ if (BUILD_CONTRIB) WORKING_DIRECTORY ${CONTRIB_BUILD_PATH}) else() set(SCRIPTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/extras/scripts) - execute_process(COMMAND python -m pip install ${SCRIPTS_DIR}/pywinmake) execute_process( COMMAND python ${SCRIPTS_DIR}/winmake.py - WORKING_DIRECTORY ${SCRIPTS_DIR}) + WORKING_DIRECTORY ${SCRIPTS_DIR} + RESULT_VARIABLE BUILD_RESULT + ) + if (BUILD_RESULT) + message(FATAL_ERROR "Contrib build failed.") + else() + message(STATUS "Contrib build successful.") + endif() endif() endif() diff --git a/extras/scripts/winmake.py b/extras/scripts/winmake.py index aad43a81dbc09a1168d795ea847ae4987a5e1a0f..aa0e7f8f673e7571457e97536385610f3de5e756 100644 --- a/extras/scripts/winmake.py +++ b/extras/scripts/winmake.py @@ -11,6 +11,7 @@ import os import time from datetime import timedelta import argparse +import sys from pywinmake.utils import log, logger, sh_exec from pywinmake.package import Versioner, Paths, Operation, Package @@ -77,7 +78,11 @@ def build_from_dir(path, out_dir=None): # Build the package at the given path. out_dir = os.path.join(path, "build") if out_dir is None else out_dir pkg = Package(src_dir=path, buildsrc_dir=out_dir) - builder.build(pkg) + if builder.build(pkg): + log.info(f"Package {pkg.name} built successfully.") + else: + log.error(f"Package {pkg.name} failed to build.") + sys.exit(1) def main(): start_time = time.time()