| @@ -3,7 +3,7 @@ | |||
| # See the cotire manual for usage hints. | |||
| # | |||
| #============================================================================= | |||
| # Copyright 2012-2017 Sascha Kratky | |||
| # Copyright 2012-2018 Sascha Kratky | |||
| # | |||
| # Permission is hereby granted, free of charge, to any person | |||
| # obtaining a copy of this software and associated documentation | |||
| @@ -721,7 +721,7 @@ function (cotire_get_target_compile_definitions _config _language _target _defin | |||
| endif() | |||
| endforeach() | |||
| # parse additional compile definitions from target compile flags | |||
| # and don't look at directory compile definitions, which we already handled | |||
| # and do not look at directory compile definitions, which we already handled | |||
| set (_targetFlags "") | |||
| cotire_get_target_compile_flags("${_config}" "${_language}" "${_target}" _targetFlags) | |||
| cotire_filter_compile_flags("${_language}" "D" _definitions _ignore ${_targetFlags}) | |||
| @@ -1086,12 +1086,11 @@ endmacro() | |||
| macro (cotire_parse_line _line _headerFileVar _headerDepthVar) | |||
| if (MSVC) | |||
| # cl.exe /showIncludes output looks different depending on the language pack used, e.g.: | |||
| # cl.exe /showIncludes produces different output, depending on the language pack used, e.g.: | |||
| # English: "Note: including file: C:\directory\file" | |||
| # German: "Hinweis: Einlesen der Datei: C:\directory\file" | |||
| # We use a very general regular expression, relying on the presence of the : characters | |||
| if (_line MATCHES "( +)([a-zA-Z]:[^:]+)$") | |||
| # Visual Studio compiler output | |||
| string (LENGTH "${CMAKE_MATCH_1}" ${_headerDepthVar}) | |||
| get_filename_component(${_headerFileVar} "${CMAKE_MATCH_2}" ABSOLUTE) | |||
| else() | |||
| @@ -1882,7 +1881,7 @@ function (cotire_precompile_prefix_header _prefixFile _pchFile _hostFile) | |||
| elseif (_option_COMPILER_ID MATCHES "GNU|Clang") | |||
| if (_option_COMPILER_LAUNCHER MATCHES "ccache" OR | |||
| _option_COMPILER_EXECUTABLE MATCHES "ccache") | |||
| # Newer versions of Clang and GCC seem to embed a compilation timestamp into the precompiled header binary, | |||
| # Newer versions of Clang embed a compilation timestamp into the precompiled header binary, | |||
| # which results in "file has been modified since the precompiled header was built" errors if ccache is used. | |||
| # We work around the problem by disabling ccache upon pre-compiling the prefix header. | |||
| set (ENV{CCACHE_DISABLE} "true") | |||
| @@ -1901,7 +1900,7 @@ function (cotire_check_precompiled_header_support _language _target _msgVar) | |||
| set (_unsupportedCompiler | |||
| "Precompiled headers not supported for ${_language} compiler ${CMAKE_${_language}_COMPILER_ID}") | |||
| if (CMAKE_${_language}_COMPILER_ID MATCHES "MSVC") | |||
| # supported since Visual Studio C++ 6.0 | |||
| # PCH supported since Visual Studio C++ 6.0 | |||
| # and CMake does not support an earlier version | |||
| set (${_msgVar} "" PARENT_SCOPE) | |||
| elseif (CMAKE_${_language}_COMPILER_ID MATCHES "GNU") | |||
| @@ -2502,7 +2501,8 @@ function (cotire_setup_unity_generation_commands _language _target _targetScript | |||
| set_property (SOURCE "${_unityFile}" PROPERTY OBJECT_DEPENDS ${_objectDependsPaths}) | |||
| endif() | |||
| if (WIN32 AND CMAKE_${_language}_COMPILER_ID MATCHES "MSVC|Intel") | |||
| # unity file compilation results in potentially huge object file, thus use /bigobj by default unter MSVC and Windows Intel | |||
| # unity file compilation results in potentially huge object file, | |||
| # thus use /bigobj by default unter cl.exe and Windows Intel | |||
| set_property (SOURCE "${_unityFile}" APPEND_STRING PROPERTY COMPILE_FLAGS "/bigobj") | |||
| endif() | |||
| cotire_set_cmd_to_prologue(_unityCmd) | |||