From e6b5fb190ff55c23122826a436766a0686ac0d86 Mon Sep 17 00:00:00 2001 From: Priit Laes Date: Wed, 7 Oct 2020 21:43:02 +0300 Subject: [PATCH 1/2] build: Fix dependency management for workbenches Previously the workbench was not disabled even when dependencies were unmet, resulting in eventual compile failure. --- cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake b/cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake index cfd16b4f81..e18b00ff06 100644 --- a/cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake +++ b/cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake @@ -6,11 +6,12 @@ macro(CheckInterModuleDependencies) # modules. Warns if any of the prerequisite modules are disabled. function(REQUIRES_MODS dependent) if(${dependent}) - foreach(prerequisite ${ARGN}) + foreach(prerequisite IN LISTS ARGN) if(NOT ${prerequisite}) - message(WARNING - "${dependent} requires ${ARGN} each be ON, but " - "${prerequisite} is \"${${prerequisite}}\"") + message(STATUS "${dependent} requires ${prerequisite} to be ON, but it" + " is \"${${prerequisite}}\"") + set(${dependent} OFF PARENT_SCOPE) + break() endif(NOT ${prerequisite}) endforeach() endif(${dependent}) From 57648f9291a1f4afd288784c3e9839517b90982e Mon Sep 17 00:00:00 2001 From: Priit Laes Date: Wed, 7 Oct 2020 21:49:23 +0300 Subject: [PATCH 2/2] build: Path workbench depends on Mesh workbench --- cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake b/cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake index e18b00ff06..f2c51f07eb 100644 --- a/cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake +++ b/cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake @@ -29,7 +29,7 @@ macro(CheckInterModuleDependencies) REQUIRES_MODS(BUILD_FLAT_MESH BUILD_MESH_PART) REQUIRES_MODS(BUILD_OPENSCAD BUILD_MESH_PART BUILD_DRAFT) REQUIRES_MODS(BUILD_PART_DESIGN BUILD_SKETCHER) - REQUIRES_MODS(BUILD_PATH BUILD_PART BUILD_ROBOT) + REQUIRES_MODS(BUILD_PATH BUILD_PART BUILD_MESH, BUILD_ROBOT) REQUIRES_MODS(BUILD_RAYTRACING BUILD_PART) REQUIRES_MODS(BUILD_REVERSEENGINEERING BUILD_PART BUILD_MESH) REQUIRES_MODS(BUILD_ROBOT BUILD_PART)