File: SignMacos.cmake

package info (click to toggle)
audacity 3.7.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 125,252 kB
  • sloc: cpp: 358,238; ansic: 75,458; lisp: 7,761; sh: 3,410; python: 1,503; xml: 1,385; perl: 854; makefile: 122
file content (54 lines) | stat: -rw-r--r-- 1,393 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
# CMake script to sign macOS build
# Arguments:
# APP_IDENTIFIER - app identifier
# APP_LOCATION - the path to Audacity.app
# DMG_LOCATION - the path to Audaicty dmg package
# APPLE_CODESIGN_IDENTITY - identity to use
# APPLE_CODESIGN_ENTITLEMENTS - path to the entitlements

function( codesign path deep is_dmg)
    message(STATUS "Signing ${path}")

    set ( args 
        --verbose
        --timestamp
        --identifier "${APP_IDENTIFIER}"
        --sign "${APPLE_CODESIGN_IDENTITY}"
    )

    if( NOT is_dmg )
        list( APPEND args
                --options runtime 
                --entitlements "${APPLE_CODESIGN_ENTITLEMENTS}"
        )
    endif()

    if( deep )
        list( APPEND args --deep)
    endif()

    execute_process( COMMAND xcrun codesign ${args} ${path} )
endfunction()

function( sign_modules path )
    message(STATUS "\tLooking for modules or plugins in: '${path}'")

    file( GLOB_RECURSE modules 
          LIST_DIRECTORIES Off
          "${path}/*.so" "${path}/*.dylib"
        )
    
    foreach( module ${modules} )
        codesign( ${module} Off Off )
    endforeach()
endfunction()

if( DEFINED APP_LOCATION )
    sign_modules( "${APP_LOCATION}/Contents/modules" )
    sign_modules( "${APP_LOCATION}/Contents/plug-ins" )
    codesign( "${APP_LOCATION}" On Off )
endif()

if (DEFINED DMG_LOCATION )
    codesign( "${DMG_LOCATION}" Off On)
endif()