From f4bb5c8fec690156791bb23e81fb250c86038d16 Mon Sep 17 00:00:00 2001 From: Tobias Kortkamp Date: Thu, 18 Apr 2019 14:28:07 +0000 Subject: [PATCH] Flag nop options helpers that appear after bsd.port.options.mk as DEV_ERRORs Approved by: portmgr (mat) Differential Revision: https://reviews.freebsd.org/D19553 --- Mk/bsd.options.mk | 21 +++++++++++++++++++++ Mk/bsd.sanity.mk | 12 ++++++++++++ 2 files changed, 33 insertions(+) diff --git a/Mk/bsd.options.mk b/Mk/bsd.options.mk index 56eb4f026715..64673a02e785 100644 --- a/Mk/bsd.options.mk +++ b/Mk/bsd.options.mk @@ -192,6 +192,15 @@ _OPTIONS_FLAGS= ALL_TARGET BROKEN CATEGORIES CFLAGS CONFIGURE_ENV CONFLICTS \ PLIST_SUB PORTDOCS PORTEXAMPLES SUB_FILES SUB_LIST \ TEST_TARGET USES BINARY_ALIAS _OPTIONS_DEPENDS= PKG FETCH EXTRACT PATCH BUILD LIB RUN TEST +_ALL_OPTIONS_HELPERS= ${_OPTIONS_DEPENDS:S/$/_DEPENDS/} \ + ${_OPTIONS_DEPENDS:S/$/_DEPENDS_OFF/} \ + ${_OPTIONS_FLAGS:S/$/_OFF/} ${_OPTIONS_FLAGS} \ + CMAKE_BOOL CMAKE_BOOL_OFF CMAKE_OFF CMAKE_ON \ + CONFIGURE_ENABLE CONFIGURE_OFF CONFIGURE_ON \ + CONFIGURE_WITH IMPLIES MESON_ARGS MESON_DISABLED \ + MESON_ENABLED MESON_FALSE MESON_OFF MESON_ON MESON_TRUE \ + PREVENTS PREVENTS_MSG QMAKE_OFF QMAKE_ON USE USE_OFF \ + VARS VARS_OFF # The format here is target_family:priority:target-type _OPTIONS_TARGETS= fetch:300:pre fetch:500:do fetch:700:post \ @@ -608,6 +617,18 @@ _OPTIONS_${_target}:= ${_OPTIONS_${_target}} ${_prio}:${_type}-${_target}-${opt} . endif .endfor +# Collect which options helpers are defined at this point for +# bsd.sanity.mk later to make sure no other options helper is +# defined after bsd.port.options.mk. +_OPTIONS_HELPERS_SEEN= +.for opt in ${_REALLY_ALL_POSSIBLE_OPTIONS} +. for helper in ${_ALL_OPTIONS_HELPERS} +. if defined(${opt}_${helper}) +_OPTIONS_HELPERS_SEEN+= ${opt}_${helper} +. endif +. endfor +.endfor + .undef (SELECTED_OPTIONS) .undef (DESELECTED_OPTIONS) # Wait to expand PORT_OPTIONS until the last moment in case something modifies diff --git a/Mk/bsd.sanity.mk b/Mk/bsd.sanity.mk index e1cfcf0a6b32..143a2e73a487 100644 --- a/Mk/bsd.sanity.mk +++ b/Mk/bsd.sanity.mk @@ -168,6 +168,18 @@ DEV_ERROR+= "PORT${_type} does not do anything unless the ${_type} option is pre . endif .endfor +_BROKEN_OPTIONS_HELPERS= +.for opt in ${_REALLY_ALL_POSSIBLE_OPTIONS} +. for helper in ${_ALL_OPTIONS_HELPERS} +. if defined(${opt}_${helper}) && empty(_OPTIONS_HELPERS_SEEN:M${opt}_${helper}) +_BROKEN_OPTIONS_HELPERS+= ${opt}_${helper} +. endif +. endfor +.endfor +.if !empty(_BROKEN_OPTIONS_HELPERS) +DEV_ERROR+= "The following options helpers are incorrectly set after bsd.port.options.mk and are ineffective: ${_BROKEN_OPTIONS_HELPERS}" +.endif + SANITY_UNSUPPORTED= USE_OPENAL USE_FAM USE_MAKESELF USE_ZIP USE_LHA USE_CMAKE \ USE_READLINE USE_ICONV PERL_CONFIGURE PERL_MODBUILD \ USE_PERL5_BUILD USE_PERL5_RUN USE_DISPLAY USE_FUSE \