aboutsummaryrefslogtreecommitdiff
path: root/dep/cotire/HISTORY.md
blob: c92e0b1bffb554bda33e3148532432ec929b4d56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
## 1.7.10 (2017-06-16)

* 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.

## 1.7.9 (2016-12-08)

* 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.
 
## 1.7.8 (2016-03-27)

* 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` and `INTERFACE_LINK_LIBRARIES` properties for unity targets.

## 1.7.7 (2016-03-20)

* 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_<LANG>_COMPILER_ID is not set (thanks jcelerier).
* add support for compiler launchers introduced in CMake 3.4 (thanks misery).

## 1.7.6 (2015-12-06)

* fix CMake 3.4 compatibility issues.
* prevent redundant re-generation of prefix header when a target has generated source files.

## 1.7.5 (2015-10-27)

* handle visibility target properties (`CXX_VISIBILITY_PRESET` and `VISIBILITY_INLINES_HIDDEN`).
* better handling of include directories and system include directories.
* parse additional system include directories from target compile flags.
* activate select CMake policies.

## 1.7.4 (2015-10-10)

* set up single unity source file for prefix header generation.
* increase MSVC default PCH memory to 128M.
* remove obsolete code.

## 1.7.3 (2015-07-25)

* 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.

## 1.7.2 (2015-04-22)

* 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.

## 1.7.1 (2015-04-06)

* 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.

## 1.7.0 (2015-03-29)

* fix CMake 3.2 compatibility issues.
* cotire now requires CMake 2.8.12 or newer.
* copy `IMPORT_PREFIX` and `IMPORT_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.

## 1.6.9 (2015-01-18)

* fix bug with parsing of localized MSVC `/showIncludes` output.

## 1.6.8 (2014-12-28)

* fix bug with generation of unity source file segments for parallel builds.

## 1.6.7 (2014-12-21)

* 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.

## 1.6.6 (2014-09-21)

* 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.

## 1.6.5 (2014-08-26)

* 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 to `execute_process` (thanks nickhutchinson).
* make some error messages more verbose.

## 1.6.4 (2014-07-14)

* 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.

## 1.6.3 (2014-06-11)

* correctly handle usage requirements for transitive link targets.
* use indirect inclusion for prefix header when using generator Xcode.

## 1.6.2 (2014-06-09)

* 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`
  and `INTERFACE_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.

## 1.6.1 (2014-04-20)

* 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 to `time_macros`.

## 1.6.0 (2014-03-16)

* 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.

## 1.5.2 (2014-01-17)

* honor framework includes under OS X correctly.
* fix handling of OS X specific variables `CMAKE_OSX_SYSROOT` and `CMAKE_OSX_DEPLOYMENT_TARGET`.
* add new examples to the `Patches` directory.

## 1.5.1 (2013-11-12)

* fixed string quoting bugs.

## 1.5.0 (2013-10-13)

* 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.

## 1.4.3 (2013-09-28)

* fixed bug with generation of unity source file when `COTIRE_MINIMUM_NUMBER_OF_TARGET_SOURCES` is
  set to 0.

## 1.4.2 (2013-08-24)

* 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.

## 1.4.1 (2013-06-08)

* 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.

## 1.4.0 (2013-03-11)

* 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.

## 1.3.6 (2013-03-06)

* fix bug with prefix header initialization for generator Xcode.
* print cotire version upon inclusion.

## 1.3.5 (2013-03-01)

* fix typos in function names and property descriptions.

## 1.3.4 (2013-02-07)

* fixed bug with computing to output directory of the generated unity target (thanks shaunew).
* fixed wrong variable reference in debugging output (thanks shaunew).

## 1.3.3 (2013-02-03)

* 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.

## 1.3.2 (2013-02-02)

* fixed missing curly brace (thanks shaunew).

## 1.3.1 (2013-01-29)

* fix bug with filtering of compile options.

## 1.3.0 (2013-01-09)

* 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.

## 1.2.0 (2012-11-01)

* 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` and `BINARY_DIR` to function `cotire` to allow for explicitly
  specifying a target's source and binary directory, if target to be cotired has been added in a
  different directory.

## 1.1.8 (2012-10-27)

* when using MSVC, apply option `/bigobj` to compilation of generated unity files.

## 1.1.7 (2012-10-26)

* cope with double slash characters in scanned include paths.

## 1.1.6 (2012-09-22)

* 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.

## 1.1.5 (2012-08-17)

* 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.

## 1.1.4 (2012-08-15)

* 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).

## 1.1.3 (2012-08-12)

* fix out of range index operation upon building list of target include directories.
* honor target properties `POSITION_INDEPENDENT_CODE` and `NO_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.

## 1.1.2 (2012-05-06)

* make handling of include directories more robust against invalid paths.

## 1.1.1 (2012-04-20)

* fixed bug with generation of unity targets for `WIN32_EXECUTABLE` targets.
* fixed bug with parsing of localized MSVC `/showIncludes` output.

## 1.1.0 (2012-04-19)

* 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.

## 1.0.9 (2012-04-09)

* add support for compiler wrappers like ccache.
* under OS X, apply `CMAKE_OSX_SYSROOT` to prefix header include and ignore paths.

## 1.0.8 (2012-04-05)

* require CMake 2.8.6 since we are using `set_property` option `APPEND_STRING`.

## 1.0.7 (2012-04-02)

* add support for Ninja generator introduced in CMake 2.8.8.
* fix bug with initialization of variable `COTIRE_VERBOSE`.

## 1.0.6 (2012-04-01)

* correctly handle builds where both `CMAKE_BUILD_TYPE` and `CMAKE_CONFIGURATION_TYPES` are set.

## 1.0.5 (2012-03-26)

* 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.

## 1.0.4 (2012-03-24)

* honor target property INCLUDE_DIRECTORIES introduced in CMake 2.8.8.

## 1.0.3 (2012-03-23)

* handle OBJECT_LIBRARY targets introduced in CMake 2.8.8.
* use predefined compiler version variable, if available.

## 1.0.2 (2012-03-16)

* fix Xcode 4.3 compatibility.
* Cotire manual corrections.

## 1.0.1 (2012-03-15)

* Cotire manual corrections.
* Add prefix header to the generated unity build target.

## 1.0.0 (2012-03-11)

* First release.