Files
qt-creator/cmake/FindQbs.cmake
Cristian Adam d855b84c5d Qt Creator CMake port
Based on Tobias Hunger's work from a few months ago.

The CMake configuration needs libclang and Qt paths specified as
CMAKE_PREFIX_PATH.

Auto tests are run with "ctest". At the moment the pass rate is 87%.

Change-Id: Iba98e39bf22077d52706dce6c85986be67a6eab0
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-17 13:33:28 +00:00

56 lines
1.7 KiB
CMake

#.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")