1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-24 22:14:36 +02:00

Merge pull request #2997 from Alexander-Wilms/fix-ios-pch

Enable ccache for iOS and MSVC builds
This commit is contained in:
Nordsoft91 2023-10-08 16:10:07 +02:00 committed by GitHub
commit aed2e360ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 65 additions and 9 deletions

View File

@ -103,7 +103,7 @@ jobs:
test: 0
pack: 1
extension: ipa
preset: ios-release-conan
preset: ios-release-conan-ccache
conan_profile: ios-arm64
conan_options: --options with_apple_system_libs=True
- platform: msvc
@ -159,7 +159,6 @@ jobs:
VCMI_BUILD_PLATFORM: x64
- name: ccache
if: startsWith(matrix.preset, 'ios') != true
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ matrix.preset }}
@ -203,15 +202,9 @@ jobs:
PULL_REQUEST: ${{ github.event.pull_request.number }}
- name: CMake Preset with ccache
if: startsWith(matrix.preset, 'ios') != true
run: |
cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache --preset ${{ matrix.preset }}
- name: CMake Preset without ccache
if: startsWith(matrix.preset, 'ios')
run: |
cmake --preset ${{ matrix.preset }}
- name: Build Preset
run: |
cmake --build --preset ${{matrix.preset}}

View File

@ -79,6 +79,30 @@ if(NOT APPLE_IOS AND NOT ANDROID)
option(ENABLE_MONOLITHIC_INSTALL "Install everything in single directory on Linux and Mac" OFF)
endif()
# On Linux, use -DCMAKE_CXX_COMPILER_LAUNCHER=ccache instead.
# The XCode and MSVC builds each require some more configuration, which is enabled by the following option:
if(MSVC OR (CMAKE_GENERATOR STREQUAL "Xcode"))
option(ENABLE_CCACHE "Speed up recompilation by caching previous compilations" ON)
endif()
if(ENABLE_CCACHE AND (CMAKE_GENERATOR STREQUAL "Xcode"))
find_program(CCACHE ccache REQUIRED)
if(CCACHE)
# https://stackoverflow.com/a/36515503/2278742
# Set up wrapper scripts
configure_file(xcode/launch-c.in xcode/launch-c)
configure_file(xcode/launch-cxx.in xcode/launch-cxx)
execute_process(COMMAND chmod a+rx
"${CMAKE_BINARY_DIR}/xcode/launch-c"
"${CMAKE_BINARY_DIR}/xcode/launch-cxx")
# Set Xcode project attributes to route compilation through our scripts
set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/xcode/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/xcode/launch-cxx")
set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/xcode/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/xcode/launch-cxx")
endif()
endif()
# Allow to pass package name from Travis CI
set(PACKAGE_NAME_SUFFIX "" CACHE STRING "Suffix for CPack package name")
set(PACKAGE_FILE_NAME "" CACHE STRING "Override for CPack package filename")
@ -237,6 +261,23 @@ if(MINGW OR MSVC)
set(CMAKE_SHARED_LIBRARY_PREFIX "")
if(MSVC)
if(ENABLE_CCACHE)
# https://github.com/ccache/ccache/discussions/1154#discussioncomment-3611387
find_program(CCACHE ccache REQUIRED)
if (CCACHE)
file(COPY_FILE
${CCACHE} ${CMAKE_BINARY_DIR}/cl.exe
ONLY_IF_DIFFERENT)
set(CMAKE_VS_GLOBALS
"CLToolExe=cl.exe"
"CLToolPath=${CMAKE_BINARY_DIR}"
"TrackFileAccess=false"
"UseMultiToolTask=true"
)
endif()
endif()
add_definitions(-DBOOST_ALL_NO_LIB)
add_definitions(-DBOOST_ALL_DYN_LINK)
set(Boost_USE_STATIC_LIBS OFF)

View File

@ -84,7 +84,6 @@
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"ENABLE_LUA" : "ON",
"ENABLE_PCH" : "OFF",
"CMAKE_C_COMPILER": "/usr/bin/gcc",
"CMAKE_CXX_COMPILER": "/usr/bin/g++"
}
@ -223,6 +222,15 @@
"ENABLE_PCH" : "ON"
}
},
{
"name": "ios-release-conan-ccache",
"displayName": "iOS+Conan release using ccache",
"description": "VCMI iOS release using Conan and ccache",
"inherits": "ios-release-conan",
"cacheVariables": {
"ENABLE_PCH" : "OFF"
}
},
{
"name": "ios-release-legacy",
"displayName": "iOS release using legacy dependencies",
@ -331,6 +339,11 @@
"CODE_SIGNING_ALLOWED_FOR_APPS=NO"
]
},
{
"name": "ios-release-conan-ccache",
"configurePreset": "ios-release-conan-ccache",
"inherits": "ios-release-conan"
},
{
"name": "ios-release-legacy",
"configurePreset": "ios-release-legacy",

View File

@ -9,6 +9,7 @@
*/
#include "CFocusableHelper.h"
#include "../Global.h"
#include "StdInc.h"
#include "widgets/TextControls.h"
void removeFocusFromActiveInput()

View File

@ -8,6 +8,7 @@
*
*/
#import "startSDL.h"
#include "StdInc.h"
#import "GameChatKeyboardHandler.h"
#include "../Global.h"

View File

@ -8,6 +8,7 @@
*
*/
#include "StdInc.h"
#include "utils.h"
#import <UIKit/UIKit.h>

3
xcode/launch-c.in Normal file
View File

@ -0,0 +1,3 @@
#!/bin/sh
export CCACHE_CPP2=true
ccache clang "$@"

3
xcode/launch-cxx.in Normal file
View File

@ -0,0 +1,3 @@
#!/bin/sh
export CCACHE_CPP2=true
ccache clang++ "$@"