Brad King
fc7c433463
ENH: Added support for import libraries created by executable and module targets. The module import libraries should never be used but some windows compilers always create them for .dll files since there is no distinction from shared libraries on that platform. The executable import libraries may be used to create modules that when loaded bind to symbols from the executables. This is an enhancement related to bug#4210 though not requested by it explicitly.
2007-03-19 10:00:36 -04:00
Brad King
1f639ee76c
ENH: Added computation of object file names that are almost always short enough to not exceed the filesystem path length limitation. This is useful when a source file from outside the tree is referenced with a long full path. The object file name previously would contain the entire path which when combined with the build output directory could exceed the filesystem limit. Now CMake recognizes this case and replaces enough of the beginning of the full path to the source file with an md5sum of the replaced portion to make the name fit on disk. This addresses bug#4520.
2007-03-16 10:34:25 -04:00
Brad King
9da6f96d98
BUG: Reverting previous changes related to using an empty string for a relative path to the current directory. Too many places want the . version. Instead we can just convert the . to an empty string in the one place that motiviated the original change.
2007-03-14 16:29:10 -04:00
Brad King
b8bd0f80db
BUG: When the current output directory is a link directory we need to reference it with the relative path "." instead of an empty relative path.
2007-03-14 15:35:10 -04:00
Brad King
770ffb1699
BUG: All executable and library project types should specify a program database file name for all configurations. Even when debug information is not used the .pdb file specified is used to construct the name of a .idb file that exists for all configurations when building with the VS IDE.
2007-03-14 09:34:31 -04:00
Brad King
fb38af53c0
BUG: Split precompiled header flags into a separate per-global-generator flag map. This is needed because the flag mappings differ across VS IDE versions. This fixes bug#3512 for VS8 where as the previous fix only worked for VS7.
2007-03-12 12:35:11 -04:00
Brad King
528f60f4a6
ENH: Added implib option to cmTarget::GetDirectory to support a separate directory containing the import library. This is an incremental step for bug#4210.
2007-03-09 09:30:16 -05:00
Brad King
01dc699d82
ENH: Combined cmTarget::GetDirectory and cmTarget::GetOutputDir since they are nearly the same. This is another step for bug#2240.
2007-03-08 15:33:19 -05:00
Brad King
33ee83714d
ENH: Replaced LibraryOutputPath and ExecutableOutputPath variables in Makefile and VS generators to instead ask each target for its output path. This significantly reduces total code size and centralizes previously duplicate code. It is also a step towards bug#2240.
2007-03-08 14:57:28 -05:00
Brad King
0e8515fa4c
BUG: Get rid of ancient variables CMAKE_CXX_WARNING_LEVEL, CMAKE_CXX_USE_RTTI, CMAKE_CXX_STACK_SIZE which are only partially implemented and now taken care of by flag mapping anyway.
2007-03-07 15:57:52 -05:00
Ken Martin
8e702e6977
COMP: fix some w4 warnings
2007-03-02 10:50:45 -05:00
Bill Hoffman
828eebcd31
STYLE: fix line length
2007-02-21 14:07:04 -05:00
Bill Hoffman
1d8e7e9411
BUG: fix for bug 4423 set language fixes
2007-02-20 09:35:21 -05:00
Bill Hoffman
f7cd9f76ce
STYLE: fix line length issues
2007-02-17 08:46:25 -05:00
Bill Hoffman
fad49c8724
ENH: fix for vs ide
2007-02-16 16:45:47 -05:00
Bill Hoffman
ca0230a33e
ENH: check in initial conv library stuff
2007-02-16 16:12:17 -05:00
Brad King
7c72e03c25
BUG: Do not hack the exception handling default for linker flags or for per-source-file flags.
2007-02-15 12:23:42 -05:00
Bill Hoffman
fd799a5d0e
STYLE: fix line length
2007-02-01 17:06:05 -05:00
Brad King
4bc0fd0941
ENH: Added cmTarget::GetPDBName method to simplify computation of .pdb file name for a target.
2007-02-01 16:54:49 -05:00
Brad King
7e896821f5
BUG: Do not use bitwise OR on bool.
2007-02-01 15:44:39 -05:00
Brad King
939ae77b7b
ENH: Added a special flags integer field to the flag map entries. Added flags for user values and other special cases. Added precompiled header flag translation entries. This addresses bug#3512.
2007-02-01 15:02:35 -05:00
Brad King
0b4bd97210
COMP: Removed unused variable.
2007-02-01 13:04:15 -05:00
Brad King
62d4c1b14a
ENH: Added mapping of /NODEFAULTLIB flag when no values are provided.
2007-02-01 12:00:17 -05:00
Brad King
d8aa12178d
ENH: Reimplemented parsing and mapping of flags into vcproj file attribute options. This cleans up and centralizes a few things. It is in preparation for dealing with precompiled header flags for bug #3512 since they require some special handling.
2007-02-01 11:49:27 -05:00
Brad King
712345ffc4
BUG: The .pdb file generated for a library or executable should match the real file name used for the target. This addresses bug#3277.
2007-02-01 09:57:24 -05:00
Bill Hoffman
345df44dc5
BUG: make sure external vs projects use the GUID in the project if it has one.
2007-01-31 13:34:18 -05:00
Bill Hoffman
cc2364f559
STYLE: fix link lenght issue
2007-01-15 12:12:56 -05:00
Bill Hoffman
cca67d7f8e
BUG: fix for bug 4239, NODEFAULTLIB flag support in ide
2007-01-11 21:02:47 -05:00
Brad King
b9f3de8491
BUG: When writing newlines between script portions in prebuild, prelink, and postbuild command lines they must be escaped for XML so that the IDE receives them. This fixes the fix for bug #3977 .
2006-10-26 10:49:29 -04:00
Brad King
89f098bc59
BUG: Adjust prebuild/prelink/postbuild script construction to account for ConstructScript no longer producing trailing newlines. This addresses bug#3977.
2006-10-25 12:49:27 -04:00
Brad King
b155f3aa1c
ENH: Adding image version number (major.minor) property to windows binaries. Default is 0.0, but the VERSION target property may change the value. Windows now has first-class support for dll and exe versioning. This addresses bug#1219.
2006-10-16 18:17:14 -04:00
Bill Hoffman
655ba54e2d
BUG: fix for bug#3908 if header_file_only is set on cxx files in visual studio do not compile them
2006-10-13 16:13:14 -04:00
Bill Hoffman
430f6f35eb
BUG: fix for fat file systems and vs8 #2617
2006-10-04 14:02:12 -04:00
Bill Hoffman
4c44781404
BUG: fix for bug#3362 xml escapes on -D stuff for visual studio
2006-10-04 13:27:58 -04:00
Bill Hoffman
8750b1960e
BUG: fix for bug# 3664
2006-10-04 11:33:07 -04:00
Bill Hoffman
2e7aef7422
BUG: fix for bug#3738
2006-10-03 14:03:12 -04:00
Brad King
9a1d4e92eb
BUG: Fix/cleanup custom commands and custom targets. Make empty comment strings work. Fix ZERO_CHECK target always out of date for debugging. Fix Makefile driving of custom commands in a custom target. Fix dependencies on custom targets not in ALL in VS generators.
2006-09-28 16:40:35 -04:00
Brad King
dd332a00cc
ENH: Re-implemented command line argument shell quoting to support several platforms with one code base.
2006-09-27 13:43:46 -04:00
Brad King
2459ceb076
BUG: Centralized generation of command line arguments in escaped form. This addresses bug#3786 for several platforms.
2006-09-21 15:14:06 -04:00
Brad King
5d632330b6
STYLE: Fixed line-too-long.
2006-08-26 10:22:23 -04:00
Brad King
7e47f8496a
BUG: Fix for VS.NET 2003 SP1 to make sure global target and utility target rules run every time.
2006-08-25 22:56:41 -04:00
Brad King
276e7e21a3
ENH: Adding flags to force generation of manifest files when building with VC 8.
2006-08-15 15:33:20 -04:00
Bill Hoffman
eec4790555
BUG: fix for 3557 TargetEnvironment for MIDL Compiler set correctly for 64 bit
2006-07-28 11:21:50 -04:00
Bill Hoffman
3b74388050
ENH: allow for source tree to be in root directory
2006-07-24 11:27:07 -04:00
Brad King
9bf5af6e32
ENH: Moved unique object file name computation from cmLocalUnixMakefileGenerator3 up to cmLocalGenerator for use by all generators. Created cmLocalVisualStudioGenerator as superclass for all VS generators. Implemented on-demand unique object file name computation for VS 7 generator to avoid slow compiles when all sources are in subdirectories.
2006-07-11 11:41:38 -04:00
Bill Hoffman
f5e87c309c
ENH: add EHa option
2006-06-30 13:51:25 -04:00
Bill Hoffman
e050211a6d
BUG: fix for bug 3444, remove trailing . in lib names
2006-06-26 12:06:44 -04:00
Ken Martin
f9eb5cf768
ENH: fix line length
2006-06-13 09:46:10 -04:00
Ken Martin
1f1196410a
ENH: fix line length
2006-06-12 15:44:10 -04:00
Bill Hoffman
abf97b5b84
ENH: fix /TP for c code
2006-06-06 12:01:23 -04:00
Brad King
3db44b6973
COMP: Added missing include for isspace.
2006-05-23 15:27:41 -04:00
Brad King
52a8004b98
BUG: Fix parsing of definitions to support REMOVE_DEFINITIONS.
2006-05-23 15:01:15 -04:00
Ken Martin
7dc8a92246
STYLE: fix line length
2006-05-12 11:56:09 -04:00
Bill Hoffman
1a2b8afe1e
ENH: remove bogus machine setting
2006-05-12 10:09:31 -04:00
Bill Hoffman
d5d1525339
ENH: remove debug output
2006-05-04 13:39:45 -04:00
Bill Hoffman
1794836ee3
ENH: fix build c stuff with c and c++ with c++
2006-05-04 13:35:56 -04:00
Bill Hoffman
2eea3e3868
ENH: use a better name
2006-04-21 08:59:11 -04:00
Bill Hoffman
03cee03f67
ENH: do not compile header files
2006-04-20 21:32:42 -04:00
Brad King
350c3efe7b
BUG: VS7 seems to have a limit on the length of the link directory list string. Try to make the string as short as possible by avoiding trailing slashes and using a relative path (if it is shorter).
2006-04-20 15:28:56 -04:00
Bill Hoffman
69488e5bd2
ENH: allow multiple files with the same name in different subdirs
2006-04-17 13:58:28 -04:00
Brad King
08289893b8
ENH: Split CMAKE_STANDARD_LIBRARIES into per-language variables CMAKE_<lang>_STANDARD_LIBRARIES. This is needed to get programmable language support working with Visual Studio generators. It makes sense anyway.
2006-04-11 16:55:49 -04:00
Brad King
e380bad5f6
BUG: Use flag-map transform only for C and C++ flags.
2006-04-11 14:54:19 -04:00
Brad King
d5719f22c1
ENH: Added support for multiple outputs generated by a single custom command. For Visual Studio generators the native tool provides support. For Xcode and Makefile generators a simple trick is used. The first output is considered primary and has the build rule attached. Other outputs simply depend on the first output with no build rule. During cmake_check_build_system CMake detects when a secondary output is missing and removes the primary output to make sure all outputs are regenerated. This approach always builds the custom command at the right time and only once even during parallel builds.
2006-04-11 11:06:19 -04:00
Bill Hoffman
3c8e899102
ENH: add support for per config target LINK_FLAGS
2006-04-03 12:57:51 -04:00
Bill Hoffman
5a2668b326
ENH: add support for win64 for visual studio 2005 ide and nmake, also fix warnings produced by building for win64
2006-03-30 13:49:56 -05:00
Ken Martin
00d2546664
ENH: removed unused rules from targets for VS
2006-03-23 13:55:09 -05:00
Ken Martin
3d96e52261
STYLE: some m_ to this-> cleanup
2006-03-15 11:02:08 -05:00
Andy Cedilnik
634343c3e8
STYLE: Fix some style issues
2006-03-10 13:06:26 -05:00
Andy Cedilnik
c4156b4531
COMP: Even more global target fixes
2006-02-24 17:35:35 -05:00
Andy Cedilnik
07d0e776ad
BUG: More fixing of support for global target son visual studio
2006-02-24 16:20:44 -05:00
Andy Cedilnik
7c0251014c
COMP: More fixes for visual studio
2006-02-23 13:46:34 -05:00
Bill Hoffman
0a0e459102
ENH: make command line flags more consistent with ide settings
2006-02-21 12:19:32 -05:00
Bill Hoffman
2cb68f6000
ENH: make sure CMAKE_STANDARD_LIBRARIES are used
2006-02-20 17:47:12 -05:00
Brad King
7bdec94154
BUG: Add target-level COMPILE_FLAGS to the target not the individual source files. This simplifies the generated files and puts flags in a more logical order (VS6 works, VS7 needs more translation to work).
2006-02-20 14:21:10 -05:00
Brad King
9ba0283870
ENH: If CMAKE_NO_AUTOMATIC_INCLUDE_DIRECTORIES is not set try to approximate in-source build include file behavior in an out-of-source build by adding the build tree directory corresponding to a source tree directory at the beginning of the include path. Also fixed VS6 and VS7 generators to use cmLocalGenerator's computation of include paths. The VS6 generator will now short-path the include directories if the total length is too long in order to try to avoid its truncation limit.
2006-02-18 11:51:23 -05:00
Brad King
5288d61ede
BUG: Use NOINHERIT macro to avoid linking to project default libraries which may not exist.
2006-02-15 16:38:57 -05:00
Brad King
6c89a96b86
BUG: Removed hard-coded linking to odbc32 and odbccp32.
2006-02-14 16:35:33 -05:00
Brad King
916ea2bad2
BUG: Avoid adding unused rules to special targets like ALL_BUILD. Make sure project regeneration rules go only in desired targets.
2006-02-14 16:32:20 -05:00
Bill Hoffman
8f71efa776
ENH: bug fix for 2829 better flags for idl tool
2006-02-09 23:08:19 -05:00
Brad King
1b5e3f4136
BUG: Fixed generation of cmake re-run rules.
2006-02-09 18:42:58 -05:00
Bill Hoffman
347c5f4b46
ENH: add working directory support
2006-02-08 10:58:36 -05:00
Brad King
f4b306d5d4
BUG: VS7 generator should use per-configuration linker flags for targets. This addresses bug#2765.
2006-01-27 13:48:21 -05:00
Bill Hoffman
07ef88c985
ENH: add COMPILE_FLAGS to targets
2006-01-25 08:38:06 -05:00
Brad King
22c62c9e65
BUG: Sweeping changes to cleanup computation of target names. This should
...
fix many bugs related to target names being computed inconsistently.
- Centralized computation of a target's file name to a method in
cmTarget. Now that global knowledge is always available the
*_CMAKE_PATH cache variables are no longer needed.
- Centralized computation of link library command lines and link
directory search order.
- Moved computation of link directories needed to link CMake targets
to be after evaluation of linking dependencies.
This also removed alot of duplicate code in which each version had its
own bugs.
This commit is surrounded by the tags
CMake-TargetNameCentralization1-pre
and
CMake-TargetNameCentralization1-post
so make the large set of changes easy to identify.
2006-01-13 18:18:32 -05:00
Bill Hoffman
a91947039a
ENH: for all custom commands that can not be given to a target, add them to all targets in the current makefile
2006-01-09 14:40:31 -05:00
Ken Martin
0b69b892ed
ENH: removed TARGET_DIR_PREFIX support
2005-12-13 15:13:17 -05:00
Brad King
1c7075057f
ENH: Added support for parallel builds in VS 8. There is now a special target on which all other targets depend that re-runs CMake if any listfiles have been changed. This addresses bug#2512.
2005-12-13 14:21:28 -05:00
Bill Hoffman
129299f900
ENH: fix for bug 2584, empty source groups with children skipped
2005-12-12 11:34:17 -05:00
Brad King
d952f68738
BUG: Tweak VS8 generator to keep VS8 happy. The .vcproj files need their own GUIDs in a ProjectGUID attribute. The top level .sln file needs a special comment at the top to allow it to be opened with double-click in explorer.
2005-11-22 13:37:42 -05:00
Bill Hoffman
49840778b9
ENH: add some more properties for visual studio projects
2005-11-19 09:40:11 -05:00
Bill Hoffman
9104097502
COMP: fix compile error
2005-11-19 08:29:28 -05:00
Brad King
036a78056c
BUG: Fixed flag-to-vcproj-attribute conversion code to work again (it was broken by the optimization changes). Added conversion of /nologo flag to SuppressStartupBanner attribute and /Gy flag to EnableFunctionLevelLinking attribute.
2005-11-18 10:36:52 -05:00
Brad King
8dc8232027
BUG: Fixed XML escapes for custom commands. Also added escaping of newlines for VS 2005.
2005-11-17 15:57:51 -05:00
Brad King
b9e088dcfa
BUG: Double-quotes in definitions must be escaped.
2005-10-03 14:33:35 -04:00
Ken Martin
c6b011e35e
ENH: put cmake files intoa CMakeFiles subdir to clean up bin tree
2005-07-29 09:19:25 -04:00
Brad King
f9aef0e422
ENH: Generator now creates a separate intermediate files directory for each target. This is needed for MSVC 8 to support parallel builds.
2005-07-27 13:36:36 -04:00
Bill Hoffman
6a73e8ac69
ENH: fix lib case bug correctly
2005-07-25 16:10:08 -04:00
Bill Hoffman
6ea4eadc68
BUG: undo fix
2005-07-23 10:32:57 -04:00
Bill Hoffman
7041af809d
ENH: more efficent fix for bug # 2063
2005-07-22 15:41:23 -04:00
Bill Hoffman
72fdb13652
BUG: fix for case mismatched lib bug # 2063
2005-07-22 15:33:51 -04:00