summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2019-10-11 16:55:55 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2019-10-14 19:01:19 +0000
commit190e9dcdcf1a2debfbf624af4cb2154172908a64 (patch)
tree3feb15de63b05cda8339d784c46f929ad4000357 /cmake
parent440286655e0ca271506cf7cc02ad0dbf4baef9ca (diff)
Regenerate files after dev -> wip/cmake merge
Note the following bigger things that had to be done: Handle GSS library / feature with a new custom find module. Implement rudimentary support for relocatability (does not currently handle extprefix). Change-Id: Ic6cd27dda7ebca9829f51cb42ea76fff6d1767ef Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/FindGSSAPI.cmake39
-rw-r--r--cmake/QtBuild.cmake39
2 files changed, 78 insertions, 0 deletions
diff --git a/cmake/FindGSSAPI.cmake b/cmake/FindGSSAPI.cmake
new file mode 100644
index 0000000000..6f22929b6c
--- /dev/null
+++ b/cmake/FindGSSAPI.cmake
@@ -0,0 +1,39 @@
+find_package(PkgConfig)
+pkg_check_modules(PC_GSSAPI QUIET krb5-gssapi)
+
+find_path(GSSAPI_INCLUDE_DIRS
+ NAMES gssapi/gssapi.h
+ HINTS ${PC_GSSAPI_INCLUDEDIR}
+ PATH_SUFFIXES gssapi)
+
+find_library(GSSAPI_LIBRARIES
+ NAMES
+ GSS # framework
+ gssapi_krb5
+ HINTS ${PC_GSSAPILIBDIR}
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(GSSAPI DEFAULT_MSG GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIRS)
+
+if(GSSAPI_FOUND AND NOT TARGET GSSAPI::GSSAPI)
+ if(GSSAPI_LIBRARIES MATCHES "/([^/]+)\\.framework$")
+ add_library(GSSAPI::GSSAPI INTERFACE IMPORTED)
+ set_target_properties(GSSAPI::GSSAPI PROPERTIES
+ INTERFACE_LINK_LIBRARIES "${GSSAPI_LIBRARIES}")
+ else()
+ add_library(GSSAPI::GSSAPI UNKNOWN IMPORTED)
+ set_target_properties(GSSAPI::GSSAPI PROPERTIES
+ IMPORTED_LOCATION "${GSSAPI_LIBRARIES}")
+ endif()
+
+ set_target_properties(GSSAPI::GSSAPI PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${GSSAPI_INCLUDE_DIRS}")
+endif()
+
+mark_as_advanced(GSSAPI_INCLUDE_DIRS GSSAPI_LIBRARIES)
+
+include(FeatureSummary)
+set_package_properties(GSSAPI PROPERTIES
+ DESCRIPTION "Generic Security Services Application Program Interface")
+
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index 14ca81bfc7..94d75fe58c 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -3263,5 +3263,44 @@ function(qt_generate_qconfig_cpp)
set(QT_CONFIG_STR_OFFSETS_SECOND "${QT_CONFIG_STR_OFFSETS}")
set(QT_CONFIG_STRS_SECOND "${QT_CONFIG_STRS}")
+ # Settings path / sysconf dir.
+ if(APPLE)
+ set(QT_DEFAULT_SYS_CONF_DIR "/Library/Preferences/Qt")
+ else()
+ set(QT_DEFAULT_SYS_CONF_DIR "etc/xdg")
+ endif()
+
+ # Compute and set relocation prefixes.
+ # TODO: Clean this up, there's a bunch of unrealistic assumptions here.
+ # See qtConfOutput_preparePaths in qtbase/configure.pri.
+ if(WIN32)
+ set(lib_location_absolute_path "${CMAKE_INSTALL_PREFIX}/bin")
+ else()
+ set(lib_location_absolute_path "${CMAKE_INSTALL_PREFIX}/lib")
+ endif()
+ file(RELATIVE_PATH from_lib_location_to_prefix
+ "${lib_location_absolute_path}" "${CMAKE_INSTALL_PREFIX}")
+
+ if(QT_HOST_PATH)
+ set(host_prefix "${QT_HOST_PATH}")
+ set(host_bin_dir_absolute_path "${QT_HOST_PATH}/bin")
+ else()
+ set(host_prefix "${CMAKE_INSTALL_PREFIX}")
+ set(host_bin_dir_absolute_path "${CMAKE_INSTALL_PREFIX}/bin")
+ endif()
+
+ file(RELATIVE_PATH from_host_bin_dir_to_host_prefix
+ "${host_bin_dir_absolute_path}" "${host_prefix}")
+
+ # TODO: Fix this to use the equivalent of extprefix on CMake (CMAKE_STAGING_PREFIX?)
+ # For now just assume ext prefix is same as regular prefix.
+ file(RELATIVE_PATH from_host_bin_dir_to_ext_prefix
+ "${host_bin_dir_absolute_path}" "${CMAKE_INSTALL_PREFIX}")
+
+
+ set(QT_CONFIGURE_LIBLOCATION_TO_PREFIX_PATH "${from_lib_location_to_prefix}")
+ set(QT_CONFIGURE_HOSTBINDIR_TO_HOSTPREFIX_PATH "${from_host_bin_dir_to_host_prefix}")
+ set(QT_CONFIGURE_HOSTBINDIR_TO_EXTPREFIX_PATH "${from_host_bin_dir_to_ext_prefix}")
+
configure_file(global/qconfig.cpp.in global/qconfig.cpp @ONLY)
endfunction()