]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/scripts/cmake/vcpkg_configure_qmake.cmake
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / scripts / cmake / vcpkg_configure_qmake.cmake
1 #[===[.md:
2 # vcpkg_configure_qmake
3
4 Configure a qmake-based project.
5
6 ```cmake
7 vcpkg_configure_qmake(
8 SOURCE_PATH <pro_file_path>
9 [OPTIONS arg1 [arg2 ...]]
10 [OPTIONS_RELEASE arg1 [arg2 ...]]
11 [OPTIONS_DEBUG arg1 [arg2 ...]]
12 )
13 ```
14
15 ### SOURCE_PATH
16 The path to the *.pro qmake project file.
17
18 ### OPTIONS, OPTIONS\_RELEASE, OPTIONS\_DEBUG
19 The options passed to qmake.
20 #]===]
21
22 function(vcpkg_configure_qmake)
23 # parse parameters such that semicolons in options arguments to COMMAND don't get erased
24 cmake_parse_arguments(PARSE_ARGV 0 _csc "" "SOURCE_PATH" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;BUILD_OPTIONS;BUILD_OPTIONS_RELEASE;BUILD_OPTIONS_DEBUG")
25
26 # Find qmake executable
27 set(_triplet_hostbindir ${CURRENT_INSTALLED_DIR}/tools/qt5/bin)
28 if(DEFINED VCPKG_QT_HOST_TOOLS_ROOT_DIR)
29 find_program(QMAKE_COMMAND NAMES qmake PATHS ${VCPKG_QT_HOST_TOOLS_ROOT_DIR}/bin ${_triplet_hostbindir} NO_DEFAULT_PATH)
30 else()
31 find_program(QMAKE_COMMAND NAMES qmake PATHS ${_triplet_hostbindir} NO_DEFAULT_PATH)
32 endif()
33
34 if(NOT QMAKE_COMMAND)
35 message(FATAL_ERROR "vcpkg_configure_qmake: unable to find qmake.")
36 endif()
37
38 if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
39 list(APPEND _csc_OPTIONS "CONFIG-=shared")
40 list(APPEND _csc_OPTIONS "CONFIG*=static")
41 else()
42 list(APPEND _csc_OPTIONS "CONFIG-=static")
43 list(APPEND _csc_OPTIONS "CONFIG*=shared")
44 list(APPEND _csc_OPTIONS_DEBUG "CONFIG*=separate_debug_info")
45 endif()
46
47 if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static")
48 list(APPEND _csc_OPTIONS "CONFIG*=static-runtime")
49 endif()
50
51 # Cleanup build directories
52 file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
53
54 if(DEFINED VCPKG_OSX_DEPLOYMENT_TARGET)
55 set(ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} ${VCPKG_OSX_DEPLOYMENT_TARGET})
56 endif()
57
58 vcpkg_find_acquire_program(PKGCONFIG)
59 set(ENV{PKG_CONFIG} "${PKGCONFIG}")
60 get_filename_component(PKGCONFIG_PATH "${PKGCONFIG}" DIRECTORY)
61 vcpkg_add_to_path("${PKGCONFIG_PATH}")
62
63 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
64 set(_config RELEASE)
65 set(PKGCONFIG_INSTALLED_DIR "${_VCPKG_INSTALLED_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig")
66 set(PKGCONFIG_INSTALLED_SHARE_DIR "${_VCPKG_INSTALLED_PKGCONF}/share/pkgconfig")
67 set(PKGCONFIG_PACKAGES_DIR "${_VCPKG_PACKAGES_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig")
68 set(PKGCONFIG_PACKAGES_SHARE_DIR "${_VCPKG_PACKAGES_PKGCONF}/share/pkgconfig")
69 if(DEFINED ENV{PKG_CONFIG_PATH})
70 set(BACKUP_ENV_PKG_CONFIG_PATH_${_config} $ENV{PKG_CONFIG_PATH})
71 set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}$ENV{PKG_CONFIG_PATH}")
72 else()
73 set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}")
74 endif()
75
76 configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_release.conf ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf)
77
78 message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
79 file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
80 if(DEFINED _csc_BUILD_OPTIONS OR DEFINED _csc_BUILD_OPTIONS_RELEASE)
81 set(BUILD_OPT -- ${_csc_BUILD_OPTIONS} ${_csc_BUILD_OPTIONS_RELEASE})
82 endif()
83 vcpkg_execute_required_process(
84 COMMAND ${QMAKE_COMMAND} CONFIG-=debug CONFIG+=release
85 ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} ${_csc_SOURCE_PATH}
86 -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf"
87 ${BUILD_OPT}
88 WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
89 LOGNAME config-${TARGET_TRIPLET}-rel
90 )
91 message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
92 if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.log")
93 file(REMOVE "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-rel.log")
94 file(RENAME "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-rel.log")
95 endif()
96 endif()
97
98 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
99 set(_config DEBUG)
100 set(PATH_SUFFIX_DEBUG /debug)
101 set(PKGCONFIG_INSTALLED_DIR "${_VCPKG_INSTALLED_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig")
102 set(PKGCONFIG_INSTALLED_SHARE_DIR "${_VCPKG_INSTALLED_PKGCONF}/share/pkgconfig")
103 set(PKGCONFIG_PACKAGES_DIR "${_VCPKG_PACKAGES_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig")
104 set(PKGCONFIG_PACKAGES_SHARE_DIR "${_VCPKG_PACKAGES_PKGCONF}/share/pkgconfig")
105 if(DEFINED ENV{PKG_CONFIG_PATH})
106 set(BACKUP_ENV_PKG_CONFIG_PATH_${_config} $ENV{PKG_CONFIG_PATH})
107 set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}$ENV{PKG_CONFIG_PATH}")
108 else()
109 set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}")
110 endif()
111
112 configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_debug.conf ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/qt.conf)
113
114 message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
115 file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
116 if(DEFINED _csc_BUILD_OPTIONS OR DEFINED _csc_BUILD_OPTIONS_DEBUG)
117 set(BUILD_OPT -- ${_csc_BUILD_OPTIONS} ${_csc_BUILD_OPTIONS_DEBUG})
118 endif()
119 vcpkg_execute_required_process(
120 COMMAND ${QMAKE_COMMAND} CONFIG-=release CONFIG+=debug
121 ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} ${_csc_SOURCE_PATH}
122 -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/qt.conf"
123 ${BUILD_OPT}
124 WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
125 LOGNAME config-${TARGET_TRIPLET}-dbg
126 )
127 message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
128 if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.log")
129 file(REMOVE "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-dbg.log")
130 file(RENAME "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-dbg.log")
131 endif()
132 endif()
133
134 endfunction()