- support for clang-cl.exe under Windows.
- faster prefix header generation for Clang.
- enable parallel compilation of unity target for MSVC.
- CMake 3.9 and 3.10 compatibility fixes.
- disable inclusion of timestamp in precompiled headers for Clang.
- work around ccache reporting incorrect configuration.
- honor
MANUALLY_ADDED_DEPENDENCIES
property upon generation of unity targets. - use default setting of 2 for
COTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES
. - drop broken support for unity building of targets with automatic CMake Qt processing turned on.
- manual updates.
- CMake 3.8 compatibility.
- CMake 3.8.0 Qt automoc support (thanks bilke).
- fix Xcode recompiling every time builds happen (thanks gcamp).
- disable PCH messages when
-Wno-pch-messages
flag exists (thanks kbinani). - work around ccache incompatibility with newer versions of GCC and Clang.
- fix MinGW incompatibility with
BUILD_INTERFACE
generator expression. - fix handling of
CMAKE_INCLUDE_FLAG_SEP_<LANG>
variables.
- CMake 3.6 and 3.7 compatibility.
- fix ccache 3.2 compatibility issues.
- fix bugs with handling language standard related properties (e.g.,
CXX_STANDARD
,CXX_EXTENSIONS
). - make prefix header generation and precompiled header compilation depend on the compiler executable.
- fix Qt automoc handling for Windows (thanks jcelerier).
- convert Windows paths in include directories to CMake paths (thanks wdx04).
- replace object library with corresponding unity object library when using
COPY_UNITY
linking strategy. - better error reporting from prefix header generation.
- fix
COPY_UNITY
linking strategy for private link dependencies. - honor
CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE
upon handling of target usage requirements. - reworked setting up of
LINK_LIBRARIES
andINTERFACE_LINK_LIBRARIES
properties for unity targets.
- CMake 3.5 compatibility.
- fix bugs related to handling of interface libraries.
- output shorter log messages when using Visual Studio IDE.
- don't disable PCH if CMAKE__COMPILER_ID is not set (thanks jcelerier).
- add support for compiler launchers introduced in CMake 3.4 (thanks misery).
- fix CMake 3.4 compatibility issues.
- prevent redundant re-generation of prefix header when a target has generated source files.
- handle visibility target properties (
CXX_VISIBILITY_PRESET
andVISIBILITY_INLINES_HIDDEN
). - better handling of include directories and system include directories.
- parse additional system include directories from target compile flags.
- activate select CMake policies.
- set up single unity source file for prefix header generation.
- increase MSVC default PCH memory to 128M.
- remove obsolete code.
- handle language standard target properties (e.g.,
CXX_STANDARD
). - apply user provided prefix header to unity build target.
- remove effect of
COTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES
on generated unity target. - manual updates.
- reduce configure time overhead.
- fix bug with dependency checking when using Xcode.
- remove obsolete code required for CMake versions older than 2.8.12.
- streamline debugging output.
- fix problem with CMake's automatic Qt processing for generated unity targets.
- added a section on common pitfalls when using cotire to the manual.
- remove obsolete code required for CMake versions older than 2.8.12.
- streamline debugging output.
- activate select CMake policies.
- fix CMake 3.2 compatibility issues.
- cotire now requires CMake 2.8.12 or newer.
- copy
IMPORT_PREFIX
andIMPORT_SUFFIX
target properties for unity targets (thanks peterhuene). - new property
COTIRE_PREFIX_HEADER_INCLUDE_PRIORITY_PATH
allows for organizing includes added to the prefix header by priority (thanks ArnaudD-FR). - for Visual Studio C++, increase static precompiled header memory allocation.
- the default strategy for setting up a unity target's linked libraries is now
COPY_UNITY
. - for Qt projects, fix problem with handling of
AUTOMOC
in generated unity target. - fix problem with generating the cotire intermediate directory.
- documentation updates.
- fix bug with parsing of localized MSVC
/showIncludes
output.
- fix bug with generation of unity source file segments for parallel builds.
- fix CMake 3.1 compatibility issues.
- fix ccache 3.2 compatibility issues.
- handle
COTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES
correctly for mixed-language targets. - correctly compute absolute paths of generated source files added to the unity source file.
- fix bug with checking unity source and prefix header dependencies under Xcode.
- fix bug with handling of unity source file dependencies.
- move code to determine build configurations to function of its own.
- documentation updates.
- fix GCC issue with prefix header generation when source files are missing.
- fix bug where some target properties were not properly propagated to the generated unity target.
- use
target_link_libraries
to set up the unity target link libraries. - add Qt4 and Qt5 examples to the
Patches
directory. - documentation updates.
- correctly handle generator expressions used in compile definitions, compile flags and include directories (requires CMake 2.8.12 or newer).
- fix
-isystem
includes being incorrectly passed toexecute_process
(thanks nickhutchinson). - make some error messages more verbose.
- fix CMake 3.0 compatibility issues.
- preserve system flag for includes when generating PCH (thanks gjasny).
- fix bug with setting up
EXPORTS
symbol for shared libraries.
- correctly handle usage requirements for transitive link targets.
- use indirect inclusion for prefix header when using generator Xcode.
- don't use
-w
flag for pre-compiling the prefix header, because it has unwanted side effects. - correctly handle linked targets'
INTERFACE_COMPILE_OPTIONS
,INTERFACE_INCLUDE_DIRECTORIES
andINTERFACE_COMPILE_DEFINITIONS
properties upon pre-compiling and prefix header generation. - For Clang and GCC, pre-compile prefix header through indirect inclusion via a prefix source file,
to make both compilers honor the
system_header
pragma in the prefix header correctly. - fix ccache incompatibility.
- fixed bug where precompiled headers did not work with Clang (thanks to nh2 for reporting).
- when using ccache, require that environment variable
CCACHE_SLOPPINESS
is set totime_macros
.
- suppress compiler warnings from precompiled headers.
- fix Clang compatibility issue with prefix header generation.
- use file extension
.pch
for precompiled headers generated with Clang. - manual updates.
- honor framework includes under OS X correctly.
- fix handling of OS X specific variables
CMAKE_OSX_SYSROOT
andCMAKE_OSX_DEPLOYMENT_TARGET
. - add new examples to the
Patches
directory.
- fixed string quoting bugs.
- CMake 2.8.12 compatibility fixes.
- Upon generation of a unity target, cotire can now be configured to automatically copy all the
linked libraries and targets from the original target. See the section on the new target property
COTIRE_UNITY_LINK_LIBRARIES_INIT
in the cotire manual. - fixed bug with copying target properties to generated unity target.
- cotire manual updates.
- add new examples to the
Patches
directory. - fix typos.
- fixed bug with generation of unity source file when
COTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES
is set to 0.
- CMake 2.8.11 compatibility fixes.
- always force the inclusion of a user provided prefix header, even if the target contains too few sources to enable the use of a precompiled header.
- fixed bug with determination of compiler version.
- fixed bug with generation of unity source when target source files are used for multiple targets.
- fixed bug with multi-core optimized prefix header generation.
- one year anniversary release.
- add support for multi-core optimized unity builds for some CMake generators.
- add support for multi-core optimized prefix header generation.
- add more examples to cotire manual.
- fix bug with prefix header initialization for generator Xcode.
- print cotire version upon inclusion.
- fix typos in function names and property descriptions.
- fixed bug with computing to output directory of the generated unity target (thanks shaunew).
- fixed wrong variable reference in debugging output (thanks shaunew).
- fixed bug with handling of policy CMP0018 relating to target property
POSITION_INDEPENDENT_CODE
. - fixed warnings relating to uninitialized variables.
- Intel XE 2013 Update 2 compatibility fixes.
- fixed missing curly brace (thanks shaunew).
- fix bug with filtering of compile options.
- add support for Intel C and C++ compilers.
- CMake 2.8.10 compatibility fixes.
- properly clean up generated cotire log files upon invoking
clean
target. - documentation updates.
- add support for manually maintained prefix header and unity source files.
- the target property
COTIRE_<LANG>_PREFIX_HEADER_INIT
can be set to a user provided prefix header file to be used instead of the automatically generated one (e.g.,stdafx.h
). - the new target property
COTIRE_<LANG>_UNITY_SOURCE_INIT
can be set to a user provided unity source file to be used instead of the automatically generated one. - the target property
COTIRE_UNITY_TARGET_NAME
is no longer read-only. It can be set to the desired name of the unity target that will be added by cotire. - add parameters
SOURCE_DIR
andBINARY_DIR
to functioncotire
to allow for explicitly specifying a target's source and binary directory, if target to be cotired has been added in a different directory.
- when using MSVC, apply option
/bigobj
to compilation of generated unity files.
- cope with double slash characters in scanned include paths.
- check result code upon scanning includes.
- always add a
clean_cotire
target to easily clean up cotire generated files. - add section on
extern "C"
linkage issues to manual.
- new cache variable
COTIRE_UNITY_SOURCE_EXCLUDE_EXTENSIONS
can be set to globally exclude sources with the listed file extensions from the generated unity source. - fix check for multi-architecture builds under OS X.
- prevent redundant re-generation of the unity source, prefix header and precompiled header files (this makes cotire more applicable to C++ projects that use Qt).
- fix out of range index operation upon building list of target include directories.
- honor target properties
POSITION_INDEPENDENT_CODE
andNO_SONAME
introduced with CMake 2.8.9. - make selection of target source files for requested target language more careful.
- prevent modification of the CMake policy stack upon CMake version check.
- make handling of include directories more robust against invalid paths.
- fixed bug with generation of unity targets for
WIN32_EXECUTABLE
targets. - fixed bug with parsing of localized MSVC
/showIncludes
output.
- tested with CMake 2.8.8.
- added example to manual that shows how to apply cotire to CMake object library targets.
- fixed multiple bugs with handling of CMake single build type and multiple configuration builds.
- added more robust parsing of localized MSVC
/showIncludes
output.
- add support for compiler wrappers like ccache.
- under OS X, apply
CMAKE_OSX_SYSROOT
to prefix header include and ignore paths.
- require CMake 2.8.6 since we are using
set_property
optionAPPEND_STRING
.
- add support for Ninja generator introduced in CMake 2.8.8.
- fix bug with initialization of variable
COTIRE_VERBOSE
.
- correctly handle builds where both
CMAKE_BUILD_TYPE
andCMAKE_CONFIGURATION_TYPES
are set.
- fix Visual Studio C++ 2010 compilation of example project.
- enhance heuristic for #include_next directive detection.
- fix llvm-3.0.src.patch for GCC 4.6 compilation.
- honor target property INCLUDE_DIRECTORIES introduced in CMake 2.8.8.
- handle OBJECT_LIBRARY targets introduced in CMake 2.8.8.
- use predefined compiler version variable, if available.
- fix Xcode 4.3 compatibility.
- Cotire manual corrections.
- Cotire manual corrections.
- Add prefix header to the generated unity build target.
- First release.