File: linux_fixup.cmake.in

package info (click to toggle)
sight 25.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 43,252 kB
  • sloc: cpp: 310,629; xml: 17,622; ansic: 9,960; python: 1,379; sh: 144; makefile: 33
file content (71 lines) | stat: -rw-r--r-- 2,929 bytes parent folder | download | duplicates (3)
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
cmake_policy(SET CMP0011 NEW)
cmake_policy(SET CMP0012 NEW)
cmake_policy(SET CMP0053 NEW)

include(@FWCMAKE_INSTALL_FILES_DIR@/helper.cmake)

# Run the script when installing but not a second time when running CPack
if ( NOT ${CMAKE_INSTALL_PREFIX} MATCHES "/_CPack_Packages/.*/(TGZ|ZIP)/")

    #Find all /*/.so* in /Modules /plugins and /vlc/plugins
    file(GLOB_RECURSE MODULES FOLLOW_SYMLINKS "@CMAKE_INSTALL_PREFIX@/@SIGHT_MODULE_LIB_PREFIX@/*@CMAKE_SHARED_LIBRARY_SUFFIX@*")
    file(GLOB_RECURSE PLUGINS FOLLOW_SYMLINKS
        "@CMAKE_INSTALL_PREFIX@/plugins/*@CMAKE_SHARED_LIBRARY_SUFFIX@*"
        "@CMAKE_INSTALL_PREFIX@/vlc/plugins/*@CMAKE_SHARED_LIBRARY_SUFFIX@*"
    )

    include(BundleUtilities)
    set(LIBS "")
    list(APPEND LIBS ${MODULES} ${PLUGINS} @QT_PLUGINS@)
    # Also add modules from the SDK
    if(@FW_BUILD_EXTERNAL@)

        foreach(REQUIREMENT @PROJECT_REQUIREMENTS@)
            file(GLOB_RECURSE MODULES FOLLOW_SYMLINKS "@Sight_LIBRARY_DIR@/${REQUIREMENT}*/*@CMAKE_SHARED_LIBRARY_SUFFIX@*")
            if(MODULES)
                list(APPEND LIBS ${MODULES})
            endif()
        endforeach()

    endif()

    set(VCPKG_TARGET_TRIPLET @VCPKG_TARGET_TRIPLET@)
    if(VCPKG_TARGET_TRIPLET)
        #Look for all directories containing '.so*' files
        findLibsAndModules(LIBS_MODULES_DIRECTORIES)

        list(APPEND LIBS_MODULES_DIRECTORIES @FW_SIGHT_EXTERNAL_LIBRARIES_DIR@)
        list(APPEND LIBS_MODULES_DIRECTORIES @CMAKE_INSTALL_PREFIX@/lib)

        if(@FW_BUILD_EXTERNAL@)
            list(APPEND LIBS_MODULES_DIRECTORIES @Sight_LIBRARY_DIR@)
        endif()
        set(LAUNCHER_PATH @CMAKE_INSTALL_PREFIX@/@LAUNCHER_PATH@)

        # We need to copy first the libraries as stated by the BundleUtilities documentation :
        # "If you pass plugins to fixup_bundle as the libs parameter, you should install them or
        #  copy them into the bundle before calling fixup_bundle. The <libs> parameter is a list
        #  of libraries that must be fixed up, but that cannot be determined by otool output
        #  analysis (i.e. plugins)."

        foreach(LIB ${LIBS})
            file(COPY ${LIB} DESTINATION "@CMAKE_INSTALL_PREFIX@/bin/")
        endforeach()

        #Call fixup bundle on the sightrun and on all 'plugins' libraries (like bundle, plugins and share)
        fixup_bundle("${LAUNCHER_PATH}" "${LIBS}" "${LIBS_MODULES_DIRECTORIES}")
    endif()

    # Move all libraries in 'lib' folder
    # Not needed but much more elegant
    file(GLOB_RECURSE FIXED_LIBS "@CMAKE_INSTALL_PREFIX@/bin/*@CMAKE_SHARED_LIBRARY_SUFFIX@*")

    foreach(LIB ${FIXED_LIBS})
        get_filename_component(LIB_FILE_NAME ${LIB} NAME)
        if(NOT EXISTS "@CMAKE_INSTALL_PREFIX@/@SIGHT_MODULE_LIB_PREFIX@/${LIB_FILE_NAME}")
            file(COPY ${LIB} DESTINATION "@CMAKE_INSTALL_PREFIX@/lib/")
        endif()
        file(REMOVE ${LIB})
    endforeach()

endif()