cmake: reset required variables before using and after overriding them

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2021-09-19 05:37:33 +03:00
parent b67086718e
commit dc6806139f
5 changed files with 33 additions and 25 deletions

View file

@ -21,8 +21,9 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
INCLUDE(CheckCSourceCompiles) include(CheckCSourceCompiles)
include(CheckFunctionExists) include(CheckFunctionExists)
include(CMakePushCheckState)
if (LIBPARTED_INCLUDE_DIR AND LIBPARTED_LIBRARY) if (LIBPARTED_INCLUDE_DIR AND LIBPARTED_LIBRARY)
# Already in cache, be silent # Already in cache, be silent
@ -43,10 +44,11 @@ else (LIBPARTED_FS_RESIZE_LIBRARY)
set(LIBPARTED_LIBS ${LIBPARTED_LIBRARY}) set(LIBPARTED_LIBS ${LIBPARTED_LIBRARY})
endif (LIBPARTED_FS_RESIZE_LIBRARY) endif (LIBPARTED_FS_RESIZE_LIBRARY)
cmake_reset_check_state()
set(CMAKE_REQUIRED_INCLUDES ${LIBPARTED_INCLUDE_DIR}) set(CMAKE_REQUIRED_INCLUDES ${LIBPARTED_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${LIBPARTED_LIBS}) set(CMAKE_REQUIRED_LIBRARIES ${LIBPARTED_LIBS})
CHECK_FUNCTION_EXISTS("ped_file_system_clobber" LIBPARTED_FILESYSTEM_SUPPORT) # parted < 3.0 CHECK_FUNCTION_EXISTS("ped_file_system_clobber" LIBPARTED_FILESYSTEM_SUPPORT) # parted < 3.0
CHECK_FUNCTION_EXISTS("ped_file_system_resize" LIBPARTED_FS_RESIZE_LIBRARY_SUPPORT) # parted != 3.0 CHECK_FUNCTION_EXISTS("ped_file_system_resize" LIBPARTED_FS_RESIZE_LIBRARY_SUPPORT) # parted != 3.0
cmake_reset_check_state()
MARK_AS_ADVANCED(LIBPARTED_LIBRARY LIBPARTED_INCLUDE_DIR LIBPARTED_FILESYSTEM_SUPPORT LIBPARTED_FS_RESIZE_LIBRARY LIBPARTED_FS_RESIZE_LIBRARY_SUPPORT) MARK_AS_ADVANCED(LIBPARTED_LIBRARY LIBPARTED_INCLUDE_DIR LIBPARTED_FILESYSTEM_SUPPORT LIBPARTED_FS_RESIZE_LIBRARY LIBPARTED_FS_RESIZE_LIBRARY_SUPPORT)

View file

@ -6,6 +6,7 @@
# For details see the accompanying COPYING-CMAKE-SCRIPTS file. # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
include(CheckStructHasMember) include(CheckStructHasMember)
include(CMakePushCheckState)
IF (LIBNXCL_INCLUDE_DIR AND LIBNXCL_LIBRARIES) IF (LIBNXCL_INCLUDE_DIR AND LIBNXCL_LIBRARIES)
# Already in cache, be silent # Already in cache, be silent
@ -16,22 +17,24 @@ FIND_PATH(LIBNXCL_INCLUDE_DIR nxcl/nxclientlib.h)
FIND_LIBRARY(LIBNXCL_LIBRARIES NAMES nxcl libnxcl) FIND_LIBRARY(LIBNXCL_LIBRARIES NAMES nxcl libnxcl)
IF (LIBNXCL_INCLUDE_DIR AND LIBNXCL_LIBRARIES) IF (LIBNXCL_INCLUDE_DIR AND LIBNXCL_LIBRARIES)
SET(CMAKE_REQUIRED_LIBRARIES "${LIBNXCL_LIBRARIES}" "${CMAKE_REQUIRED_LIBRARIES}") cmake_reset_check_state()
SET(CMAKE_REQUIRED_INCLUDES "${LIBNXCL_INCLUDE_DIR}" "${CMAKE_REQUIRED_INCLUDES}") SET(CMAKE_REQUIRED_LIBRARIES "${LIBNXCL_LIBRARIES}")
CHECK_STRUCT_HAS_MEMBER(nxcl::NXClientLib "getNXSSHProcess()" nxcl/nxclientlib.h LIBNXCL_NXSSHPROCESS_FOUND) SET(CMAKE_REQUIRED_INCLUDES "${LIBNXCL_INCLUDE_DIR}")
CHECK_STRUCT_HAS_MEMBER(nxcl::NXClientLib "getXID()" nxcl/nxclientlib.h LIBNXCL_XID_FOUND) CHECK_STRUCT_HAS_MEMBER(nxcl::NXClientLib "getNXSSHProcess()" nxcl/nxclientlib.h LIBNXCL_NXSSHPROCESS_FOUND)
CHECK_STRUCT_HAS_MEMBER(nxcl::NXClientLib "getXID()" nxcl/nxclientlib.h LIBNXCL_XID_FOUND)
cmake_reset_check_state()
ENDIF (LIBNXCL_INCLUDE_DIR AND LIBNXCL_LIBRARIES) ENDIF (LIBNXCL_INCLUDE_DIR AND LIBNXCL_LIBRARIES)
IF (LIBNXCL_NXSSHPROCESS_FOUND AND LIBNXCL_XID_FOUND) IF (LIBNXCL_NXSSHPROCESS_FOUND AND LIBNXCL_XID_FOUND)
SET(LIBNXCL_FOUND TRUE) SET(LIBNXCL_FOUND TRUE)
IF (NOT LIBNXCL_FIND_QUIETLY) IF (NOT LIBNXCL_FIND_QUIETLY)
MESSAGE(STATUS "Found LibNXCL: ${LIBNXCL_LIBRARIES}") MESSAGE(STATUS "Found LibNXCL: ${LIBNXCL_LIBRARIES}")
ENDIF (NOT LIBNXCL_FIND_QUIETLY) ENDIF (NOT LIBNXCL_FIND_QUIETLY)
ELSE (LIBNXCL_NXSSHPROCESS_FOUND AND LIBNXCL_XID_FOUND) ELSE (LIBNXCL_NXSSHPROCESS_FOUND AND LIBNXCL_XID_FOUND)
SET(LIBNXCL_FOUND FALSE) SET(LIBNXCL_FOUND FALSE)
IF (LIBNXCL_FIND_REQUIRED) IF (LIBNXCL_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could NOT find acceptable version of LibNXCL (version 1.0).") MESSAGE(FATAL_ERROR "Could NOT find acceptable version of LibNXCL (version 1.0).")
ENDIF (LIBNXCL_FIND_REQUIRED) ENDIF (LIBNXCL_FIND_REQUIRED)
ENDIF (LIBNXCL_NXSSHPROCESS_FOUND AND LIBNXCL_XID_FOUND) ENDIF (LIBNXCL_NXSSHPROCESS_FOUND AND LIBNXCL_XID_FOUND)
MARK_AS_ADVANCED(LIBNXCL_INCLUDE_DIR LIBNXCL_LIBRARIES) MARK_AS_ADVANCED(LIBNXCL_INCLUDE_DIR LIBNXCL_LIBRARIES)

View file

@ -7,6 +7,7 @@
# For details see the accompanying COPYING-CMAKE-SCRIPTS file. # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
INCLUDE(CheckStructHasMember) INCLUDE(CheckStructHasMember)
INCLUDE(CMakePushCheckState)
IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES) IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
# Already in cache, be silent # Already in cache, be silent
@ -24,18 +25,20 @@ FIND_PATH(LIBVNCCLIENT_INCLUDE_DIR rfb/rfbclient.h)
FIND_LIBRARY(LIBVNCCLIENT_LIBRARIES NAMES vncclient libvncclient) FIND_LIBRARY(LIBVNCCLIENT_LIBRARIES NAMES vncclient libvncclient)
IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES) IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
SET(CMAKE_REQUIRED_INCLUDES "${LIBVNCSERVER_INCLUDE_DIR}" "${CMAKE_REQUIRED_INCLUDES}") cmake_reset_check_state()
CHECK_STRUCT_HAS_MEMBER(rfbClient GotXCutText rfb/rfbclient.h LIBVNCSERVER_FOUND) SET(CMAKE_REQUIRED_INCLUDES "${LIBVNCSERVER_INCLUDE_DIR}")
CHECK_STRUCT_HAS_MEMBER(rfbClient GotXCutText rfb/rfbclient.h LIBVNCSERVER_FOUND)
cmake_reset_check_state()
ENDIF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES) ENDIF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
IF (LIBVNCSERVER_FOUND) IF (LIBVNCSERVER_FOUND)
IF (NOT LIBVNCSERVER_FIND_QUIETLY) IF (NOT LIBVNCSERVER_FIND_QUIETLY)
MESSAGE(STATUS "Found LibVNCServer: ${LIBVNCSERVER_LIBRARIES}") MESSAGE(STATUS "Found LibVNCServer: ${LIBVNCSERVER_LIBRARIES}")
ENDIF (NOT LIBVNCSERVER_FIND_QUIETLY) ENDIF (NOT LIBVNCSERVER_FIND_QUIETLY)
ELSE (LIBVNCSERVER_FOUND) ELSE (LIBVNCSERVER_FOUND)
IF (LIBVNCSERVER_FIND_REQUIRED) IF (LIBVNCSERVER_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could NOT find acceptable version of LibVNCServer (version 0.9 or later required).") MESSAGE(FATAL_ERROR "Could NOT find acceptable version of LibVNCServer (version 0.9 or later required).")
ENDIF (LIBVNCSERVER_FIND_REQUIRED) ENDIF (LIBVNCSERVER_FIND_REQUIRED)
ENDIF (LIBVNCSERVER_FOUND) ENDIF (LIBVNCSERVER_FOUND)
MARK_AS_ADVANCED(LIBVNCSERVER_INCLUDE_DIR LIBVNCSERVER_LIBRARIES) MARK_AS_ADVANCED(LIBVNCSERVER_INCLUDE_DIR LIBVNCSERVER_LIBRARIES)

View file

@ -48,7 +48,7 @@ int main(void)
return 0; return 0;
} }
" PAM_MESSAGE_CONST) " PAM_MESSAGE_CONST)
cmake_reset_check_state() cmake_reset_check_state()
endif() endif()
set(PAM_MESSAGE_CONST ${PAM_MESSAGE_CONST} CACHE BOOL "PAM expects a conversation function with const pam_message") set(PAM_MESSAGE_CONST ${PAM_MESSAGE_CONST} CACHE BOOL "PAM expects a conversation function with const pam_message")

View file

@ -31,8 +31,8 @@ if(SAMBA_INCLUDE_DIR AND SAMBA_LIBRARIES)
include(CheckSymbolExists) include(CheckSymbolExists)
include(CMakePushCheckState) include(CMakePushCheckState)
cmake_reset_check_state() cmake_reset_check_state()
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${SAMBA_LIBRARIES}) set(CMAKE_REQUIRED_LIBRARIES ${SAMBA_LIBRARIES})
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${SAMBA_INCLUDE_DIR}) set(CMAKE_REQUIRED_INCLUDES ${SAMBA_INCLUDE_DIR})
check_symbol_exists(smbc_set_context "libsmbclient.h" SAMBA_HAVE_SMBC_SET_CONTEXT) check_symbol_exists(smbc_set_context "libsmbclient.h" SAMBA_HAVE_SMBC_SET_CONTEXT)
check_symbol_exists(smbc_option_set "libsmbclient.h" SAMBA_HAVE_SMBC_OPTION_SET) check_symbol_exists(smbc_option_set "libsmbclient.h" SAMBA_HAVE_SMBC_OPTION_SET)
cmake_reset_check_state() cmake_reset_check_state()