summaryrefslogtreecommitdiff
path: root/platform/ios/ccache.cmake
blob: ff95377312d0e4b52a463e6c620fb630dbc503fb (plain)
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
find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM)
    # Set up wrapper scripts
    set(C_LAUNCHER "${CCACHE_PROGRAM}")
    set(CXX_LAUNCHER "${CCACHE_PROGRAM}")
    configure_file(${PROJECT_SOURCE_DIR}/platform/ios/ccache-c.in ${CMAKE_BINARY_DIR}/ccache-c)
    configure_file(${PROJECT_SOURCE_DIR}/platform/ios/ccache-cxx.in ${CMAKE_BINARY_DIR}/ccache-cxx)
    execute_process(
        COMMAND
            chmod
            a+rx
            "${CMAKE_BINARY_DIR}/ccache-c"
            "${CMAKE_BINARY_DIR}/ccache-cxx"
    )

    if(CMAKE_GENERATOR STREQUAL "Xcode")
        # Set Xcode project attributes to route compilation and linking through our scripts
        set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/ccache-c")
        set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/ccache-cxx")
        set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/ccache-c")
        set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/ccache-cxx")
    else()
        # Support Unix Makefiles and Ninja
        set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/ccache-c")
        set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/ccache-cxx")
    endif()
endif()