File: CMakeLists.txt

package info (click to toggle)
limesuite 20.10.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 26,576 kB
  • sloc: cpp: 158,930; ansic: 6,852; python: 197; sh: 56; makefile: 20
file content (48 lines) | stat: -rw-r--r-- 1,924 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# LimeSuite Octave plugin compilation
########################################################################
## Feature registration
########################################################################
find_program(OCTAVE_CONFIG_EXECUTABLE NAMES octave-config)
if(NOT OCTAVE_CONFIG_EXECUTABLE)
    message(STATUS "octave-config not found (need liboctave-dev), disabling LimeSuiteOctave")
else()
    execute_process (COMMAND ${OCTAVE_CONFIG_EXECUTABLE} -p BINDIR OUTPUT_VARIABLE OCTAVE_BIN_PATHS OUTPUT_STRIP_TRAILING_WHITESPACE)
    find_program(OCTAVE_MKOCTFILE_EXECUTABLE HINTS ${OCTAVE_BIN_PATHS} NAMES mkoctfile)
endif()

include(FeatureSummary)
include(CMakeDependentOption)
cmake_dependent_option(ENABLE_OCTAVE "Enable LimeSuite library plugin for Octave" ON "ENABLE_LIBRARY;OCTAVE_CONFIG_EXECUTABLE;OCTAVE_MKOCTFILE_EXECUTABLE" OFF)
add_feature_info(LimeSuiteOctave ENABLE_OCTAVE "LimeSuite Octave integration")

if (NOT ENABLE_OCTAVE)
    return()
endif()

add_custom_command(OUTPUT LimeSuite.oct LimeSuite.o
    ALL
    COMMAND ${OCTAVE_MKOCTFILE_EXECUTABLE}
    ARGS -I${PROJECT_SOURCE_DIR}/src/lime ${CMAKE_CURRENT_SOURCE_DIR}/LimeSuite.cc -L$<TARGET_SONAME_FILE_DIR:LimeSuite> -lLimeSuite
    COMMENT "Building LimeSuite Octave plugin"
    DEPENDS LimeSuite
)
add_custom_target(LimeSuiteOctave ALL DEPENDS LimeSuite.oct)

#install script for preloading Limesuite.oct functions
execute_process (COMMAND ${OCTAVE_CONFIG_EXECUTABLE} --m-site-dir
    OUTPUT_VARIABLE OCTAVE_SCRIPTS_PATHS OUTPUT_STRIP_TRAILING_WHITESPACE)
install(
    FILES
        ${CMAKE_CURRENT_SOURCE_DIR}/LoadLimeSuite.m
    DESTINATION ${OCTAVE_SCRIPTS_PATHS}
)

#install dynamic library
execute_process (COMMAND ${OCTAVE_CONFIG_EXECUTABLE} --oct-site-dir
    OUTPUT_VARIABLE OCTAVE_LIBS_PATHS OUTPUT_STRIP_TRAILING_WHITESPACE)
install(
    FILES
        ${CMAKE_CURRENT_BINARY_DIR}/LimeSuite.oct
    DESTINATION ${OCTAVE_LIBS_PATHS}
)