File: FindFAUST.cmake

package info (click to toggle)
csound 1%3A6.18.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 63,220 kB
  • sloc: ansic: 192,643; cpp: 14,149; javascript: 9,654; objc: 9,181; python: 3,376; java: 3,337; sh: 1,840; yacc: 1,255; xml: 985; perl: 635; lisp: 411; tcl: 341; lex: 217; makefile: 128
file content (51 lines) | stat: -rw-r--r-- 1,684 bytes parent folder | download | duplicates (6)
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
# Find Faust2

include(FindPackageHandleStandardArgs)

find_path(
  FAUST_INCLUDE_DIR faust/dsp/llvm-dsp.h
  HINTS
  /opt/lib/faust/architecture/
  /usr/lib/faust/architecture/
  /usr/local/lib/faust/architecture/
  "${FAUST_INCLUDE_DIR_HINT}"
  )

set(FAUST_NAMES ${FAUST_NAMES} libfaust.so libfaust.dylib faust.dll faust libfaust)
find_library(FAUST_LIBRARY
  NAMES ${FAUST_NAMES}
  HINTS "${FAUST_LIB_DIR_HINT}")


find_package_handle_standard_args(FAUST FAUST_INCLUDE_DIR FAUST_LIBRARY)

if(FAUST_FOUND)
    set(FAUST_LIBRARIES ${FAUST_LIBRARY})
    set(FAUST_INCLUDE_DIRS ${FAUST_INCLUDE_DIR})

    if("${FAUST_LIBRARY}" MATCHES ".*\\.a")
        # This is a static build of faust, hence
        # we have to add all the LLVM flags...

        find_program(LLVM_CONFIG llvm-config HINTS /usr/bin /usr/local/bin /usr/local/opt/llvm/bin)
        if(NOT LLVM_CONFIG)
            message(WARNING "Using a static Faust library requires LLVM tooling to be present in the path.")
            UNSET(FAUST_FOUND)
        else()
        
        exec_program(${LLVM_CONFIG} ARGS --includedir OUTPUT_VARIABLE LLVM_DIR)
        exec_program(${LLVM_CONFIG} ARGS --libs OUTPUT_VARIABLE LLVM_LIBS)
        exec_program(${LLVM_CONFIG} ARGS --version OUTPUT_VARIABLE LLVM_VERSION)
        exec_program(${LLVM_CONFIG} ARGS --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS)

        set(LLVM_VERSION LLVM_${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR})

        find_package(OpenSSL REQUIRED)
        set(FAUST_LIBRARIES ${FAUST_LIBRARIES} dl ${OPENSSL_LIBRARIES} ncurses z ${LLVM_LDFLAGS} ${LLVM_LIBS} )
        endif()
        
      endif()
else()
    set(FAUST_LIBRARIES)
    set(FAUST_INCLUDE_DIRS)
endif()