Commit Graph

267 Commits

Author SHA1 Message Date
Bill Hoffman 8a83f09637 ENH: fix for bug 3218 dependant projects are written out automatically if they are in the project. Also fix bug 5829, remove hard coded CMAKE_CONFIGURATION_TYPES from vs 7 generator 2008-01-30 12:04:38 -05:00
Brad King 6066e92ba2 BUG: cmTarget instances should not be copied. Removed pass-by-value arguments from cmLocalVisualStudio7Generator::WriteGroup and cmLocalVisualStudio6Generator::WriteGroup. Updated cmTarget to make this easier to find. 2008-01-29 17:30:34 -05:00
Brad King ffac622a85 ENH: Add cmTarget::GetLinkInformation method to allow several places in the generators to share link information while only computing it once per configuration for a target. Use it to simplify the chrpath feature. 2008-01-29 15:07:33 -05:00
Brad King 96fd5909d9 ENH: Implement linking with paths to library files instead of -L and -l separation. See bug #3832
- This is purely an implementation improvement.  No interface has changed.
  - Create cmComputeLinkInformation class
  - Move and re-implement logic from:
      cmLocalGenerator::ComputeLinkInformation
      cmOrderLinkDirectories
  - Link libraries to targets with their full path (if it is known)
  - Dirs specified with link_directories command still added with -L
  - Make link type specific to library names without paths
    (name libfoo.a without path becomes -Wl,-Bstatic -lfoo)
  - Make directory ordering specific to a runtime path computation feature
    (look for conflicting SONAMEs instead of library names)
  - Implement proper rpath support on HP-UX and AIX.
2008-01-22 09:13:04 -05:00
Brad King 433099ecdd ENH: Converted cmMakefile DefineFlags added by ADD_DEFINITIONS command into a COMPILE_DEFINITIONS directory property. 2008-01-17 19:29:43 -05:00
Brad King 80c2be45e0 ENH: Renamed <CONFIG>_COMPILE_DEFINITIONS to COMPILE_DEFINITIONS_<CONFIG> for better documentation clarity. 2008-01-15 21:02:00 -05:00
Brad King 8262ccfd4e ENH: Create COMPILE_DEFINITIONS property for targets and source files. Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators. 2008-01-14 09:20:58 -05:00
Brad King 857e2e15dd ENH: Improved escaping in kwsys/System. Added escape of % for NMake. Added escape of ; for the VS IDE. 2008-01-13 16:36:20 -05:00
Brad King 872553de7e ENH: Implemented generation of display for pre-build, pre-link, and post-build custom command comments during the build. This addresses issue #5353. 2007-12-18 09:50:08 -05:00
Bill Hoffman 3409e0a777 STYLE: fix indent 2007-12-13 15:42:49 -05:00
Bill Hoffman 246e964180 BUG: fix for bug 5455, handle nodefaultlib with more than one lib 2007-12-06 08:40:18 -05:00
Brad King bb1fa4c3f0 BUG: Fix exception handling flag translation to be specific to each VS version. This allows /EHa to be handled correctly for VS 2003. 2007-11-16 11:01:23 -05:00
David Cole 867de7fc67 ENH: Add ability to call Visual Studio macros from CMake. Add a CMake Visual Studio macro to reload a solution file automatically if CMake makes changes to .sln files or .vcproj files. Add code to call the macro automatically for any running Visual Studio instances with the .sln file open at the end of the Visual Studio Generate call. Only call the macro if some .sln or .vcproj file changed during Generate. Also, add handling for REG_EXPAND_SZ type to SystemTools::ReadRegistryValue - returned string has environment variable references expanded. 2007-11-16 07:01:58 -05:00
Brad King ea2b389a17 BUG: Converted per-vcproj timestamp to a single directory-level CMakeFiles/generate.stamp file shared by all targets in each directory. This avoids having all targets overwrite each others timestamp check rules and instead has one single rule. 2007-11-12 15:42:37 -05:00
Brad King 34c882a9f8 ENH: Allow VS 7 project Rebuild and Solution Rebuild to work without re-running CMake for every project during the rebuild. 2007-11-10 08:15:13 -05:00
Brad King e5bb99e010 ENH: Removed dependency on Templates/CMakeWindowsSystemConfig.cmake which is no longer used. Also removed the file itself. 2007-11-09 15:08:56 -05:00
Brad King f9322d188b ENH: Converted vcproj file generation to use cmGeneratedFileStream for atomic replacement. Replaced the vcproj.cmake copy of the file with a simple vcproj.stamp timestamp file to preserve previous rerun-without-reload behavior. 2007-11-09 12:05:03 -05:00
Bill Hoffman 0e14877e2a ENH: fix for vs 8 2007-09-17 15:59:50 -04:00
Bill Hoffman 9cbb998737 ENH: add support for vs 2008 beta 2 2007-09-17 15:21:47 -04:00
Brad King ea874415d9 ENH: Moved GetTargetDirectory method up to cmLocalGenerator. This provides a common interface to something that was implemented in most local generators anyway. 2007-08-01 15:25:40 -04:00
Brad King ecff1c37da BUG: Do not recognize preprocessor definition flags for the linker which has no preprocessor but does have flags starting with /D. 2007-08-01 11:39:51 -04:00
Bill Hoffman be1b19ada0 BUG: fix DLL and DEF being lost and add real support for /DEF: /DLL does not have an entry so just let it pass to advanced command line 2007-07-31 11:23:15 -04:00
Brad King 35936433e1 ENH: Merging changes from branch CMake-SourceFile2-b between tags
CMake-SourceFile2-bp and CMake-SourceFile2-b-mp1 to trunk.  This
commit is surrounded by tags CMake-SourceFile2-b-mp1-pre and
CMake-SourceFile2-b-mp1-post on the trunk.

