Welcome to mirror list, hosted at ThFree Co, Russian Federation.

FindLLVM.cmake « Modules « cmake « build_files - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f5f3db3fc71e8e2a195d09f266bbdc9f9b871cfe (plain)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# - Find LLVM library
# Find the native LLVM includes and library
# This module defines
#  LLVM_INCLUDE_DIRS, where to find LLVM.h, Set when LLVM_INCLUDE_DIR is found.
#  LLVM_LIBRARIES, libraries to link against to use LLVM.
#  LLVM_ROOT_DIR, The base directory to search for LLVM.
#                This can also be an environment variable.
#  LLVM_FOUND, If false, do not try to use LLVM.
#
# also defined, but not for general use are
#  LLVM_LIBRARY, where to find the LLVM library.

#=============================================================================
# Copyright 2015 Blender Foundation.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================

if(LLVM_ROOT_DIR)
	if(DEFINED LLVM_VERSION)
		find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION} HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH)
	endif()
	if(NOT LLVM_CONFIG)
		find_program(LLVM_CONFIG llvm-config HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH)
	endif()
else()
	if(DEFINED LLVM_VERSION)
        message(running llvm-config-${LLVM_VERSION})
		find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION})
	endif()
	if(NOT LLVM_CONFIG)
		find_program(LLVM_CONFIG llvm-config)
	endif()
endif()

if(NOT DEFINED LLVM_VERSION)
	execute_process(COMMAND ${LLVM_CONFIG} --version
					OUTPUT_VARIABLE LLVM_VERSION
					OUTPUT_STRIP_TRAILING_WHITESPACE)
	set(LLVM_VERSION ${LLVM_VERSION} CACHE STRING "Version of LLVM to use")
endif()
if(NOT LLVM_ROOT_DIR)
	execute_process(COMMAND ${LLVM_CONFIG} --prefix
					OUTPUT_VARIABLE LLVM_ROOT_DIR
					OUTPUT_STRIP_TRAILING_WHITESPACE)
	set(LLVM_ROOT_DIR ${LLVM_ROOT_DIR} CACHE PATH "Path to the LLVM installation")
endif()
if(NOT LLVM_LIBPATH)
	execute_process(COMMAND ${LLVM_CONFIG} --libdir
					OUTPUT_VARIABLE LLVM_LIBPATH
					OUTPUT_STRIP_TRAILING_WHITESPACE)
	set(LLVM_LIBPATH ${LLVM_LIBPATH} CACHE PATH "Path to the LLVM library path")
	mark_as_advanced(LLVM_LIBPATH)
endif()

if(LLVM_STATIC)
	find_library(LLVM_LIBRARY
	             NAMES LLVMAnalysis # first of a whole bunch of libs to get
	             PATHS ${LLVM_LIBPATH})
else()
	find_library(LLVM_LIBRARY
	             NAMES
	               LLVM-${LLVM_VERSION}
	               LLVMAnalysis  # check for the static library as a fall-back
	             PATHS ${LLVM_LIBPATH})
endif()


if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH)
	if(LLVM_STATIC)
		# if static LLVM libraries were requested, use llvm-config to generate
		# the list of what libraries we need, and substitute that in the right
		# way for LLVM_LIBRARY.
		execute_process(COMMAND ${LLVM_CONFIG} --libfiles
		                OUTPUT_VARIABLE LLVM_LIBRARY
		                OUTPUT_STRIP_TRAILING_WHITESPACE)
		string(REPLACE " " ";" LLVM_LIBRARY "${LLVM_LIBRARY}")
	endif()
endif()


# handle the QUIETLY and REQUIRED arguments and set SDL2_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LLVM DEFAULT_MSG
    LLVM_LIBRARY)

MARK_AS_ADVANCED(
  LLVM_LIBRARY
)