summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalVisualStudio6Generator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-93/+93
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* Cleanup custom command .rule file internal handlingBrad King2012-04-181-1/+1
| | | | | | | | Teach cmMakefile::AddCustomCommandToOutput to return the cmSourceFile instance to which the custom command is attached. Use the return value instead of separately adding a .rule extension and searching for the source. Mark CMake-generated .rule files explicitly with a property instead of trusting the file extension.
* VS: Add CMakeLists.txt re-run rules at start of generationBrad King2012-03-281-12/+17
| | | | | | | | | | | | | | | Since commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source classification, 2012-03-19) the VS 10 generator uses the cmGeneratorTarget source classification instead of directly getting the list of source files from the target. This accidentally dropped the CMakeLists.txt files from generated projects because they are added too late for cmGeneratorTarget. All generator-specific source files must be added to targets prior to cmGeneratorTarget construction. Refactor addition of the CMakeLists.txt files with CMake re-run custom commands to take place before normal generation begins, and therefore early enough to be included in the cmGeneratorTarget classification.
* Add $<TARGET_OBJECTS:...> expression to use an object libraryBrad King2012-03-161-1/+35
| | | | | | For now do not allow an OBJECT library to reference other object libraries. Teach cmTarget::ComputeLinkImplementation to include the languages of object libraries used by a target.
* Build object library targets in VSBrad King2012-03-131-9/+32
| | | | | | | | Treat OBJECT libraries as STATIC libraries. The VS project file format provides no way to avoid running the librarian so hide the resulting .lib away next to the object files as it should never be referenced. The object files will be left behind for reference by other targets later.
* Pre-compute object file names before VS project generationBrad King2012-03-091-29/+35
| | | | | | Implement cmGlobalGenerator::ComputeTargetObjects in the VS generator to pre-compute all the object file names. Use the results during generation instead of re-computing it later.
* Merge branch 'cleanup-object-file-names' into object-libraryBrad King2012-03-091-12/+1
|\
| * VS: Simplify object name computationBrad King2012-03-061-1/+1
| | | | | | | | | | | | | | | | Simplify cmLocalVisualStudioGenerator::ComputeObjectNameRequirements to loop over the original vector of source files instead of recursively traversing source groups just to find the same files. Drop from cmVisualStudio10TargetGenerator::ComputeObjectNames temporary source group calculation now that it is not needed for computing object names.
| * Remove unused partial OBJECT_FILES property implementationBrad King2012-03-061-11/+0
| | | | | | | | | | | | | | Remove partial implementation added by commit ca0230a3 (check in initial conv library stuff, 2007-02-16) since it was never finished. It does not make sense for multi-configuration generators since no specific build configuration is processed at CMake time.
* | Merge topic 'fix-12189-support-SBCS-in-VS'David Cole2012-03-081-3/+5
|\ \ | | | | | | | | | | | | | | | | | | b28e7fa VS6: Avoid SBCS test on VS6 (#12189) df19b9c VS6: Avoid _MBCS define when _SBCS is defined (#12189) ba89e92 Visual Studio: Allow setting Single Byte Character Set (#12189)
| * | VS6: Avoid _MBCS define when _SBCS is defined (#12189)David Cole2012-02-211-3/+5
| |/ | | | | | | Should fix the failing SBCS test on the VS6 dashboard.
* | Extract and use the INCLUDE_DIRECTORIES target properties.Stephen Kelly2012-02-221-45/+60
|/ | | | | | | | | Eliminate callers of cmMakefile::GetIncludeDirectories. All callers of GetIncludeDirectories should go through the local generator object. Only the local generator calls cmTarget::GetIncludeDirectories directly.
* Order VS local generator Version ivar values consistentlyBrad King2011-11-141-1/+2
| | | | | | | | | | | Move the Version member to the top cmLocalVisualStudioGenerator class and set it consistently for instances created by all the global generator versions. Use an enumeration type with values scaled by a factor of 10 so we can handle VS 7.1 without out-of-order numbers. VS 7.1 support for SuppressStartupBanner was broken by commit 25116a3c (Fix CMAKE_VERBOSE_MAKEFILE for VS10 vcxproj files, 2011-10-11) because it assumed comparison of VS version numbers works. Now it does.
* VS: Create a Fortran DLL's import library directoryBrad King2011-02-101-1/+1
| | | | | | | | The Intel Fortran plugin forgets to create the output directory into which it will write a DLL's import library. Utilize the fix added by commit f4b3bdc6 (Create an exe's implib output dir for VS, 2009-06-15) and generalized by commit 764ac980 (Generalize exe implib dir creation for VS, 2009-06-16). Create a pre-link rule to make the directory.
* Record backtrace in cmCustomCommandBrad King2010-12-151-1/+1
| | | | | This will be used to report custom command errors to the user with a backtrace pointing at the add_custom_command or add_custom_target call.
* Simplify VS generator ConstructScript interfaceBrad King2010-12-081-13/+2
| | | | | Pass to cmLocalVisualStudioGenerator::ConstructScript a cmCustomCommand instance instead of extracting arguments at all call sites.
* Improve signature of cmLocalGenerator::GetRealDependencyBrad King2010-12-081-4/+6
| | | | Allow file-level custom command dependencies to be skipped.
* Fix KWStyle line length issues.Bill Hoffman2010-09-151-1/+2
|
* Fix line-too-long style errorsBrad King2010-09-101-1/+2
|
* Add STATIC_LIBRARY_FLAGS_<CONFIG> property (#10768)Brad King2010-05-281-0/+40
| | | | This is a per-configuration version of STATIC_LIBRARY_FLAGS.
* Fix LINK_FLAGS_<CONFIG> in VS 6 generatorBrad King2010-05-281-29/+45
| | | | Add the flags to the link step, not the compile step!
* Fix for Bug#10700, COMPILE_DEFINITIONS_MINSIZEREL missing REL part.Bill Hoffman2010-05-111-4/+4
| | | | Also remove some trailing whitespace.
* Create a static library's output dir for VS 6Brad King2009-10-281-0/+33
| | | | | | | VS 6 forgets to create the output directory for a static library if it differs from the intermediate files directory. We work around this VS bug by creating a pre-link event on the library target to make the directory.
* Use per-config output dir in VS 6 templatesBrad King2009-10-281-0/+34
| | | | | | | This commit removes use of configuration-less cmTarget::GetDirectory() by the VS 6 generator (except for compatibility with user templates). We replace OUTPUT_DIRECTORY_<CONFIG> tokens in the templates using the per-configuration result of cmTarget::GetDirectory(config).
* Remove unused members of local VS 6 generatorBrad King2009-09-301-3/+0
| | | | | The commit "Use target dependency closure for VS 6 solutions" removed use of the CreatedProjectNames list, so we remove it.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* Silence VS generator for missing CMakeLists.txtBrad King2009-09-021-0/+4
| | | | | | | | CMake Makefile generators silently ignore missing CMakeLists.txt files and just treat the source directory as if it had an empty input file. This will be addressed with a new CMake Policy, but for now we make the VS generator consistent with the Makefile generator behavior. The VS generator will need to handle the OLD behavior of the policy anyway.
* ENH: remove INCLUDE_EXTERNAL_MSPROJECT name hack, and use target properties ↵Bill Hoffman2009-07-141-1/+3
| | | | instead, fix VXExternalInclude test for VS10
* ENH: Simpler cmTarget::GetLinkerLanguage signatureBrad King2009-07-071-4/+2
| | | | | | | This method previously required the global generator to be passed, but that was left from before cmTarget had its Makefile member. Now the global generator can be retrieved automatically, so we can drop the method argument.
* BUG: Avoid cmTarget::GetDirectory for utilitiesBrad King2009-07-031-7/+9
| | | | | | | Since utility targets have no main output files like executables or libraries, they do not define an output directory. This removes a call to cmTarget::GetDirectory from cmLocalVisualStudio{6,7}Generator for such targets.
* STYLE: Replace large if() with named booleanBrad King2009-07-031-2/+3
| | | | | In cmLocalVisualStudio{6,7}Generator this replaces a large if() test with a re-usable result stored in a boolean variable named accordingly.
* BUG: Create an exe's implib output dir for VS 6Brad King2009-06-161-0/+6
| | | | | | | VS 6 forgets to create the output directory for an executable's import library in case the exe dllexport-s symbols. We work around this VS bug by creating a pre-link event on the executable target to make the directory.
* ENH: Refactor VS 6 build event generationBrad King2009-06-161-86/+65
| | | | | | | In cmLocalVisualStudio6Generator we generate pre-build, pre-link, and post-build events into project files. This refactors the generation code for the three event types into a private EventWriter class to avoid duplicate code.
* ENH: Support more preprocessor values in VS6Brad King2009-04-241-2/+3
| | | | | | | | | Previously we rejected all preprocessor definition values containing spaces for the VS6 IDE generator. In fact VS6 does support spaces but not in combination with '"', '$', or ';', and only if we use the sytnax '-DNAME="value with spaces"' instead of '-D"NAME=value with spaces"'. Now we support all definition values that do not have one of these invalid pairs. See issue #8779.
* ENH: Support preprocessor def values in VS6Brad King2009-03-231-3/+3
| | | | | | | | | The add_definitions() command and COMPILE_DEFINITIONS dir/tgt/src properties support preprocessor definitions with values. Previously values were not supported in the VS6 generator even though the native tool supports them. It is only values with spaces that VS6 does not support. This enables support and instead complains only for values with spaces. See issue #8779.
* ENH: Refactor passing of max length object dirBrad King2008-12-161-11/+11
| | | | | | When computing the maximum length full path to the build directory under which object files will be placed, pass the actual path instead of just its length. This will be useful for error message generation.
* STYLE: Fix line length style violations.David Cole2008-12-101-2/+4
|
* COMP: Fix the ExternalProject test for Visual Studio 6. Visual Studio 6 ↵David Cole2008-12-091-16/+24
| | | | *.dsp files cannot have hyphens in them. Add utility function GetVS6TargetName to replace hyphens with underscores when generating *.dsp file names. Use the function everywhere necessary in the VS6 generators. And, a workaround: VS6 uses ".\Debug" (for example) as an "$(IntDir)" value - strip any leading ".\" when processing a --config argument in the cmake --build handling code.
* STYLE: fix link length issuesBill Hoffman2008-12-081-11/+31
|
* BUG: fix for bug #8216Bill Hoffman2008-12-041-7/+6
|
* BUG: fix for rc and vs6Bill Hoffman2008-12-031-25/+34
|
* BUG: fix empty /D option for vs6, fix for 7580Bill Hoffman2008-09-091-1/+8
|
* COMP: Fix build with concept checking of STL.Brad King2008-05-161-1/+1
| | | | - Fix cmSourceGroup to not use std::vector with an incomplete type.
* BUG: fix for 6720, source groups on vs6 not workingBill Hoffman2008-04-211-1/+1
|
* BUG: cmTarget instances should not be copied. Removed pass-by-value ↵Brad King2008-01-291-1/+1
| | | | arguments from cmLocalVisualStudio7Generator::WriteGroup and cmLocalVisualStudio6Generator::WriteGroup. Updated cmTarget to make this easier to find.
* ENH: Add cmTarget::GetLinkInformation method to allow several places in the ↵Brad King2008-01-291-2/+3
| | | | generators to share link information while only computing it once per configuration for a target. Use it to simplify the chrpath feature.
* ENH: Updated exporting and importing of targets to support libraries and ↵Brad King2008-01-281-2/+1
| | | | | | | | | | | | | | | | | | configurations. - Created cmExportFileGenerator hierarchy to implement export file generation - Installed exports use per-config import files loaded by a central one. - Include soname of shared libraries in import information - Renamed PREFIX to NAMESPACE in INSTALL(EXPORT) and EXPORT() commands - Move addition of CMAKE_INSTALL_PREFIX to destinations to install generators - Import files compute the installation prefix relative to their location when loaded - Add mapping of importer configurations to importee configurations - Rename IMPORT targets to IMPORTED targets to distinguish from windows import libraries - Scope IMPORTED targets within directories to isolate them - Place all properties created by import files in the IMPORTED namespace - Document INSTALL(EXPORT) and EXPORT() commands. - Document IMPORTED signature of add_executable and add_library - Enable finding of imported targets in cmComputeLinkDepends
* ENH: Implement linking with paths to library files instead of -L and -l ↵Brad King2008-01-221-6/+21
| | | | | | | | | | | | | | | | | 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.
* ENH: Converted cmMakefile DefineFlags added by ADD_DEFINITIONS command into ↵Brad King2008-01-181-0/+14
| | | | a COMPILE_DEFINITIONS directory property.
* ENH: Enable CMAKE_<lang>_DEFINE_FLAG for COMPILE_DEFINITIONS property ↵Brad King2008-01-171-25/+25
| | | | implementation.