blob: 5c6d3f0b427329e0ce2f335184630fff0775aedc [file] [log] [blame]
Mikhail R. Gadelhaeac500f2019-02-07 03:19:45 +00001# Looking for Z3 in LLVM_Z3_INSTALL_DIR
Enrico Steffinlongo11b6ced2018-10-13 19:45:48 +00002find_path(Z3_INCLUDE_DIR NAMES z3.h
3 NO_DEFAULT_PATH
Mikhail R. Gadelhaeac500f2019-02-07 03:19:45 +00004 PATHS ${LLVM_Z3_INSTALL_DIR}/include
Enrico Steffinlongo11b6ced2018-10-13 19:45:48 +00005 PATH_SUFFIXES libz3 z3
6 )
7
8find_library(Z3_LIBRARIES NAMES z3 libz3
9 NO_DEFAULT_PATH
Mikhail R. Gadelhaeac500f2019-02-07 03:19:45 +000010 PATHS ${LLVM_Z3_INSTALL_DIR}
Enrico Steffinlongo11b6ced2018-10-13 19:45:48 +000011 PATH_SUFFIXES lib bin
12 )
13
14find_program(Z3_EXECUTABLE z3
15 NO_DEFAULT_PATH
Mikhail R. Gadelhaeac500f2019-02-07 03:19:45 +000016 PATHS ${LLVM_Z3_INSTALL_DIR}
Enrico Steffinlongo11b6ced2018-10-13 19:45:48 +000017 PATH_SUFFIXES bin
18 )
19
Mikhail R. Gadelhaeac500f2019-02-07 03:19:45 +000020# If Z3 has not been found in LLVM_Z3_INSTALL_DIR look in the default directories
Dominic Chen08f943c2017-04-04 19:52:25 +000021find_path(Z3_INCLUDE_DIR NAMES z3.h
Michal Gorny5ef8bf72017-04-08 14:38:06 +000022 PATH_SUFFIXES libz3 z3
Dominic Chen08f943c2017-04-04 19:52:25 +000023 )
24
25find_library(Z3_LIBRARIES NAMES z3 libz3
Enrico Steffinlongo11b6ced2018-10-13 19:45:48 +000026 PATH_SUFFIXES lib bin
Dominic Chen08f943c2017-04-04 19:52:25 +000027 )
28
Enrico Steffinlongo11b6ced2018-10-13 19:45:48 +000029find_program(Z3_EXECUTABLE z3
30 PATH_SUFFIXES bin
31 )
Dominic Chen08f943c2017-04-04 19:52:25 +000032
Enrico Steffinlongo11b6ced2018-10-13 19:45:48 +000033if(Z3_INCLUDE_DIR AND Z3_LIBRARIES AND Z3_EXECUTABLE)
Dominic Chen08f943c2017-04-04 19:52:25 +000034 execute_process (COMMAND ${Z3_EXECUTABLE} -version
35 OUTPUT_VARIABLE libz3_version_str
36 ERROR_QUIET
37 OUTPUT_STRIP_TRAILING_WHITESPACE)
38
39 string(REGEX REPLACE "^Z3 version ([0-9.]+)" "\\1"
40 Z3_VERSION_STRING "${libz3_version_str}")
41 unset(libz3_version_str)
42endif()
43
44# handle the QUIETLY and REQUIRED arguments and set Z3_FOUND to TRUE if
45# all listed variables are TRUE
46include(FindPackageHandleStandardArgs)
47FIND_PACKAGE_HANDLE_STANDARD_ARGS(Z3
48 REQUIRED_VARS Z3_LIBRARIES Z3_INCLUDE_DIR
49 VERSION_VAR Z3_VERSION_STRING)
50
51mark_as_advanced(Z3_INCLUDE_DIR Z3_LIBRARIES)