diff options
Diffstat (limited to 'cmake/FindQbs.cmake')
-rw-r--r-- | cmake/FindQbs.cmake | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/cmake/FindQbs.cmake b/cmake/FindQbs.cmake new file mode 100644 index 0000000000..f89252cf86 --- /dev/null +++ b/cmake/FindQbs.cmake @@ -0,0 +1,55 @@ +#.rst: +# FindQbs +# --------- +# +# Try to locate the Qbs library. +# If found, this will define the following variables: +# +# ``QBS_FOUND`` +# True if the qbs library is available +# ``QBS_INCLUDE_DIRS`` +# The qbs include directories +# ``QBSCORE_LIBRARIES`` +# The qbscore library for linking +# ``QBS_INSTALL_DIR`` +# Top level qbs installation directory +# +# If ``QBS_FOUND`` is TRUE, it will also define the following +# imported target: +# +# ``QBS::QBS`` +# The qbs library + +find_program(QBS_BINARY NAMES qbs) +if(QBS_BINARY STREQUAL "QBS_BINARY-NOTFOUND") + set(_QBS_INSTALL_DIR "QBS_INSTALL_DIR-NOTFOUND") +else() + get_filename_component(_QBS_BIN_DIR "${QBS_BINARY}" DIRECTORY) + get_filename_component(_QBS_INSTALL_DIR "${_QBS_BIN_DIR}" DIRECTORY) +endif() + +set(QBS_INSTALL_DIR "${_QBS_INSTALL_DIR}" CACHE PATH "Qbs install directory") + +find_path(QBS_INCLUDE_DIRS NAMES qbs.h PATH_SUFFIXES qbs HINTS "${QBS_INSTALL_DIR}/include") + +find_library(QBSCORE_LIBRARIES NAMES qbscore HINTS "${QBS_INSTALL_DIR}/lib") + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(QBS DEFAULT_MSG QBSCORE_LIBRARIES QBS_INCLUDE_DIRS) + +if(QBS_FOUND AND NOT TARGET Qbs::QbsCore) + add_library(Qbs::QbsCore UNKNOWN IMPORTED) + # FIXME: Detect whether QBS_ENABLE_PROJECT_FILE_UPDATES is set in qbscore! + set_target_properties(Qbs::QbsCore PROPERTIES + IMPORTED_LOCATION "${QBSCORE_LIBRARIES}" + INTERFACE_INCLUDE_DIRECTORIES "${QBS_INCLUDE_DIRS}" + INTERFACE_COMPILE_DEFINITIONS "QBS_ENABLE_PROJECT_FILE_UPDATES") +endif() + +mark_as_advanced(QBS_INCLUDE_DIRS QBSCORE_LIBRARIES QBS_INSTALL_DIR) + +include(FeatureSummary) +set_package_properties(QBS PROPERTIES + URL "https://qt.io/qbs" + DESCRIPTION "QBS build system") + |