File: FindRust.cmake

package info (click to toggle)
ddnet 19.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 68,960 kB
  • sloc: cpp: 195,050; ansic: 58,572; python: 5,568; asm: 946; sh: 941; java: 366; xml: 206; makefile: 31
file content (29 lines) | stat: -rw-r--r-- 937 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
find_program(RUST_RUSTC rustc)
find_program(RUST_CARGO cargo)

if(RUST_RUSTC)
  execute_process(COMMAND ${RUST_RUSTC} --version --verbose OUTPUT_VARIABLE RUSTC_VERSION_OUTPUT)
  string(REPLACE "\n" ";" RUSTC_VERSION_OUTPUT "${RUSTC_VERSION_OUTPUT}")
  set(RUST_NIGHTLY OFF)
  foreach(line ${RUSTC_VERSION_OUTPUT})
    if(NOT DEFINED RUST_VERSION_STRING)
      set(RUST_VERSION_STRING ${line})
    endif()
    if(line MATCHES "^([^:]+): (.*)$")
      set(KEY ${CMAKE_MATCH_1})
      set(VALUE ${CMAKE_MATCH_2})
      if(KEY STREQUAL "release")
        set(RUST_VERSION ${VALUE})
        if(VALUE MATCHES "nightly")
          set(RUST_NIGHTLY ON)
        endif()
      elseif(KEY STREQUAL "host")
        set(RUST_TARGET_HOST ${VALUE})
      endif()
    endif()
  endforeach()
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Rust DEFAULT_MSG RUST_RUSTC RUST_CARGO)
mark_as_advanced(RUST_RUSTC RUST_CARGO)