diff options
Diffstat (limited to 'cmake/FindGn.cmake')
-rw-r--r-- | cmake/FindGn.cmake | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/cmake/FindGn.cmake b/cmake/FindGn.cmake new file mode 100644 index 000000000..fd03b7346 --- /dev/null +++ b/cmake/FindGn.cmake @@ -0,0 +1,50 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +if(NOT DEFINED WEBENGINE_ROOT_BUILD_DIR) + set(WEBENGINE_ROOT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}) +endif() +find_program(Gn_EXECUTABLE NAMES gn PATHS "${WEBENGINE_ROOT_BUILD_DIR}/install/bin" NO_DEFAULT_PATH) +if(NOT QT_HOST_PATH STREQUAL "") + find_program(Gn_EXECUTABLE NAMES gn PATHS ${QT_HOST_PATH}/${INSTALL_LIBEXECDIR} NO_DEFAULT_PATH) + # note: mingw installs with INSTALL_LIBEXECDIR = bin, + # however android on windows has INSTALL_LIBEXECDIR = libexec, + # so cover this case also + find_program(Gn_EXECUTABLE NAMES gn PATHS ${QT_HOST_PATH}/${INSTALL_BINDIR} NO_DEFAULT_PATH) +endif() +find_program(Gn_EXECUTABLE NAMES gn) + +if(Gn_EXECUTABLE) + execute_process( + COMMAND ${Gn_EXECUTABLE} --version + OUTPUT_VARIABLE Gn_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() + +string(REGEX MATCHALL "([1-9]\\.[0-9]\\.[0-9])\\.qtwebengine\\.qt\\.io.*" Gn_QT_VERSION "${Gn_VERSION}") +if("${Gn_QT_VERSION}") + set(Gn_VERSION "${Gn_QT_VERSION}") +endif() + +include(FindPackageHandleStandardArgs) + +find_package_handle_standard_args(Gn + FOUND_VAR + Gn_FOUND + VERSION_VAR + Gn_VERSION + REQUIRED_VARS + Gn_EXECUTABLE +) + +if(Gn_FOUND AND NOT TARGET Gn::gn AND NOT CMAKE_SCRIPT_MODE_FILE) + add_executable(Gn::gn IMPORTED) + set_property(TARGET Gn::gn PROPERTY IMPORTED_LOCATION ${Gn_EXECUTABLE}) +endif() + +include(FeatureSummary) +set_package_properties(Gn PROPERTIES + URL "https://gn.googlesource.com/gn/" + DESCRIPTION "Meta-build system" +) |