mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
97 lines
2.8 KiB
CMake
97 lines
2.8 KiB
CMake
# - Try to find the Selenium browser drivers
|
|
# Once run, this macro will define the following
|
|
#
|
|
# CHROMEDRIVER_EXECUTABLE
|
|
# FIREFOXDRIVER_EXTENSION
|
|
# IEDRIVER_EXECUTABLE
|
|
# SAFARIDRIVER_EXTENSION
|
|
|
|
# This is a standard find, as the chromedriver executable is an
|
|
# external program on the system
|
|
find_program(CHROMEDRIVER_EXECUTABLE
|
|
NAMES chromedriver
|
|
PATHS CHROMEDRIVER_HOME ENV PATH
|
|
PATH_SUFFIXES chromedriver bin chromedriver/bin
|
|
)
|
|
|
|
# Now check if the firefox selenium driver extension is available
|
|
set(DO_FIREFOX_DRIVER_EXTENSION_CHECK FALSE)
|
|
|
|
# The execute_process which runs python to check for the presence of
|
|
# the firefox webdriver should only be run if either the
|
|
# FIREFOXDRIVER_EXTENSION variable is not yet defined or if it came
|
|
# up NOTFOUND in the past. Because CMake does not seem to do short-
|
|
# circuit evaluation, we have to do this check in multiple steps.
|
|
if(NOT DEFINED FIREFOXDRIVER_EXTENSION)
|
|
set(DO_FIREFOX_DRIVER_EXTENSION_CHECK TRUE)
|
|
endif()
|
|
|
|
if(NOT ${DO_FIREFOX_DRIVER_EXTENSION_CHECK})
|
|
if(${FIREFOXDRIVER_EXTENSION} MATCHES "NOTFOUND")
|
|
set(DO_FIREFOX_DRIVER_EXTENSION_CHECK TRUE)
|
|
endif()
|
|
endif()
|
|
|
|
if(${DO_FIREFOX_DRIVER_EXTENSION_CHECK})
|
|
# The selenium firefox driver is not an external program, but rather
|
|
# a Firefox extension. This approach to finding the firefox selenium
|
|
# webdriver seems to work, but it pops up a browser window, which is
|
|
# less than desirable. Improving this is something we will have to
|
|
# think about in the future.
|
|
execute_process(COMMAND ${PYTHON_EXECUTABLE}
|
|
-c
|
|
"
|
|
import os
|
|
|
|
try :
|
|
import selenium
|
|
from selenium import webdriver
|
|
browser = webdriver.Firefox()
|
|
browser.quit()
|
|
except :
|
|
os._exit(0)
|
|
|
|
os._exit(1)
|
|
"
|
|
RESULT_VARIABLE HAS_FIREFOXDRIVER_EXTENSION)
|
|
|
|
if("1" STREQUAL ${HAS_FIREFOXDRIVER_EXTENSION})
|
|
set(FIREFOX_EXT_VALUE "FIREFOXDRIVER_EXTENSION-FOUND")
|
|
else()
|
|
set(FIREFOX_EXT_VALUE "FIREFOXDRIVER_EXTENSION-NOTFOUND")
|
|
endif()
|
|
|
|
set(FIREFOXDRIVER_EXTENSION
|
|
${FIREFOX_EXT_VALUE}
|
|
CACHE
|
|
STRING
|
|
"The location or presence of the Selenium Firefox driver extension"
|
|
FORCE)
|
|
endif()
|
|
|
|
# TODO: Actually find these things
|
|
set(IEDRIVER_EXECUTABLE
|
|
"IEDRIVER_EXECUTABLE-NOTFOUND"
|
|
CACHE
|
|
STRING
|
|
"The location of the Selenium Internet Explorer driver executable")
|
|
|
|
set(SAFARIDRIVER_EXTENSION
|
|
"SAFARIDRIVER_EXTENSION-NOTFOUND"
|
|
CACHE
|
|
STRING
|
|
"The location or presence of the Selenium Safari driver executable")
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(SeleniumDrivers
|
|
DEFAULT_MSG
|
|
CHROMEDRIVER_EXECUTABLE
|
|
FIREFOXDRIVER_EXTENSION
|
|
IEDRIVER_EXECUTABLE
|
|
SAFARIDRIVER_EXTENSION )
|
|
|
|
mark_as_advanced(CHROMEDRIVER_EXECUTABLE)
|
|
mark_as_advanced(FIREFOXDRIVER_EXTENSION)
|
|
mark_as_advanced(IEDRIVER_EXECUTABLE)
|
|
mark_as_advanced(SAFARIDRIVER_EXTENSION)
|