From 16683cad7f69de3d5f3a4dc8ebd383cf30e4fe99 Mon Sep 17 00:00:00 2001 From: "Roscoe A. Bartlett" Date: Tue, 22 Sep 2020 17:48:54 -0600 Subject: [PATCH] Automatic snapshot commit from tribits at 1ed3811 Origin repo remote tracking branch: 'github/master' Origin repo remote repo URL: 'github = git@github.com:TriBITSPub/TriBITS.git' At commit: commit 1ed38115c6b9fefe8442eb4ce7e420eb2e688ad7 Author: Roscoe A. Bartlett Date: Tue Sep 22 16:06:21 2020 -0600 Summary: Generate error when trying to set install perms/group mod options on Windows (#314) Brings in changes from TriBITS PR: * TriBITSPub/TriBITS#331 --- ...TribitsAddInstallGroupAndPermsFixups.cmake | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/cmake/tribits/core/package_arch/TribitsAddInstallGroupAndPermsFixups.cmake b/cmake/tribits/core/package_arch/TribitsAddInstallGroupAndPermsFixups.cmake index ed48dfa401d5..7404720ea166 100644 --- a/cmake/tribits/core/package_arch/TribitsAddInstallGroupAndPermsFixups.cmake +++ b/cmake/tribits/core/package_arch/TribitsAddInstallGroupAndPermsFixups.cmake @@ -1,24 +1,59 @@ INCLUDE(Join) INCLUDE(TribitsFilepathHelpers) +INCLUDE(AppendStringVarWithSep) + + +FUNCTION(TRIBITS_RAISE_INSTALL_PERMS_MODS_NOT_SUPPORTED_ON_WINDOWS_ERROR) + + SET(INSTALL_PERMS_SET "") + TRIBITS_APPEND_INSTALL_PERMS_VAR_NOT_SUPPORTED( + ${PROJECT_NAME}_MAKE_INSTALL_GROUP_WRITABLE) + TRIBITS_APPEND_INSTALL_PERMS_VAR_NOT_SUPPORTED( + ${PROJECT_NAME}_MAKE_INSTALL_GROUP_READABLE) + TRIBITS_APPEND_INSTALL_PERMS_VAR_NOT_SUPPORTED( + ${PROJECT_NAME}_MAKE_INSTALL_WORLD_READABLE) + TRIBITS_APPEND_INSTALL_PERMS_VAR_NOT_SUPPORTED( + ${PROJECT_NAME}_MAKE_INSTALL_GROUP) + + MESSAGE(FATAL_ERROR + "ERROR: The options:\n" + "${INSTALL_PERMS_SET}" + "are not supported on Windows!\n" + "Please remove these options and configure from scratch!" + ) + +ENDFUNCTION() + + +# Reads and writes var INSTALL_PERMS_SET in above function +MACRO(TRIBITS_APPEND_INSTALL_PERMS_VAR_NOT_SUPPORTED VAR_NAME) + IF (NOT "${${VAR_NAME}}" STREQUAL "") + SET(INSTALL_PERMS_SET "${INSTALL_PERMS_SET} ${VAR_NAME}='${${VAR_NAME}}'\n") + ENDIF() +ENDMACRO() FUNCTION(TRIBITS_DETERMINE_IF_SETUP_FOR_GROUP_AND_PERMS_MODIFICATIONS SETUP_FOR_GROUP_AND_PERMS_MODIFICATIONS_OUT ) - IF (CMAKE_SYSTEM_NAME STREQUAL "Windows") - SET(setupForGroupAndPermsModifications FALSE) - ELSEIF( + IF( ${PROJECT_NAME}_MAKE_INSTALL_GROUP_WRITABLE OR ${PROJECT_NAME}_MAKE_INSTALL_GROUP_READABLE OR ${PROJECT_NAME}_MAKE_INSTALL_WORLD_READABLE OR - ${PROJECT_NAME}_MAKE_INSTALL_GROUP + (NOT "${${PROJECT_NAME}_MAKE_INSTALL_GROUP}" STREQUAL "") ) SET(setupForGroupAndPermsModifications TRUE) ELSE() SET(setupForGroupAndPermsModifications FALSE) ENDIF() + IF (setupForGroupAndPermsModifications AND + ${PROJECT_NAME}_HOSTTYPE STREQUAL "Windows" + ) + TRIBITS_RAISE_INSTALL_PERMS_MODS_NOT_SUPPORTED_ON_WINDOWS_ERROR() + ENDIF() + SET(${SETUP_FOR_GROUP_AND_PERMS_MODIFICATIONS_OUT} ${setupForGroupAndPermsModifications} PARENT_SCOPE)