mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Merge pull request #2997 from Alexander-Wilms/fix-ios-pch
Enable ccache for iOS and MSVC builds
This commit is contained in:
9
.github/workflows/github.yml
vendored
9
.github/workflows/github.yml
vendored
@@ -103,7 +103,7 @@ jobs:
|
|||||||
test: 0
|
test: 0
|
||||||
pack: 1
|
pack: 1
|
||||||
extension: ipa
|
extension: ipa
|
||||||
preset: ios-release-conan
|
preset: ios-release-conan-ccache
|
||||||
conan_profile: ios-arm64
|
conan_profile: ios-arm64
|
||||||
conan_options: --options with_apple_system_libs=True
|
conan_options: --options with_apple_system_libs=True
|
||||||
- platform: msvc
|
- platform: msvc
|
||||||
@@ -159,7 +159,6 @@ jobs:
|
|||||||
VCMI_BUILD_PLATFORM: x64
|
VCMI_BUILD_PLATFORM: x64
|
||||||
|
|
||||||
- name: ccache
|
- name: ccache
|
||||||
if: startsWith(matrix.preset, 'ios') != true
|
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
with:
|
with:
|
||||||
key: ${{ matrix.preset }}
|
key: ${{ matrix.preset }}
|
||||||
@@ -203,15 +202,9 @@ jobs:
|
|||||||
PULL_REQUEST: ${{ github.event.pull_request.number }}
|
PULL_REQUEST: ${{ github.event.pull_request.number }}
|
||||||
|
|
||||||
- name: CMake Preset with ccache
|
- name: CMake Preset with ccache
|
||||||
if: startsWith(matrix.preset, 'ios') != true
|
|
||||||
run: |
|
run: |
|
||||||
cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache --preset ${{ matrix.preset }}
|
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
|
- name: Build Preset
|
||||||
run: |
|
run: |
|
||||||
cmake --build --preset ${{matrix.preset}}
|
cmake --build --preset ${{matrix.preset}}
|
||||||
|
@@ -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)
|
option(ENABLE_MONOLITHIC_INSTALL "Install everything in single directory on Linux and Mac" OFF)
|
||||||
endif()
|
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
|
# Allow to pass package name from Travis CI
|
||||||
set(PACKAGE_NAME_SUFFIX "" CACHE STRING "Suffix for CPack package name")
|
set(PACKAGE_NAME_SUFFIX "" CACHE STRING "Suffix for CPack package name")
|
||||||
set(PACKAGE_FILE_NAME "" CACHE STRING "Override for CPack package filename")
|
set(PACKAGE_FILE_NAME "" CACHE STRING "Override for CPack package filename")
|
||||||
@@ -237,6 +261,23 @@ if(MINGW OR MSVC)
|
|||||||
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
||||||
|
|
||||||
if(MSVC)
|
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_NO_LIB)
|
||||||
add_definitions(-DBOOST_ALL_DYN_LINK)
|
add_definitions(-DBOOST_ALL_DYN_LINK)
|
||||||
set(Boost_USE_STATIC_LIBS OFF)
|
set(Boost_USE_STATIC_LIBS OFF)
|
||||||
|
@@ -84,7 +84,6 @@
|
|||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "Debug",
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
"ENABLE_LUA" : "ON",
|
"ENABLE_LUA" : "ON",
|
||||||
"ENABLE_PCH" : "OFF",
|
|
||||||
"CMAKE_C_COMPILER": "/usr/bin/gcc",
|
"CMAKE_C_COMPILER": "/usr/bin/gcc",
|
||||||
"CMAKE_CXX_COMPILER": "/usr/bin/g++"
|
"CMAKE_CXX_COMPILER": "/usr/bin/g++"
|
||||||
}
|
}
|
||||||
@@ -223,6 +222,15 @@
|
|||||||
"ENABLE_PCH" : "ON"
|
"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",
|
"name": "ios-release-legacy",
|
||||||
"displayName": "iOS release using legacy dependencies",
|
"displayName": "iOS release using legacy dependencies",
|
||||||
@@ -331,6 +339,11 @@
|
|||||||
"CODE_SIGNING_ALLOWED_FOR_APPS=NO"
|
"CODE_SIGNING_ALLOWED_FOR_APPS=NO"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "ios-release-conan-ccache",
|
||||||
|
"configurePreset": "ios-release-conan-ccache",
|
||||||
|
"inherits": "ios-release-conan"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ios-release-legacy",
|
"name": "ios-release-legacy",
|
||||||
"configurePreset": "ios-release-legacy",
|
"configurePreset": "ios-release-legacy",
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "CFocusableHelper.h"
|
#include "CFocusableHelper.h"
|
||||||
#include "../Global.h"
|
#include "../Global.h"
|
||||||
|
#include "StdInc.h"
|
||||||
#include "widgets/TextControls.h"
|
#include "widgets/TextControls.h"
|
||||||
|
|
||||||
void removeFocusFromActiveInput()
|
void removeFocusFromActiveInput()
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#import "startSDL.h"
|
#import "startSDL.h"
|
||||||
|
#include "StdInc.h"
|
||||||
#import "GameChatKeyboardHandler.h"
|
#import "GameChatKeyboardHandler.h"
|
||||||
|
|
||||||
#include "../Global.h"
|
#include "../Global.h"
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "StdInc.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
3
xcode/launch-c.in
Normal file
3
xcode/launch-c.in
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
export CCACHE_CPP2=true
|
||||||
|
ccache clang "$@"
|
3
xcode/launch-cxx.in
Normal file
3
xcode/launch-cxx.in
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
export CCACHE_CPP2=true
|
||||||
|
ccache clang++ "$@"
|
Reference in New Issue
Block a user