~aleteoryx/muditaos

ref: 92e042add14cac3d9d1a6cdbf7a72eaf0749b33c muditaos/cmake/modules/Assets.cmake -rw-r--r-- 1.3 KiB
92e042ad — Lefucjusz [BH-2065] Fix race condition between CMake targets 1 year, 3 months ago
                                                                                
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
set(ASSETS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/image)

function(add_assets_target)
    cmake_parse_arguments(
        _ASSETS
        ""
        "TARGET;SOURCE_DIR;SYSTEM_DEST_DIR;USER_DEST_DIR;DEVEL;"
        "DEPENDS"
        ${ARGN}
    )

    add_custom_target(
        ${_ASSETS_TARGET}
        DEPENDS ${_ASSETS_DEPENDS}

        # Copy user assets
        COMMAND mkdir -p ${_ASSETS_USER_DEST_DIR}
        COMMAND rsync -qau
            ${_ASSETS_SOURCE_DIR}/user/
            ${_ASSETS_USER_DEST_DIR}
        COMMAND find ${_ASSETS_USER_DEST_DIR} -name "*-devel*" | sed "\"s,\\(.*\\)-devel\\(.*\\),& \\1\\2,\"" | xargs --no-run-if-empty -L1 mv

        # Copy system assets
        COMMAND mkdir -p ${_ASSETS_SYSTEM_DEST_DIR}
        COMMAND rsync -qau
            ${_ASSETS_SOURCE_DIR}/system_a/data
            ${_ASSETS_SOURCE_DIR}/system_a/db
            ${_ASSETS_SYSTEM_DEST_DIR}

        # Create 'golden copy' of DBs
        # 'v' flag intentionally left for debugging purposes, can be removed if you're sure it's no longer needed
        COMMAND rsync -vlptgoDu
            ${_ASSETS_SYSTEM_DEST_DIR}/db/*
            ${_ASSETS_SYSTEM_DEST_DIR}/db/factory

        COMMENT  "Copying assets... add_assets_target (${_ASSETS_TARGET}) <- ${_ASSETS_DEPENDS}"
    )
endfunction()