]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/scripts/cmake/vcpkg_internal_get_cmake_vars.cmake
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / scripts / cmake / vcpkg_internal_get_cmake_vars.cmake
CommitLineData
1e59de90
TL
1#[===[.md:\r
2# vcpkg_internal_get_cmake_vars\r
3\r
4**Only for internal use in vcpkg helpers. Behavior and arguments will change without notice.**\r
5Runs a cmake configure with a dummy project to extract certain cmake variables\r
6\r
7## Usage\r
8```cmake\r
9vcpkg_internal_get_cmake_vars(\r
10 [OUTPUT_FILE <output_file_with_vars>]\r
11 [OPTIONS <-DUSE_THIS_IN_ALL_BUILDS=1>...]\r
12)\r
13```\r
14\r
15## Parameters\r
16### OPTIONS\r
17Additional options to pass to the test configure call \r
18\r
19### OUTPUT_FILE\r
20Variable to return the path to the generated cmake file with the detected `CMAKE_` variables set as `VCKPG_DETECTED_`\r
21\r
22## Notes\r
23If possible avoid usage in portfiles. \r
24\r
25## Examples\r
26\r
27* [vcpkg_configure_make](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_configure_make.cmake)\r
28#]===]\r
29\r
30function(vcpkg_internal_get_cmake_vars)\r
31 cmake_parse_arguments(PARSE_ARGV 0 _gcv "" "OUTPUT_FILE" "OPTIONS")\r
32\r
33 if(_gcv_UNPARSED_ARGUMENTS)\r
34 message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed unparsed arguments: '${_gcv_UNPARSED_ARGUMENTS}'")\r
35 endif()\r
36\r
37 if(NOT _gcv_OUTPUT_FILE)\r
38 message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} requires parameter OUTPUT_FILE!")\r
39 endif()\r
40\r
41 if(${_gcv_OUTPUT_FILE})\r
42 debug_message("OUTPUT_FILE ${${_gcv_OUTPUT_FILE}}")\r
43 else()\r
44 set(DEFAULT_OUT "${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}.cmake.log") # So that the file gets included in CI artifacts.\r
45 set(${_gcv_OUTPUT_FILE} "${DEFAULT_OUT}" PARENT_SCOPE)\r
46 set(${_gcv_OUTPUT_FILE} "${DEFAULT_OUT}")\r
47 endif()\r
48\r
49 vcpkg_configure_cmake(\r
50 SOURCE_PATH "${SCRIPTS}/get_cmake_vars"\r
51 OPTIONS ${_gcv_OPTIONS} "-DVCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}"\r
52 OPTIONS_DEBUG "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-dbg.cmake.log"\r
53 OPTIONS_RELEASE "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-rel.cmake.log"\r
54 PREFER_NINJA\r
55 LOGNAME get-cmake-vars-${TARGET_TRIPLET}\r
56 )\r
57\r
58 set(_include_string)\r
59 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")\r
60 string(APPEND _include_string "include(\"${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-rel.cmake.log\")\n")\r
61 endif()\r
62 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")\r
63 string(APPEND _include_string "include(\"${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-dbg.cmake.log\")\n")\r
64 endif()\r
65 file(WRITE "${${_gcv_OUTPUT_FILE}}" "${_include_string}")\r
66\r
67endfunction()\r