Native cmake precompiled header support
Works in version 3.16 of cmake
This commit is contained in:
parent
31d0bf8c80
commit
09fee927da
@ -1,9 +1,16 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
set(EnablePrecompiledHeaders 1 CACHE BOOL "Enable Precompiled Headers to reduce compile time")
|
||||
if(${CMAKE_VERSION} VERSION_LESS "3.16.0")
|
||||
set(EnableCotire 1 CACHE BOOL "Enable CoTiRe (Compile Time Reducer)")
|
||||
else()
|
||||
set(EnableCotire 0)
|
||||
endif()
|
||||
|
||||
# Ensure that only 32 bit libraries are used.
|
||||
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/Toolchain-cross-m32.cmake")
|
||||
|
||||
if (EnablePrecompiledHeaders AND EnableCotire)
|
||||
# Don't enable cotire when running in QtCreator
|
||||
execute_process(COMMAND "printenv" OUTPUT_VARIABLE contents)
|
||||
STRING(REGEX REPLACE ";" "\\\\;" contents "${contents}")
|
||||
@ -14,8 +21,9 @@ foreach(text ${contents})
|
||||
set(EnableCotire 0)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if (EnableCotire)
|
||||
if (EnablePrecompiledHeaders AND EnableCotire)
|
||||
set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/external/cotire/CMake")
|
||||
include(cotire)
|
||||
file(GLOB_RECURSE ignore_files *.cpp)
|
||||
@ -199,17 +207,19 @@ add_subdirectory(include)
|
||||
add_subdirectory(external)
|
||||
add_subdirectory(modules)
|
||||
|
||||
if (EnableCotire)
|
||||
if (EnablePrecompiledHeaders AND EnableCotire)
|
||||
set_target_properties(cathook PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "${CMAKE_SOURCE_DIR}/include/common.hpp")
|
||||
set_target_properties(cathook PROPERTIES COTIRE_ADD_UNITY_BUILD true)
|
||||
set_target_properties(cathook PROPERTIES COTIRE_UNITY_SOURCE_MAXIMUM_NUMBER_OF_INCLUDES 30)
|
||||
set_source_files_properties(${ignore_files} PROPERTIES COTIRE_EXCLUDED true)
|
||||
cotire(cathook)
|
||||
elseif(EnablePrecompiledHeaders)
|
||||
target_precompile_headers(cathook PRIVATE "${CMAKE_SOURCE_DIR}/include/common.hpp")
|
||||
endif()
|
||||
|
||||
add_custom_command(TARGET cathook POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:cathook> "${CMAKE_SOURCE_DIR}/bin/$<TARGET_FILE_NAME:cathook>")
|
||||
if (EnableCotire)
|
||||
if (EnablePrecompiledHeaders AND EnableCotire)
|
||||
add_custom_command(TARGET cathook_unity POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:cathook_unity> "${CMAKE_SOURCE_DIR}/bin/$<TARGET_FILE_NAME:cathook_unity>")
|
||||
endif()
|
||||
|
@ -5,7 +5,8 @@
|
||||
* Author: nullifiedcat
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#ifndef CH_TIMER_HPP
|
||||
#define CH_TIMER_HPP
|
||||
#include <chrono>
|
||||
|
||||
class Timer
|
||||
@ -36,3 +37,4 @@ public:
|
||||
public:
|
||||
std::chrono::time_point<clock> last{};
|
||||
};
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user