Changeset View
Changeset View
Standalone View
Standalone View
cmake/FindJulia.cmake
- This file was added.
1 | if(Julia_FOUND) | ||||
---|---|---|---|---|---|
2 | return() | ||||
3 | endif() | ||||
4 | | ||||
5 | # Looking for Julia executable | ||||
6 | find_program(Julia_EXECUTABLE julia DOC "Julia executable") | ||||
7 | if(NOT Julia_EXECUTABLE) | ||||
8 | return() | ||||
9 | endif() | ||||
10 | | ||||
11 | # Getting Julia version | ||||
12 | execute_process( | ||||
13 | COMMAND ${Julia_EXECUTABLE} --version | ||||
14 | OUTPUT_VARIABLE Julia_VERSION_STRING | ||||
15 | RESULT_VARIABLE RETURN_CODE | ||||
16 | ) | ||||
17 | if(RETURN_CODE EQUAL 0) | ||||
18 | string( | ||||
19 | REGEX REPLACE ".*([0-9]+\\.[0-9]+\\.[0-9]+).*" "\\1" | ||||
20 | Julia_VERSION_STRING ${Julia_VERSION_STRING} | ||||
21 | ) | ||||
22 | else() | ||||
23 | return() | ||||
24 | endif() | ||||
25 | | ||||
26 | # Julia includes | ||||
27 | execute_process( | ||||
28 | COMMAND ${Julia_EXECUTABLE} -E "JULIA_HOME" | ||||
29 | OUTPUT_VARIABLE Julia_INCLUDE_DIRS | ||||
30 | RESULT_VARIABLE RETURN_CODE | ||||
31 | ) | ||||
32 | if(RETURN_CODE EQUAL 0) | ||||
33 | set( | ||||
34 | Julia_INCLUDE_DIRS | ||||
35 | "${Julia_INCLUDE_DIRS}/../include/julia" | ||||
36 | ) | ||||
37 | string(REGEX REPLACE "(\"|\n)" "" Julia_INCLUDE_DIRS ${Julia_INCLUDE_DIRS}) | ||||
38 | string(STRIP Julia_INCLUDE_DIRS ${Julia_INCLUDE_DIRS}) | ||||
39 | set( | ||||
40 | Julia_INCLUDE_DIRS ${Julia_INCLUDE_DIRS} | ||||
41 | CACHE PATH "Location of Julia include files" | ||||
42 | ) | ||||
43 | else() | ||||
44 | return() | ||||
45 | endif() | ||||
46 | | ||||
47 | # Checking existance of main header. Some distos provide packages without actual includes | ||||
48 | find_path(Julia_MAIN_HEADER julia.h HINTS ${Julia_INCLUDE_DIRS}) | ||||
49 | | ||||
50 | include(FindPackageHandleStandardArgs) | ||||
51 | find_package_handle_standard_args(Julia | ||||
52 | REQUIRED_VARS Julia_EXECUTABLE Julia_MAIN_HEADER Julia_INCLUDE_DIRS | ||||
53 | VERSION_VAR Julia_VERSION_STRING | ||||
54 | FAIL_MESSAGE "Julia not found" | ||||
55 | ) |