diff --git a/CMCONF.cmake b/CMCONF.cmake index 484ea83..cca45dd 100644 --- a/CMCONF.cmake +++ b/CMCONF.cmake @@ -203,14 +203,15 @@ FUNCTION(CMCONF_INIT_SYSTEM system_name) _CMCONF_CHECK_AND_NORMALIZE_SYSTEM_NAME("${system_name}" system_name_upper) IF(CMCONF_SYSTEM_NAME) IF(NOT CMCONF_SYSTEM_NAME STREQUAL "${system_name_upper}") - IF(NOT CMCONF_SYSTEM_NAME_OVERRIDE_ALLOWED) - _CMCONF_MESSAGE(FATAL_ERROR "System name already set. Cannot change system name from '${CMCONF_SYSTEM_NAME}' to '${system_name_upper}'") - ELSE() + IF(CMCONF_SYSTEM_NAME_OVERRIDE_ALLOWED) _CMCONF_MESSAGE(WARNING "Overriding system name from '${CMCONF_SYSTEM_NAME}' to '${system_name_upper}'") + ELSE() + _CMCONF_MESSAGE(FATAL_ERROR "System name already set. Cannot change system name from '${CMCONF_SYSTEM_NAME}' to '${system_name_upper}'") ENDIF() ENDIF() + ELSE() + SET_PROPERTY(CACHE CMCONF_SYSTEM_NAME PROPERTY VALUE "${system_name_upper}") ENDIF() - SET_PROPERTY(CACHE CMCONF_SYSTEM_NAME PROPERTY VALUE "${system_name_upper}") IF(NOT DEFINED CMAKE_FIND_PACKAGE_NAME) IF(CMCONF_UNINSTALL AND CMCONF_INSTALL_AS_SYMLINK) diff --git a/test/test_cases/pass/system_name_override_allowed/CMakeLists.txt b/test/test_cases/pass/system_name_override_allowed/CMakeLists.txt index a2c06ab..224367a 100644 --- a/test/test_cases/pass/system_name_override_allowed/CMakeLists.txt +++ b/test/test_cases/pass/system_name_override_allowed/CMakeLists.txt @@ -13,6 +13,6 @@ FIND_PACKAGE(CMLIB REQUIRED) INCLUDE("${CMAKE_CURRENT_LIST_DIR}/../../../TEST.cmake") TEST_RUN_AND_CHECK_OUTPUT("test_config" - WARNING_MESSAGE "CMCONF\\\\[FIRST_SYSTEM\\\\] - Overriding system name from 'FIRST_SYSTEM' to.*'SECOND_SYSTEM'" + WARNING_MESSAGE "CMCONF\\\\[OVERRIDE_SYSTEM\\\\] - Overriding system name from 'OVERRIDE_SYSTEM' to.*'ORIGINAL_SYSTEM'" ) diff --git a/test/test_cases/pass/system_name_override_allowed/test_config/CMakeLists.txt b/test/test_cases/pass/system_name_override_allowed/test_config/CMakeLists.txt index 653b0f7..166c03f 100644 --- a/test/test_cases/pass/system_name_override_allowed/test_config/CMakeLists.txt +++ b/test/test_cases/pass/system_name_override_allowed/test_config/CMakeLists.txt @@ -7,13 +7,12 @@ FIND_PACKAGE(CMLIB REQUIRED) INCLUDE("${CMAKE_CURRENT_LIST_DIR}/../../../../../CMCONF.cmake") -SET(CMCONF_SYSTEM_NAME_OVERRIDE_ALLOWED ON CACHE INTERNAL "" FORCE) +SET(CMCONF_SYSTEM_NAME_OVERRIDE_ALLOWED ON CACHE BOOL "" FORCE) +SET(CMCONF_SYSTEM_NAME "OVERRIDE_SYSTEM" CACHE STRING "" FORCE) -CMCONF_INIT_SYSTEM("FIRST_SYSTEM") +CMCONF_INIT_SYSTEM("ORIGINAL_SYSTEM") -CMCONF_INIT_SYSTEM("SECOND_SYSTEM") - -IF(NOT CMCONF_SYSTEM_NAME STREQUAL "SECOND_SYSTEM") - MESSAGE(FATAL_ERROR "System name should be SECOND_SYSTEM but is '${CMCONF_SYSTEM_NAME}'") +IF(NOT CMCONF_SYSTEM_NAME STREQUAL "OVERRIDE_SYSTEM") + MESSAGE(FATAL_ERROR "System name should be OVERRIDE_SYSTEM but is '${CMCONF_SYSTEM_NAME}'") ENDIF()