From d2f20ab217c3e21bb573a3d4b1f90b1248f5b8b3 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 27 Jun 2019 07:39:24 -0400 Subject: RC: Honor CMAKE_USER_MAKE_RULES_OVERRIDE Since the refactoring in commit 48f7e2d300 (Unhardcode the CMAKE_CONFIGURATION_TYPES values, 2017-11-27, v3.11.0-rc1~130^2~1), `CMAKE_BUILD_TYPE` is initialized while enabling the RC language. Therefore we need to honor `CMAKE_USER_MAKE_RULES_OVERRIDE` as part of enabling RC so that a `CMAKE_BUILD_TYPE_INIT` setting in the override file is honored. Fixes: #19401 --- Modules/CMakeRCInformation.cmake | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Modules/CMakeRCInformation.cmake b/Modules/CMakeRCInformation.cmake index 7bf6567..7c3a5ab 100644 --- a/Modules/CMakeRCInformation.cmake +++ b/Modules/CMakeRCInformation.cmake @@ -17,6 +17,17 @@ set(CMAKE_SYSTEM_AND_RC_COMPILER_INFO_FILE ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake) include(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL) +# This should be included before the _INIT variables are +# used to initialize the cache. Since the rule variables +# have if blocks on them, users can still define them here. +# But, it should still be after the platform file so changes can +# be made to those values. +if(CMAKE_USER_MAKE_RULES_OVERRIDE) + # Save the full path of the file so try_compile can use it. + include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override) + set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}") +endif() + set(CMAKE_RC_FLAGS_INIT "$ENV{RCFLAGS} ${CMAKE_RC_FLAGS_INIT}") cmake_initialize_per_config_variable(CMAKE_RC_FLAGS "Flags for Windows Resource Compiler") -- cgit v0.12