Changeset View
Changeset View
Standalone View
Standalone View
cmake/FindCargo.cmake
1 | include(FindPackageHandleStandardArgs) | 1 | # Find the cargo executable | ||
---|---|---|---|---|---|
2 | find_program(Cargo_EXECUTABLE cargo) | 2 | # | ||
3 | # Defines the following variables | ||||
4 | # Cargo_FOUND - True if the cargo executable was found | ||||
5 | # Cargo_EXECUTABLE - path of the cargo executable | ||||
6 | # Cargo_VERSION - version number of cargo | ||||
7 | | ||||
8 | #============================================================================= | ||||
9 | # Copyright 2017 Friedrich W. H. Kossebau <kossebau@kde.org> | ||||
10 | # | ||||
11 | # Distributed under the OSI-approved BSD License (the "License"); | ||||
12 | # see accompanying file Copyright.txt for details. | ||||
13 | # | ||||
14 | # This software is distributed WITHOUT ANY WARRANTY; without even the | ||||
15 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||
16 | # See the License for more information. | ||||
17 | #============================================================================= | ||||
18 | | ||||
19 | find_program(Cargo_EXECUTABLE NAMES cargo) | ||||
20 | | ||||
21 | if (Cargo_EXECUTABLE) | ||||
3 | execute_process(COMMAND "${Cargo_EXECUTABLE}" --version | 22 | execute_process(COMMAND "${Cargo_EXECUTABLE}" --version | ||
4 | OUTPUT_VARIABLE Cargo_VERSION_OUTPUT) | 23 | OUTPUT_VARIABLE Cargo_VERSION_OUTPUT | ||
5 | STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" | 24 | ERROR_VARIABLE Cargo_VERSION_ERROR | ||
6 | Cargo_VERSION "${Cargo_VERSION_OUTPUT}") | 25 | RESULT_VARIABLE Cargo_VERSION_RESULT | ||
26 | ) | ||||
27 | if(NOT ${Cargo_VERSION_RESULT} EQUAL 0) | ||||
28 | message(SEND_ERROR "Command \"${Cargo_EXECUTABLE} --version\" failed with output:\n${Cargo_VERSION_ERROR}") | ||||
29 | else() | ||||
30 | # TODO: support also nightly | ||||
31 | string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" | ||||
32 | Cargo_VERSION "${Cargo_VERSION_OUTPUT}" | ||||
33 | ) | ||||
34 | endif() | ||||
35 | endif() | ||||
36 | | ||||
37 | include(FindPackageHandleStandardArgs) | ||||
7 | find_package_handle_standard_args(Cargo | 38 | find_package_handle_standard_args(Cargo | ||
8 | REQUIRED_VARS Cargo_EXECUTABLE | 39 | REQUIRED_VARS Cargo_EXECUTABLE | ||
9 | VERSION_VAR Cargo_VERSION) | 40 | VERSION_VAR Cargo_VERSION | ||
10 | mark_as_advanced(Cargo_EXECUTABLE) | 41 | ) | ||
42 | | ||||
43 | mark_as_advanced(Cargo_EXECUTABLE Cargo_VERSION) | ||||
44 | | ||||
45 | set_package_properties(Cargo PROPERTIES | ||||
46 | DESCRIPTION "The Rust package manager" | ||||
47 | URL "https://github.com/rust-lang/cargo/" | ||||
48 | ) |