3 * CMake 3.6 and 3.7 compatibility.
4 * fix ccache 3.2 compatibility issues.
5 * fix bugs with handling language standard related properties (e.g., `CXX_STANDARD`, `CXX_EXTENSIONS`).
6 * make prefix header generation and precompiled header compilation depend on the compiler executable.
7 * fix Qt automoc handling for Windows (thanks jcelerier).
8 * convert Windows paths in include directories to CMake paths (thanks wdx04).
9 * replace object library with corresponding unity object library when using `COPY_UNITY` linking strategy.
10 * better error reporting from prefix header generation.
14 * fix `COPY_UNITY` linking strategy for private link dependencies.
15 * honor `CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE` upon handling of target usage requirements.
16 * reworked setting up of `LINK_LIBRARIES` and `INTERFACE_LINK_LIBRARIES` properties for unity targets.
20 * CMake 3.5 compatibility.
21 * fix bugs related to handling of interface libraries.
22 * output shorter log messages when using Visual Studio IDE.
23 * don't disable PCH if CMAKE_<LANG>_COMPILER_ID is not set (thanks jcelerier).
24 * add support for compiler launchers introduced in CMake 3.4 (thanks misery).
28 * fix CMake 3.4 compatibility issues.
29 * prevent redundant re-generation of prefix header when a target has generated source files.
33 * handle visibility target properties (`CXX_VISIBILITY_PRESET` and `VISIBILITY_INLINES_HIDDEN`).
34 * better handling of include directories and system include directories.
35 * parse additional system include directories from target compile flags.
36 * activate select CMake policies.
40 * set up single unity source file for prefix header generation.
41 * increase MSVC default PCH memory to 128M.
42 * remove obsolete code.
46 * handle language standard target properties (e.g., `CXX_STANDARD`).
47 * apply user provided prefix header to unity build target.
48 * remove effect of `COTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES` on generated unity target.
53 * reduce configure time overhead.
54 * fix bug with dependency checking when using Xcode.
55 * remove obsolete code required for CMake versions older than 2.8.12.
56 * streamline debugging output.
60 * fix problem with CMake's automatic Qt processing for generated unity targets.
61 * added a section on common pitfalls when using cotire to the manual.
62 * remove obsolete code required for CMake versions older than 2.8.12.
63 * streamline debugging output.
64 * activate select CMake policies.
68 * fix CMake 3.2 compatibility issues.
69 * cotire now requires CMake 2.8.12 or newer.
70 * copy `IMPORT_PREFIX` and `IMPORT_SUFFIX` target properties for unity targets (thanks peterhuene).
71 * new property `COTIRE_PREFIX_HEADER_INCLUDE_PRIORITY_PATH` allows for organizing includes
72 added to the prefix header by priority (thanks ArnaudD-FR).
73 * for Visual Studio C++, increase static precompiled header memory allocation.
74 * the default strategy for setting up a unity target's linked libraries is now `COPY_UNITY`.
75 * for Qt projects, fix problem with handling of `AUTOMOC` in generated unity target.
76 * fix problem with generating the cotire intermediate directory.
77 * documentation updates.
81 * fix bug with parsing of localized MSVC `/showIncludes` output.
85 * fix bug with generation of unity source file segments for parallel builds.
89 * fix CMake 3.1 compatibility issues.
90 * fix ccache 3.2 compatibility issues.
91 * handle `COTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES` correctly for mixed-language targets.
92 * correctly compute absolute paths of generated source files added to the unity source file.
93 * fix bug with checking unity source and prefix header dependencies under Xcode.
94 * fix bug with handling of unity source file dependencies.
95 * move code to determine build configurations to function of its own.
96 * documentation updates.
100 * fix GCC issue with prefix header generation when source files are missing.
101 * fix bug where some target properties were not properly propagated to the generated unity target.
102 * use `target_link_libraries` to set up the unity target link libraries.
103 * add Qt4 and Qt5 examples to the `Patches` directory.
104 * documentation updates.
106 ## 1.6.5 (2014-08-26)
108 * correctly handle generator expressions used in compile definitions, compile flags and include
109 directories (requires CMake 2.8.12 or newer).
110 * fix `-isystem` includes being incorrectly passed to `execute_process` (thanks nickhutchinson).
111 * make some error messages more verbose.
113 ## 1.6.4 (2014-07-14)
115 * fix CMake 3.0 compatibility issues.
116 * preserve system flag for includes when generating PCH (thanks gjasny).
117 * fix bug with setting up `EXPORTS` symbol for shared libraries.
119 ## 1.6.3 (2014-06-11)
121 * correctly handle usage requirements for transitive link targets.
122 * use indirect inclusion for prefix header when using generator Xcode.
124 ## 1.6.2 (2014-06-09)
126 * don't use `-w` flag for pre-compiling the prefix header, because it has unwanted side effects.
127 * correctly handle linked targets' `INTERFACE_COMPILE_OPTIONS`, `INTERFACE_INCLUDE_DIRECTORIES`
128 and `INTERFACE_COMPILE_DEFINITIONS` properties upon pre-compiling and prefix header generation.
129 * For Clang and GCC, pre-compile prefix header through indirect inclusion via a prefix source file,
130 to make both compilers honor the `system_header` pragma in the prefix header correctly.
131 * fix ccache incompatibility.
133 ## 1.6.1 (2014-04-20)
135 * fixed bug where precompiled headers did not work with Clang (thanks to nh2 for reporting).
136 * when using ccache, require that environment variable `CCACHE_SLOPPINESS` is set to `time_macros`.
138 ## 1.6.0 (2014-03-16)
140 * suppress compiler warnings from precompiled headers.
141 * fix Clang compatibility issue with prefix header generation.
142 * use file extension `.pch` for precompiled headers generated with Clang.
145 ## 1.5.2 (2014-01-17)
147 * honor framework includes under OS X correctly.
148 * fix handling of OS X specific variables `CMAKE_OSX_SYSROOT` and `CMAKE_OSX_DEPLOYMENT_TARGET`.
149 * add new examples to the `Patches` directory.
151 ## 1.5.1 (2013-11-12)
153 * fixed string quoting bugs.
155 ## 1.5.0 (2013-10-13)
157 * CMake 2.8.12 compatibility fixes.
158 * Upon generation of a unity target, cotire can now be configured to automatically copy all the
159 linked libraries and targets from the original target. See the section on the new target property
160 `COTIRE_UNITY_LINK_LIBRARIES_INIT` in the cotire manual.
161 * fixed bug with copying target properties to generated unity target.
162 * cotire manual updates.
163 * add new examples to the `Patches` directory.
166 ## 1.4.3 (2013-09-28)
168 * fixed bug with generation of unity source file when `COTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES` is
171 ## 1.4.2 (2013-08-24)
173 * CMake 2.8.11 compatibility fixes.
174 * always force the inclusion of a user provided prefix header, even if the target
175 contains too few sources to enable the use of a precompiled header.
177 ## 1.4.1 (2013-06-08)
179 * fixed bug with determination of compiler version.
180 * fixed bug with generation of unity source when target source files are used for multiple targets.
181 * fixed bug with multi-core optimized prefix header generation.
183 ## 1.4.0 (2013-03-11)
185 * one year anniversary release.
186 * add support for multi-core optimized unity builds for some CMake generators.
187 * add support for multi-core optimized prefix header generation.
188 * add more examples to cotire manual.
190 ## 1.3.6 (2013-03-06)
192 * fix bug with prefix header initialization for generator Xcode.
193 * print cotire version upon inclusion.
195 ## 1.3.5 (2013-03-01)
197 * fix typos in function names and property descriptions.
199 ## 1.3.4 (2013-02-07)
201 * fixed bug with computing to output directory of the generated unity target (thanks shaunew).
202 * fixed wrong variable reference in debugging output (thanks shaunew).
204 ## 1.3.3 (2013-02-03)
206 * fixed bug with handling of policy CMP0018 relating to target property `POSITION_INDEPENDENT_CODE`.
207 * fixed warnings relating to uninitialized variables.
208 * Intel XE 2013 Update 2 compatibility fixes.
210 ## 1.3.2 (2013-02-02)
212 * fixed missing curly brace (thanks shaunew).
214 ## 1.3.1 (2013-01-29)
216 * fix bug with filtering of compile options.
218 ## 1.3.0 (2013-01-09)
220 * add support for Intel C and C++ compilers.
221 * CMake 2.8.10 compatibility fixes.
222 * properly clean up generated cotire log files upon invoking `clean` target.
223 * documentation updates.
225 ## 1.2.0 (2012-11-01)
227 * add support for manually maintained prefix header and unity source files.
228 * the target property `COTIRE_<LANG>_PREFIX_HEADER_INIT` can be set to a user provided prefix
229 header file to be used instead of the automatically generated one (e.g., `stdafx.h`).
230 * the new target property `COTIRE_<LANG>_UNITY_SOURCE_INIT` can be set to a user provided unity
231 source file to be used instead of the automatically generated one.
232 * the target property `COTIRE_UNITY_TARGET_NAME` is no longer read-only. It can be set to the
233 desired name of the unity target that will be added by cotire.
234 * add parameters `SOURCE_DIR` and `BINARY_DIR` to function `cotire` to allow for explicitly
235 specifying a target's source and binary directory, if target to be cotired has been added in a
238 ## 1.1.8 (2012-10-27)
240 * when using MSVC, apply option `/bigobj` to compilation of generated unity files.
242 ## 1.1.7 (2012-10-26)
244 * cope with double slash characters in scanned include paths.
246 ## 1.1.6 (2012-09-22)
248 * check result code upon scanning includes.
249 * always add a `clean_cotire` target to easily clean up cotire generated files.
250 * add section on `extern "C"` linkage issues to manual.
252 ## 1.1.5 (2012-08-17)
254 * new cache variable `COTIRE_UNITY_SOURCE_EXCLUDE_EXTENSIONS` can be set to globally exclude
255 sources with the listed file extensions from the generated unity source.
256 * fix check for multi-architecture builds under OS X.
258 ## 1.1.4 (2012-08-15)
260 * prevent redundant re-generation of the unity source, prefix header and precompiled header files
261 (this makes cotire more applicable to C++ projects that use Qt).
263 ## 1.1.3 (2012-08-12)
265 * fix out of range index operation upon building list of target include directories.
266 * honor target properties `POSITION_INDEPENDENT_CODE` and `NO_SONAME` introduced with CMake 2.8.9.
267 * make selection of target source files for requested target language more careful.
268 * prevent modification of the CMake policy stack upon CMake version check.
270 ## 1.1.2 (2012-05-06)
272 * make handling of include directories more robust against invalid paths.
274 ## 1.1.1 (2012-04-20)
276 * fixed bug with generation of unity targets for `WIN32_EXECUTABLE` targets.
277 * fixed bug with parsing of localized MSVC `/showIncludes` output.
279 ## 1.1.0 (2012-04-19)
281 * tested with CMake 2.8.8.
282 * added example to manual that shows how to apply cotire to CMake object library targets.
283 * fixed multiple bugs with handling of CMake single build type and multiple configuration builds.
284 * added more robust parsing of localized MSVC `/showIncludes` output.
286 ## 1.0.9 (2012-04-09)
288 * add support for compiler wrappers like ccache.
289 * under OS X, apply `CMAKE_OSX_SYSROOT` to prefix header include and ignore paths.
291 ## 1.0.8 (2012-04-05)
293 * require CMake 2.8.6 since we are using `set_property` option `APPEND_STRING`.
295 ## 1.0.7 (2012-04-02)
297 * add support for Ninja generator introduced in CMake 2.8.8.
298 * fix bug with initialization of variable `COTIRE_VERBOSE`.
300 ## 1.0.6 (2012-04-01)
302 * correctly handle builds where both `CMAKE_BUILD_TYPE` and `CMAKE_CONFIGURATION_TYPES` are set.
304 ## 1.0.5 (2012-03-26)
306 * fix Visual Studio C++ 2010 compilation of example project.
307 * enhance heuristic for #include_next directive detection.
308 * fix llvm-3.0.src.patch for GCC 4.6 compilation.
310 ## 1.0.4 (2012-03-24)
312 * honor target property INCLUDE_DIRECTORIES introduced in CMake 2.8.8.
314 ## 1.0.3 (2012-03-23)
316 * handle OBJECT_LIBRARY targets introduced in CMake 2.8.8.
317 * use predefined compiler version variable, if available.
319 ## 1.0.2 (2012-03-16)
321 * fix Xcode 4.3 compatibility.
322 * Cotire manual corrections.
324 ## 1.0.1 (2012-03-15)
326 * Cotire manual corrections.
327 * Add prefix header to the generated unity build target.
329 ## 1.0.0 (2012-03-11)