The changes re-implement cmSourceFile and the use of it to allow
instances to be created much earlier.  The use of cmSourceFileLocation
allows locating a source file referenced by a user to be much simpler
and more robust.  The two SetName methods are no longer needed so some
duplicate code has been removed.  The strange "SourceName" stuff is
gone.  Code that created cmSourceFile instances on the stack and then
sent them to cmMakefile::AddSource has been simplified and converted
to getting cmSourceFile instances from cmMakefile.  The CPluginAPI has
preserved the old API through a compatibility interface.

Source lists are gone.  Targets now get real instances of cmSourceFile
right away instead of storing a list of strings until the final pass.

TraceVSDependencies has been re-written to avoid the use of
SourceName.  It is now called TraceDependencies since it is not just
for VS.  It is now implemented with a helper object which makes the
code simpler.
2007-06-18 11:59:23 -04:00
Brad King 27a0677d3e COMP: Fix build for windows-only generators after change to GetSourceFiles signature. 2007-05-28 11:00:26 -04:00
Alexander Neundorf 79756b0e67 BUG: don't use non-imported target when cross compiling as commands in custom commands
STYLE: remove now invalid comments, use this->

Alex
2007-05-24 08:43:31 -04:00
Brad King ba7780a3c4 ENH: Fixed INSTALL_FILES and INSTALL_PROGRAMS commands to not create targets. No targets of type cmTarget::INSTALL_FILES or cmTarget::INSTALL_PROGRAMS are created, so we do not need to check for them everywhere anymore. 2007-05-23 15:40:12 -04:00
Alexander Neundorf 362f81981e STYLE: fix line length
Alex
2007-05-10 11:38:23 -04:00
Alexander Neundorf 8245f437b6 BUG: fix problem for non-C/CXX languages with Visual Studio, the
dependencies for the custom commands added for java were not handled
correctly. Needs more work.

Alex
2007-05-09 14:41:38 -04:00
Brad King adcd87c976 BUG: Fixed cmLocalVisualStudio7Generator to deal with quotes in macro definitions properly. This addresses bug#4983. 2007-05-09 10:18:31 -04:00
Alexander Neundorf 7f11536704 ENH: now target names can be used in add_custom_command() and
add_custom_target() as COMMAND, and cmake will recognize them and replace
them with the actual output path of these executables. Also the dependency
will be added automatically. Test included.
ENH: moved TraceVSDependencies() to the end of GlobalGenerator::Configure(),
so it is done now in one central place

Alex
2007-05-09 08:25:45 -04:00
Alexander Neundorf f1e02b2993 COMP: removed unused variable temp
Alex
2007-05-04 14:08:50 -04:00
Ken Martin 8b0c61c322 ENH: added internal target property for the name of the project file 2007-04-10 09:54:01 -04:00
Brad King af95f61d76 ENH: Created method cmTarget::GetExportMacro to centralize computation of the export symbol name. This removes duplicate code from all the generators. Also enabled the export definition for executable targets with the ENABLE_EXPORTS property set. 2007-03-27 23:13:25 -04:00
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